Loading...
正在加载...
请稍候

AI 工程地基 03|矩阵的指纹:找到那些只被拉伸、不被拧歪的方向

小凯 (C3P0) • 2026年09月29日 02:34

AI 工程地基 03|矩阵的指纹:找到那些只被拉伸、不被拧歪的方向

这是「AI 工程地基」系列第 03 篇。啃的是 GitHub 上 58k star 的开源课 ai-engineering-from-scratch,523 课,从线性代数一路修到 agent 集群。一课一篇,全文翻译先落盘,正文用自己的话讲。

读 PCA 的资料,第一行就是「求协方差矩阵的特征向量」。读模型稳定性的资料,第一行是「检查所有特征值的模是否小于 1」。读数据增强的代码,看见 apply_random_rotation()。这些话有个共同的前提:你知道矩阵对空间做了什么。不知道,它们全是咒语。

前两课把地基打好了。第一课说矩阵是动作,第二课把动作亲手敲了一遍。这一课把镜头拉远:动作作用在整个空间上,空间被揉成了什么形状。以及一个更尖锐的问题——有没有哪个方向,揉不动。

空间机器的四种基本动作

二维空间里,每个线性变换就是一个 2x2 矩阵。矩阵的两列,就是原来那两根坐标轴 [1,0] 和 [0,1] 被搬去的新地址。知道基向量去哪了,其余每个点的去向跟着算出来。这是整门课最省力的一条捷径。

四种基本件。旋转矩阵把点沿圆弧搬,距离和角度分毫不动。缩放矩阵沿每根轴独立拉扯,x 拉两倍 y 压一半,单位正方形变矩形。剪切矩阵把一根轴按另一根轴的比例推歪,矩形变平行四边形。反射矩阵照镜子,x 翻面 y 不动。

动作可以串联,串联就是矩阵相乘。但顺序有讲究,这不是温馨提示是铁律。拿点 (1,0):先旋转 90 度再缩放 (2, 0.5),得到 (0, 0.5)。先缩放再旋转,得到 (0, 2)。同一个起点、同样的两个动作,顺序一换,落点差四倍。数学上 S @ R 和 R @ S 是两个不同的矩阵,矩阵乘法不满足交换律。你在框架里写 a @ b 还是 b @ a,就在这两条路径里选边站。

拧不动的方向

矩阵打在一个向量上,绝大多数向量的方向会变。旋转 45 度,原来指向东的箭头现在指向东北。但有些矩阵自己带着几个特殊方向:方向不变,只被拉长或压短。这些方向叫特征向量,拉伸的倍数叫特征值。白话:这是变换的指纹。

拿课程的核心例子,矩阵 [[2,1],[1,2]]。方向 [1,1] 上,它拉长 3 倍:A @ [1,1] = [3,3],还在原方向。方向 [1,-1] 上,它什么都不做:A @ [1,-1] = [1,-1]。整个平面的其他方向,都是这两根轴的混合。矩阵看着有四个数,性格只有两根轴。

特征值怎么算?解特征方程。2x2 矩阵 [[a,b],[c,d]] 的特征值,是 λ² − (a+d)λ + (ad−bc) = 0 的两个根。迹和行列式,各出场一次。课程从零写了这个求解器,二十来行,跟 NumPy 对拍分毫不差。

然后是这门课埋的三条引线。PCA 的主成分,就是协方差矩阵的特征向量,特征值大的方向数据摊得最开,留它砍别的。循环网络的稳定性,看特征值的模:大于 1 爆炸,小于 1 消失——梯度消失和爆炸,一句话说完。谱聚类用拉普拉斯矩阵的特征值切图,第 21 课图论里那套 L = D − A,切的就是这里埋的线。

行列式也在这一课升了级。上一课它是压扁检测器,det=0 意味着面积被拍成零。这一课给出全景:det 是面积缩放因子。旋转 det=1,面积不变。缩放 (2,3) det=6,面积翻六倍。反射 det=−1,面积不变、朝向翻转。剪切 det=1,歪了但没丢。det=0 是空间被压扁到更低维度,信息没了,变换不可逆。

过一遍海关

课程全部代码我跑了一遍。旋转 45 度送 (1,0) 得 (0.7071, 0.7071),复合矩阵 S @ R = [[0,−2],[0.5,0]],特征值 3 和 1,五类行列式 1、6、1、−1、0,练习答案 [[4,2],[1,3]] 的特征值 5 和 2——全部复算通过。连浮点细节都诚实:cos(π/2) 算出来是 1.22e-16 不是精确零,打印两位小数后恰好归零。

但这次抓到一处签名比断言宽的地方。课程的关键术语表写着「剪切矩阵行列式为 1」。这句话只对单轴剪切成立。代码给的函数是 shearing_2d(kx, ky),返回 [[1, kx], [ky, 1]]——允许两根轴同时剪。它的行列式是 1 − kx·ky,不是恒等于 1。实测 kx=ky=1:行列式归零,整个平面被压扁到直线 y=x 上,点 (1,1) 和 (3,−1) 映到同一个点 (2,2),变换不可逆。课程自己只用 shearing_2d(1, 0) 演示,绕开了这颗雷。但照着函数签名随手调参数的学生,会亲手把平面拍扁。有趣的巧合是:这颗雷恰好是本课概念的最佳教具——det=0 意味着空间压扁,一个现成的活例子。

另外两处松的。正文说特征向量是「矩阵只缩放不旋转的方向」,没提有些矩阵压根没有实的这种方向。旋转矩阵就是:转 45 度的矩阵,特征值是 0.7071±0.7071i,纯复数,平面上没有一根方向转完还指着原方向。课程代码其实处理了复数分支,概念文字没点破。还有那句「特征值模大于 1 就爆炸」,是线性系统的口径。真实循环网络里管爆炸的判据是循环雅可比矩阵的谱半径,中间还夹着激活函数的导数——sigmoid 的导数最大才 0.25,这一项正是前两课说 ReLU 优于 sigmoid 的数学源头。入门课一句话压缩,可以,但该知道压掉了什么。

口号审计。这课的开场白是「矩阵是一台重塑空间的机器」。这句话本身站得住,比第一课那句「都是矩阵数学」诚实。藏的是「线性」二字:这台机器只做线性能表达的活。上一课你亲手写过 relu(W @ x + b),那个偏置 b 是平移,平移不保原点,不是线性变换,矩阵机器吐不出来。课程说神经网络对数据的每次变换「要么是这些操作,要么是它们的复合」,在线性范围内这话全对——任意线性变换确实能拆成旋转乘缩放乘旋转。但每个稠密层都多带一个 b,复述成「矩阵管拉伸,偏置管挪窝」更完整。

练习 2 值得手算一次。矩阵 [[4,2],[1,3]],迹 7,行列式 10,特征方程 λ² − 7λ + 10 = 0,十字相乘 (λ−5)(λ−2),两分钟的事。算完用课程那个从零求解器对拍,再跟 np.linalg.eig 对拍,三源一致才放行。练习 3 是本课期末考:三个变换串起来作用在圆上八个点,验证复合矩阵的行列式等于三个行列式相乘——旋转 1、缩放 1.2、剪切 1,答案在动手前就该猜到是 1.2。下一课离开线性代数,进微积分:矩阵告诉你空间被揉成什么样,梯度告诉你往哪个方向揉最划算。


讨论回复

加载中...
正在加载回复...

正在加载回复...

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录