矩阵的几何直观
矩阵首先是一种数学形式, 数学几何不分家,从几何上理解矩阵是很有意思的。
很多领域的工作离不开矩阵,所以写本文摘录一些理解角度,作为笔记
矩阵
向量视角
例子矩阵为X∈R2×3: X=[142536]
行向量、列向量
这是一个2行3列矩阵,若分别聚焦于行、列视角,可分为:
- 行视角。这是一个集成了2行
行向量 v 的矩阵,其中v∈R1×3 - 列视角。这是一个集成了3列
列向量 v 的矩阵,其中v∈R1×2
行、列视角下,矩阵分别表示为: Xrow=[142536]Xcol=[142536]
行向量、列向量的几何直观
单维矩阵向量
其中,单行或单列矩阵是一个更特殊的角色,拿单行举例,有X∈R1×2。
从列视角来看: X=[13]
它的列向量空间为:
单维列向量的几何直观
两个向量点积的几何直观里,将会使用到这个直观。
向量的部分暂时到此。
图视角
矩阵同样在图论下存在几何直观, 举例: A=0010010000110000010100011∈R5×5
有向图
从行视角来看,它可以落成5个图空间中的点, 每一行是含有5个维度的点。
对于每个点,其维度n代表着该点和第n个点的联系, 图空间中表示为边。
有向图
将矩阵的数值从0,1拓展到更多数值,作为联系的边就可以拓展出权重的信息:
有向权重图
无向图
调整矩阵值即可调整边关系, 使其变为无向图
无向图(可见局部对称关系)
图的连通性
我们回到最初的矩阵,这次从图的连通性上观察,整图可以分为
- 强连通分量(
红色、绿色部分) - 分量连接区(
蓝色部分)
图的连通性
矩阵运算
矩阵加减
若两个矩阵A∈Rn1×m1和B∈Rn2×m2进行矩阵加减运算,则两个矩阵的维度必需一致,也就是n1=n2,m1=m2
在该运算前提约束下,矩阵加减可直观为矩阵内行向量,列向量的逐个加减。这里用列向量的视角举例:
C=A+B=[14]+[42]=[56]
矩阵的向量相加
矩阵乘法
若两个矩阵A∈Rn1×m1和B∈Rn2×m2进行矩阵乘法运算,则前置条件为m1=n2, 也就是A的列数=B的行数。
这是为什么?我们从行列视角的几何直观说起。
线性变换视角
列向量的线性投影
不妨看,三个2×2矩阵分别与同一个2×1矩阵R相乘:
首先是,N和R: NR=[1001][21]=[21]
我特意为N矩阵上了Nickel(银灰)色,这当然是有目的的。 请看这个运算的几何直观图:
线性变换N
图中可见一个经典的二维笛卡尔坐标系,它所处的是一个灰色的二维线性空间。 在空间中,R矩阵的唯一一个列向量[21]落在坐标轴上(2,1)的位置。
这不是废话吗?向量(2,1)当然要落在(2, 1)的位置
不,直观的核心就在其中。当我们要将向量完美落在二维笛卡尔坐标系上时,有如下条件:
- 向量是二维, 也就是(x1,y1)
- 向量的形式需要从(x1,y1)转变为(x1⋅i^,y1⋅j^)
其中,其中,i^,j^是该二维张成空间的基(Basis),当前我们关注的是向量,所以可称基向量(Basis Vector)。
图中直观所得, 灰色的二维线性空间, N矩阵以及R矩阵三者存在联系:
- 向量基i^,j^正是N矩阵的两个列向量[01],[01],且基数量等于R的列向量维度, 也即矩阵行数
这就是列视角的直观核心。
- 矩阵N的列作为空间的基,张成线性空间
- 矩阵R的列向量各自落入该线性空间(列向量维度=空间基的数量)
从几何直观角度,本次矩阵乘积代表矩阵R的列向量群在矩阵N空间的线性映射结果, 换一个表达,矩阵R发生了矩阵N定义的线性变换。
矩阵N是一个特别的线性变换, 它的基向量i^,j^正是单位向量本身,所有列向量维度为2的矩阵经过该线性变换的映射结果为本身。所以它有个特别的名称——单位矩阵,所定义的线性变换称作恒等变换。
我们再举些别的例子: GR=[23−32][21]=[18]
线性变换G
如图,矩阵G的基向量是i^,j^。 这对基向量可以通过左乘单位矩阵的方式(恒等变化)得到N空间中的投影:
-数学表示为NG=G,
-投影为i^=[23],j^=[−32],
-线性变换G直观为把原空间基进行了大约60°逆时针旋转, 同时进行了略大于3倍的放大。
再看一个: BR=[−33−3−3][21]=[−93]
线性变换B
几何直观清晰可见:
- 投影为i^=[−33],j^=[−3−3],
- 线性变换N直观为把单位空间基进行了135°逆时针旋转, 同时进行了略大于4倍的放大。
我们把握了规律。
上述的二维矩阵可以从旋转,缩放的视角进行几何直观,它看起来就像眼前的一张纸面,经过倾斜,拉远近所得到的不同视野呈现。实际上也就是这样子,除了旋转和缩放还存在其它方式,想象一下,如果一张纸面在你眼前突然变成一条线,它所对应的二维矩阵是什么呢?请自行展开。
回到矩阵乘法上来。在前面的几个例子中: NRGRBR 会发现,列向量的线性变换其实存在顺序,矩阵A乘B:
- 公式形式,写作AB,
- 直观逻辑上, 它代表左侧的矩阵A定义的线性变换作用于右侧B内的列向量
我们可以通过函数形式理解,让公式自然一些: n(R)g(n(R))b(n(R))
现在,带着线性变换的几何直观,我们来思考一个问题。
假设B的线性变换效果是由几个不同矩阵的线性变换组合成的,比如 B[−33−3−3]=PG=[i^j^][23−32]
你能想象出来线性变换P的几何直观吗?
结果见附录-线性变换P。
行向量的线性投影
如果熟悉了上面列向量的线性变换视角,那么行向量的情况就很好理解了。
请看线性变换如图:
线性变换G-行向量视野
乍一看,完全是之前的线性变化G。
没错,正是如此! 但不同处在于,图中几何直观代表的是线性变化GT,所涉及的矩阵乘积为: RTGT=[21][2−332]=[21][i^j^]=[18]
对比之前列向量视角
列向量的线性变换其实存在顺序,矩阵A乘B:
- 公式形式,写作AB,
- 直观逻辑上, 它代表左侧的矩阵A定义的线性变换作用于右侧B内的列向量
以同样的方式表达行向量视角的规律:
行向量的线性变换存在顺序,矩阵A乘B:
- 公式形式上,写作AB,
- 直观逻辑上,它代表右侧的矩阵B定义的线性变换作用于左侧A内的行向量
列向量线性投影视角下的矩阵乘法GR,
行向量线性投影视角下的矩阵乘法RTGT
在我们的例子中,它们的几何直观,都表示为:
同一矩阵R内的向量, 被投影到同一组基向量i^,j^所张成的线性空间
内积(点积/数量积)视角 - 行x列
设左矩阵A∈Rm×n,右矩阵B∈Rn×p。
有矩阵乘法公式为: C=AB=a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amnb11b21⋮bn1b12b22⋮bn2⋯⋯⋱⋯b1pb2p⋮bnp=a1Ta2T⋮amT[b1b2⋯bp]=a1Tb1a2Tb1⋮amTb1a1Tb2a2Tb2⋮amTb2⋯⋯⋱⋯a1Tbpa2Tbp⋮amTbp=c11c21⋮cm1c12c22⋮cm2⋯⋯⋱⋯c1pc2p⋮cmp,
其中。A的第i个行向量记作aiT∈R1×n, B的第j个列向量记作bj∈Rn×1。
结果矩阵C的第i行,第j列元素记作cij, 所表示的是左矩阵行向量aiT和右矩阵列向量bj的点积: cij=aiTbj=k=1∑naikbkj
我们来通过例子来逐步走入其直观: C=AB=361242125130214=a1Ta2Ta3T[b1b2]=a1Tb1a2Tb1a3Tb1a1Tb2a2Tb2a3Tb2=a1⋅b1a2⋅b1a3⋅b1a1⋅b2a2⋅b2a3⋅b2=9187122424
其中,取任意一对点积q⋅k=ai⋅bj,其公式展开为: q⋅k=[q1q2q3]k1k2k3=[q1k1+q2k2+q3k3]
这个运算过程的几何直观见:
行列点积
看起来是个网络结构,其中:
- 红色行向量(对象) - 构成网络左侧节点,
- 蓝色列向量(算子) - 构成连接边
- 绿色行向量(点积结果) - 构成网络右侧结果节点
左矩阵的行向量和右矩阵的列向量的点积运算aiTbj=ai⋅bj的结果形式为数值(在矩阵结果中不会被表达为1x1的矩阵)。
这个数值除了可以直观为上面网络结构的绿色节点外,它还有更普遍的直观形式。
向量点积直观
两个向量的点积运算q⋅k(我偷偷地减少了维度为了后续演示), 它其实有个隐藏等式: q⋅k=(q1,q2)⋅(k1,k2)=q1k1+q2k2=[q1k1+q2k2]=[q1q2]⋅[k1k2]=[q1q2][k1k2]=[k1k2][q1q2]
从我们前面的线性变换视角来看,只要能把握到i^,j^,等式的运算很好理解, 所发生的就是单个向量定义的线性空间作用于另一向量,留给我们的问题, 当i^,j^的维度为1时,如何对它定义的线性空间进行几何直观呢?
我们往式子里填一些数,有: q⋅k=[32][xy]
此时,i^=[3],j^=[2], 那么它所定义的线性空间是? 推导如下:
首先,在单位向量的线性空间中,向量q=(3,2)投影其中。
向量(3,2)
接着,我们放置一个单位数轴(长度为1), 正方向对齐向量q=(3,2)。 其它向量可以通过正交投影的方式,落到这个数轴上得到新的表达,并且这个过程满足:
- 单位空间中的向量加法,在落到数轴上仍然成立(可加性)
- 单位空间中的方向相同,长度不同的向量,在落在数轴上仍然保持相同比例(齐次性)
向量正交投影于数轴
猜想: 向量k经一维矩阵[32]所定义的线性变换作用后,结果可直观为向量在数轴上正交投影的长度。
如果真是如此,在单位矩阵定义空间下, 应有:
- [32][ab]结果等于(a,b)的投影长度
而部分向量的投影情况如下图:
部分向量的投影情况
(1,0)的有向投影长度为3/13, 而
[32][10]=(3,2)⋅(1,0)=3⋅1+2⋅0=3=13⋅3/13
(−1,0)的有向投影长度为−3/13, 而
[32][−10]=(3,2)⋅(−1,0)=3⋅(−1)+2⋅0=−3=−13⋅3/13
(0,1)的有向投影长度为2/13, 而
[32][01]=(3,2)⋅(0,1)=3⋅0+2⋅1=2=13⋅2/13
(3,2)的有向投影长度为13, 而
[32][32]=(3,2)⋅(3,2)=3⋅3+2⋅2=13=13⋅13
猜想不成立。不过我们惊奇地发现:差距存在于13,−13 那么假设我们的数轴单位长度由1变成13, 如图:
数轴单位长度变化
对上了: [32][32]=(3,2)⋅(3,2)=3⋅3+2⋅2=13=13⋅13=正交投影所处数轴方向的刻度读数×正交投影长度
所以,向量k经一维矩阵[32]所定义的线性变换作用后,结果可直观为:
向量k在单位长度等于向量(3,2)的数轴上正交投影的长度×投影所落数轴方向的刻度读数
那么,左图的数轴所对应的是哪个一维矩阵呢?请自行展开。
本证明参考数学博主3Blue1Brown的线性代数的本质:点积与对偶性, 他的线性合集非常值得观看。
完成向量点积的直观,我们从点积视角去理解矩阵运算就更形象了。
外积视角 - 列x行
设A的第k个列向量记作ak∈Rm×1,B的第k个行向量记作bkT∈R1×p,则外积视角的数学公式为:
C=AB=a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amnb11b21⋮bn1b12b22⋮bn2⋯⋯⋱⋯b1pb2p⋮bnp=[a1a2⋯an]b1Tb2T⋮bnT=a1b1T+a2b2T+⋯+anbnT=a1⊗b1+a2⊗b2+⋯+an⊗bn=a11a21⋮am1[b11b12⋯b1p]+a12a22⋮am2[b21b22⋯b2p]+⋯+a1na2n⋮amn[bn1bn2⋯bnp]=a11b11a21b11⋮am1b11a11b12a21b12⋮am1b12⋯⋯⋱⋯a11b1pa21b1p⋮am1b1p+a12b21a22b21⋮am2b21a12b22a22b22⋮am2b22⋯⋯⋱⋯a12b2pa22b2p⋮am2b2p+⋯+a1nbn1a2nbn1⋮amnbn1a1nbn2a2nbn2⋮amnbn2⋯⋯⋱⋯a1nbnpa2nbnp⋮amnbnp=k=1∑nakbkT
我们仍然使用刚才内积视角的例子做演示: C=AB=361242125130214=[a1a2a3]b1Tb2Tb3T=a1b1T+a2b2T+a3b3T=a1⊗b1+a2⊗b2+a3⊗b3=361[12]+242[31]+125[04]=3616122+6126242+0004820=9187122424
列行外积
左矩阵的列,右矩阵的行列向量的外积aiTbj=ai⊗bj体现为子矩阵,所有子矩阵相加等于结果矩阵C。 这便是外积视角的几何直观。
附录
线性变换P
线性变换P
将B的线性空间想象成一张蓝色的纸张,
而G的线性空间是一张绿色的纸张。
P的几何直观就代表着:
如何做,才能让绿色纸张变成蓝色纸张?
直观上: 逆时针旋转将近90°,同时进行略多于1倍的放大。