矩阵相乘的 3 种实用视角是什么|线代答疑系列 002
[!abstract] 摘要
用三种实用视角理解矩阵乘法 AB = C:行视角(C 的各行是 B 的各行的线性组合)、列视角(C 的各列是 A 的各列的线性组合)、秩 1 矩阵块组合视角(C 是 A 的列与 B 的行相乘得到的秩 1 矩阵块之和)。
1. 引言
矩阵相乘 AB = C 是最常用的矩阵运算,没有之一。但大部分高校老师教的是,C 中第 i 行第 j 列的元素值就是 A 中第 i 行与 B 中第 j 列的内积。这当然是一种视角,也是对的。但以笔者的经历来看,这恰恰是最不实用的 1 个视角,另外的 3 种视角:行视角、列视角、秩 1 矩阵块组合视角,反而是最实用的,但大部分学校老师都没讲(至少笔者上学时是这样的),这其实是中国基础工程数学教育亟待解决的一个点。
下面我们来仔细分析下,其实也很简单。
2. 第 1 种:行视角
行视角:C 中各行为 B 中各行的线性组合,组合系数分别为 A 中各行元素值。如图所示:
- C 中的第 1 行,是 A 中第 1 行的 1、4、7 分别乘以 B 中的第 1 行、2 行、3 行,然后相加而得;
- C 中的第 2 行,是 A 中第 2 行的 2、6、1 分别乘以 B 中的第 1 行、2 行、3 行,然后相加而得;
3. 第 2 种:列视角
列视角:C 中各列为 A 中各列的线性组合,组合系数为 B 各列的元素值。如下图所示:
- C 中第 1 列,为 B 第 1 列的 3、1、4 分别乘以 A 中第 1、2、3 列,然后相加而得;
- C 中第 2 列,为 B 第 2 列的 5、3、6 分别乘以 A 中第 1、2、3 列,然后相加而得;
- C 中第 3 列,为 B 第 3 列的 7、2、1 分别乘以 A 中第 1、2、3 列,然后相加而得;
4. 第 3 种:秩 1 矩阵块组合视角
秩 1 矩阵块组合视角:C 为 A 中各列与 B 中各行相乘得到的秩 1 矩阵块之和。如下图所示:
- 第 1 个矩阵块 C1 为,A 中第 1 列与 B 中第 1 行的乘积,容易看出,其秩为 1;
- 第 2 个矩阵块 C2 为,A 中第 2 列与 B 中第 2 行的乘积,容易看出,其秩为 1;
- 第 3 个矩阵块 C3 为,A 中第 3 列与 B 中第 3 行的乘积,容易看出,其秩为 1;
C = C1 + C2 + C3
5. 结论与应用
顺便说一句,深度理解矩阵(线性变换、特征变化、SVD 变换等),是提升自己工程算法高度、拔高自己上限的重要前提,因为大部分稍微复杂一点的工程算法,其落地首先就是线性化、离散化,更不要说后续更复杂的处理过程,而矩阵表达就是这些过程中的唯一的数学工具与语言,否则很多算法,有些是看都看不懂,有些是似懂非懂,是很难驾驭的。
这三种视角在实际应用中各有优势:
- 行视角在处理与行向量相关的运算时特别直观
- 列视角在理解线性变换对向量空间的作用时非常有帮助
- 秩 1 矩阵块组合视角在矩阵分解和低秩近似问题中具有重要应用
掌握这些视角不仅能帮助我们更好地理解矩阵运算的本质,还能在实际问题中选择最合适的思考方式,提高解决问题的效率和深度。