上一篇《【几何系列】向量:向量乘法(标量积、向量积)和向量插值》讲了向量,向量是特殊的矩阵,行向量是 $n imes 1$ 矩阵,列向量是 $1 imes n$ 矩阵。
一般的 $m imes n$ 矩阵是由 $mn$ 个元素排列成 $m$ 行 $n$ 列的表。
矩阵乘法
矩阵加法和标量乘法都是直观的,不做过多赘述。
而矩阵乘法是最重要的运算,但是它的定义却并非直观:
对于矩阵 $A_{l imes m}=a_{ij})$ 和矩阵 $B_{m imes n}=b_{ij})$ 相乘,得到矩阵 $P_{l imes n}=p_{ij})$,即 $P=AB$,有:
$$p_{ij}=sum _
u a_{i
u}b_{
u j}$$
例如:
$$egin{bmatrix}
2 & 1 & 0\
1 & 2 & 5
end{bmatrix}egin{bmatrix}
1\
-1\
4
end{bmatrix}=egin{bmatrix}
2 imes 1+1 imes -1)+0 imes 4\
1 imes 1+2 imes -1)+5 imes 4
end{bmatrix}=egin{bmatrix}
1\
18
end{bmatrix}$$
直观理解矩阵乘法
《A Programmer’s Intuition for Matrix Multiplication》给出了 3 种直观理解矩阵乘法的思路,我认为值得借鉴。
思路 1:矩阵乘法是对几何平面的缩放/旋转/倾斜等
如果把矩阵 B 看作是平面或超平面上的数据的话,那么左乘矩阵 A 的确可以看作是几何变换。事实上,几何变换就是本系列非常关注的背景。
思路 2:把矩阵乘法理解为线性映射
这是一个技术上非常准确的说法,即线性变换的角度。
据维基百科上的解释,矩阵最开始的引入(1812 年的法国数学家 Jacques Philippe Marie Binet)也是为了表示线性映射的函数组合(function composition)。它的要点是:
已知 $n$ 维列向量:
以及作用于该列向量的线性映射 $A$,它将 $n$ 维列向量映射为 $m$ 维列向量:
注意到这里我们发现已经用到矩阵表示了。
左乘 $n$ 维向量,这个矩阵左乘的动作,实际表示映射,表示函数。它把 $n$ 维向量,映射/变换为 $m$ 维向量。
接下来,如果已知另一个线性映射 $B$,它可以将 $m$ 维向量空间映射到 $p$ 维向量空间。通过计算,会发现矩阵 B 和矩阵 A 的乘法 $BA$,可以表示组合映射(composite map)$Bcirc A$,而组合映射的含义可以简单用下式表示:
即矩阵 $B$ 左乘矩阵 $A$ 的动作,是把原始映射/函数 $A$ 进行了重新组合,成为了一个新的映射/函数:$BA$。
总而言之,从这个思路来看,可以把矩阵乘法看作是:对右侧的矩阵实施一个线性变换的函数。
思路 3:把矩阵乘法看做是信息流,依次对数据进行编码转换。
从这个角度,把某些矩阵看作数据,某些矩阵看作是操作数据的函数。矩阵乘法就是一个对数据执行操作的工作流。
希望这几个思路能够对矩阵乘法产生足够多的直观感受。矩阵乘法是如此重要,可以说怎么多说都不为过。
矩阵乘法的性质
矩阵乘法满足分布律和结合律:
$$AB+B’)=AB+AB’, A+A’)B=AB+A’B$$
$$AB)C=ABC)$$
但是矩阵乘法不满足交换律:
$$AB
eq BA, usually$$
如果理解了前面的思路 2(线性映射)的话,会发现这是显然的。
情况 1:把 $x$ 先执行映射 $A$ 得到一个中间结果 $x’$,再对它执行映射 $B$ 得到最后结果;
情况 2:把 $x$ 先执行映射 $B$ 得到一个中间结果 $x”$,再对它执行映射 $A$ 得到最后结果。
这两种情况显然不是同一回事,事实上甚至不能同时满足映射 $A$ 和 $B$ 对输入维度的要求。
不过如果凑巧 $AB=BA$,则称 $A$ 和 $B$ 是可交换的。
单位矩阵
单位矩阵对应实数中 1 的概念。
首先,$a_{ii}$ 称为矩阵中的对角元素。
如果矩阵中的非零值都是对角元素,则称为对角矩阵。
单位矩阵定义为:对角元素都为 1 的 $n imes n$ 对角矩阵,记为 $I_n$ 或者 $I$。
矩阵 $A$ 乘以单位矩阵就是 $A$ 自身:
$$AI=IA=A$$
从几何变换的角度来说,乘以单位矩阵不会改变原有的几何状态;从线性映射的角度来说,单位矩阵就是输入等于输出的映射。
矩阵的逆
$A$ 是 $n imes n$ 方阵,如果存在矩阵 $B$ 满足 $AB=I$ 且 $BA=I$,则 $B$ 是 $A$ 的逆或逆矩阵,记为 $A^{-1}$,即有 $A^{-1}A=I=AA^{-1}$。
存在逆的矩阵称为可逆矩阵。
首先,逆矩阵具有唯一性:如果 $A$ 存在逆矩阵,那么只能有一个逆矩阵。
此外,如果 $A$ 和 $B$ 都是 $n imes n$ 的可逆矩阵,那么必然有:
$AB$、$A^{-1}$、$B^{-1}$ 都是可逆的;
$AB)^{-1}=B^{-1}A^{-1}$、$A^{-1})^{-1}=A$;
$A_1,cdots ,A_m)^{-1}=A_m^{-1},cdots ,A_1^{-1})$
OK,以上是定义和性质。那么,逆矩阵究竟意味着什么?
线性映射中的逆的意义
对于一个向量 $x$,假设它经过左乘一个映射 $A$,变成了向量 $Ax$;那么我们再假设,这个映射 $A$ 存在一个逆 $A^{-1}$,我们让向量 $Ax$ 左乘这个逆,得到什么?$A^{-1}Ax=Ix=x$,得到原来的向量 $x$!
这个逆 $A^{-1}$ 抵消了 $A$ 对于向量 $x$ 的影响。也就是说,矩阵和它的逆就像函数与反函数、作用力与反作用力的关系一样。
几何变换中的逆的意义
考虑矩阵 $A$:
$$A=frac{1}{sqrt{2}}egin{bmatrix}
1 & -1\
1 & 1
end{bmatrix}$$
它的作用是绕原点逆时针旋转 45°:
它的逆矩阵为:
$$A^{-1}=frac{1}{sqrt{2}}egin{bmatrix}
1 & 1\
-1 & 1
end{bmatrix}$$
它的作用刚好相反,绕原点顺时针旋转 45°:
所以说类似地,如果说矩阵 $A$ 代表某种几何变换的话,$A^{-1}$ 就是正好与之相反的几何变换。
可逆与不可逆
那么,不可逆又意味着什么? 也许从几何变换的角度更容易理解。
不可逆意味着这个几何变换是无法“抵消”的,由于几何实体的维度和表征能力降低,无法再将变换后的几何形状变换回去。例如:将正方形变换成了一条线或者一个点。
经过不可逆的矩阵
$$A=egin{bmatrix}
0 & 0\
0 & 1
end{bmatrix}$$
变为:
或者经过不可逆的矩阵
$$B=egin{bmatrix}
0 & 0\
0 & 0
end{bmatrix}$$
变为:
此时没有任何对应的矩阵乘法可以将其变换回去了。
参考
A Programmer’s Intuition for Matrix Multiplication
An Intuitive Guide to Linear Algebra
Wiki: Matrix multiplication
《Algebra》by Michael Artin
《Rotation Transforms for Computer Graphics》by John Vince