VOL.II · 矩阵CH 10( 10 , 24 )

特殊矩阵动物园

生物学家不会对着「动物」这个词空想,他们分门别类:哺乳类怎么呼吸,鸟类怎么迁徙。读模型代码也一样——权重矩阵、协方差矩阵、注意力掩码、旋转位置编码,每一个都是有名有姓的「物种」,各带专属的性格与特权:有的乘起来飞快,有的天生可逆,有的保长度,有的必有实特征值。这一章是卷二的收官巡游:把 AI 代码里出镜率最高的十一种矩阵一次认全。每只动物按同一格式建档:身份证(代数定义)、性格(几何行为)、特权(运算便宜在哪)、岗位(AI 里谁在用)。以后读代码,你看到的不再是一坨数字,而是一只只性格分明的动物。

对角正交对称稀疏与低秩

温顺组:单位、对角、置换

单位矩阵 I(档案回顾):对角线全 1,「什么都不做」。乘法的 1、幂的起点、逆的标尺、残差连接的保底通道。它是动物园里的家猫,存在感低,但整个园区的秩序以它为参照——后面每一只动物的「特殊」,都是相对于它的偏离量。

对角矩阵 diag(d₁,…,dₙ):只有对角线有货。几何性格:沿各坐标轴独立缩放,第 i 个轴拉伸 dᵢ 倍,轴与轴老死不相往来。「互不干扰」正是它一切特权的来源——n 个一维问题的并联,而不是一个纠缠的 n 维问题;两只对角兽相乘可交换,也是因为各轴独立,先拉谁都一样。它享受全动物园最多的运算特权:乘向量 = 逐元素乘(O(n) 而非 O(n²));乘对角 = 对角(而且可交换——不可交换定律在这个物种内失效);逆 = 对角线取倒数;det = 对角线连乘;幂 = 逐元素幂。所以数值计算的一大梦想就是「把问题变成对角的」——这个梦想的正式名称叫对角化,第 16 章圆梦。AI 现场:Adam 优化器对每个参数单独缩放学习率,等效于乘一个巨大的对角矩阵;LayerNorm 里的逐维缩放参数 γ 也是一只对角兽。

置换矩阵 P:每行每列恰好一个 1,其余全 0(单位矩阵被洗过牌的样子)。作用:重排分量的顺序——洗牌,不增不减不改值。它是「查表取列」(第 06 章)的批量版:P 乘向量把分量按新顺序摆放。特权:可逆且 P⁻¹ = Pᵀ(把牌洗回去),det = ±1(纯换位,不改面积,只可能翻定向)。AI 现场:数据集 shuffle、beam search 的候选重排,以及 LU 分解里的「选主元」(数值稳定的关键一步,solve 的 P 就是它)。

贵族组:正交矩阵

上一章的彩蛋在此立正式档案。正交矩阵 Q 的定义:各列互相垂直且长度全为 1(一组「标准正交基」竖排而成),等价刻画是:

QᵀQ = I  ⇔  Q⁻¹ = Qᵀ转置即逆:撤销键几乎免费

几何性格:刚体运动——旋转,或旋转加一次镜像(det = +1 是纯旋转,−1 带翻面)。它是动物园的贵族,行为最讲礼貌:保长度(‖Qv‖ = ‖v‖,代入 QᵀQ = I 一行可证)、保点积保夹角——空间被转动,但任何测量结果都不变。第 04、05 章的全部度量,在正交变换下纹丝不动。

det = −1 的成员里最有用的是反射(镜像)矩阵:沿某个超平面照镜子。看似冷门,却是数值算法的暗器——QR 分解的工业实现(Householder 变换)就是用一连串精心挑选的反射,把矩阵「拍」成三角形:每次反射消掉一列的下半截,既是正交操作(误差不涨),又直奔三角格式(回代好解)。「用最规矩的动物,干最脏的活」,数值线性代数的美学大抵如此。

「不放大不缩小」这个性格,在数值世界里是无价之宝:用正交矩阵做运算,误差不会被放大,链条再长也不会爆炸。QR 分解、SVD 的两端(第 17 章)都由正交矩阵坐镇,原因正在于此。AI 现场同样耀眼:① 循环网络时代用正交初始化对抗梯度爆炸/消失——信号反复过同一个矩阵,只有正交矩阵能保证「转圈但不变长短」;② Transformer 的旋转位置编码(RoPE),本体是一串 2×2 旋转矩阵,把「第几个 token」编码成向量的旋转角度——Llama 系列每一次推理都在转这些小轮子;③ 嵌入空间的「保距变换不改语义关系」,让研究者能放心对 embedding 做旋转对齐(跨语言词向量对齐的经典操作)。

体质特殊组:对称与三角

对称矩阵 S(Sᵀ = S):沿对角线照镜子,左右相同。它不是靠稀疏或结构省算力,而是靠出身:凡是「由点积生出来的矩阵」天生对称——协方差矩阵(第 18 章)、格拉姆矩阵 XᵀX(第 14 章)、核矩阵、无向图的邻接矩阵。对称矩阵享受全动物园最高贵的定理待遇:特征值必为实数,特征向量可选成一组互相垂直的标准正交基(谱定理,第 15 章的压轴戏)。换句话说:对称矩阵 = 「在某组互相垂直的方向上做纯缩放」——没有旋转的花活,是可以被彻底看穿的变换。PCA 之所以能找到互相垂直的主成分,根源就是协方差矩阵的对称性。

三角矩阵(上三角 U / 下三角 L):对角线一侧全零。几何上没什么高贵血统,但它是数值计算的通用中间格式(上一章的比喻:编译器 IR):解三角系统只需 O(n²) 的回代,det = 对角线连乘,特征值直接躺在对角线上。LU、QR、Cholesky(对称正定专属的 LLᵀ 分解,速度是 LU 的两倍)全部以三角为终点。AI 现场的明星岗位:因果注意力掩码——「每个 token 只许看自己和之前的 token」,写成矩阵就是一张下三角的通行证表,GPT 的「自回归」三个字,落实到代码就是这只三角兽。

偏执组:投影与正定

投影矩阵 P(P² = P):干一次和干一百次结果相同——「幂等」。几何画面:把整个空间垂直拍到某个子空间上,已经在子空间里的点纹丝不动(所以再拍一次没有变化)。最小的例子:[1,0;0,0] 把平面拍到 x 轴。它是第 14 章的主角(最小二乘 = 把 b 投影到列空间),这里先记住它的怪癖:除了 I 之外,投影矩阵都不可逆(拍扁必丢信息,det = 0),而且它的特征值只能是 0 或 1——「要么留下,要么归零」,没有中间态。程序员可以把它理解成「幂等的 setter」:重复调用无副作用,这个词在 HTTP 语义里你早就认识。

正定矩阵:对称矩阵的精英分支,身份证是「随便拿一支非零向量 x 来测,xᵀSx > 0 恒成立」。这个奇怪的表达式 xᵀSx(读作「二次型」)几何上是一张能量曲面,正定意味着曲面是一只——任何方向离开原点都往上走,有唯一的碗底。为什么 AI 关心碗?凸优化的世界观就是「损失面是碗则必能找到底」:线性回归的损失面正是 XᵀX 定义的碗(第 14 章),牛顿法要求曲率矩阵正定才敢迈步,高斯分布的协方差矩阵必须正定才算合法。特权也丰厚:正定专属的 Cholesky 分解比 LU 快一倍,采样多元高斯全靠它。判定口诀预支一条:对称 + 特征值全正 = 正定(第 15 章后这句话会变得显然)。

工程组:稀疏与低秩

稀疏矩阵:绝大多数元素为 0。它的超能力是存储与速度——只存非零元(坐标 + 值),乘向量的代价只与非零元个数成正比。一亿用户 × 一亿商品的交互矩阵,稠密存储要 4×10¹⁶ 字节(四万 PB,不可能),稀疏存储只要每条真实交互几十字节。图神经网络的邻接矩阵、推荐系统的评分矩阵、文本的词频矩阵、MoE 模型的专家路由,全是稀疏兽的领地。工程忠告(上一章埋过):稀疏矩阵的逆几乎必然稠密——「保持稀疏」是一切大规模算法设计的第一约束。

低秩矩阵:形状很大、信息很少——整张矩阵能写成「瘦高 × 矮胖」两个小矩阵的乘积(m×n = m×r 乘 r×n,r 很小)。第 07 章说过秩一矩阵是「一支向量撑起来的表格」;秩 r 就是 r 张薄片的叠加。它的省钱账:m = n = 4096、r = 8 时,参数从 1600 万降到 6.5 万,缩水 256 倍。第 12 章给「秩」立正式定义,第 17 章教你用 SVD 把任意矩阵按重要性拆成薄片,第 23 章的 LoRA 靠它统治了大模型微调——低秩是本书埋线最长的伏笔,动物园里先记住它的长相:大而薄

动物园的编外来宾还有一位:Toeplitz 矩阵——每条对角线上的元素全都相同,像把一行数斜着复制粘贴下来。它是「卷积」的矩阵化身:第 04 章说卷积是滑动的点积,把滑动过程整个写成矩阵乘法,得到的正是一只 Toeplitz 兽(每行都是同一个卷积核,逐行右移一格)。「参数共享」——CNN 最引以为傲的省参数设计——翻译成线代就是「权重矩阵被约束成 Toeplitz 形」。同一只动物,信号处理叫它卷积,图像叫它滤波,线代叫它 Toeplitz,认出来就是一家。

随机组:初始化与转移

随机矩阵:元素从某个分布里抽出来。神经网络训练开始前,每个权重矩阵都是一只随机兽——但随机得有讲究:方差太大,信号逐层放大到溢出;太小,逐层衰减到消失。Xavier/He 初始化的全部内容,就是按「输入输出维度」校准随机元素的方差,让每层的输出范数大致守恒——第 05 章的范数思维 + 本章的矩阵视角,合起来就能读懂初始化论文的动机。随机矩阵还有一支理论近亲(随机矩阵理论),研究「大随机矩阵的特征值分布」,是理解深度网络训练动力学的前沿工具,知道名字即可。

随机(转移)矩阵 stochastic matrix:非负、每列(或每行)之和为 1——每列都是一个概率分布(第 03 章:和为 1 的非负配方 = 凸组合)。它描述「状态之间按概率流动」:天气模型、用户行为漫游、PageRank 的网页跳转。乘一次 = 概率分布往前推一步;乘无穷次 = 流到稳态。它还有条温柔的守恒律:转移矩阵乘任何概率分布,输出分量之和仍是 1——概率既不凭空产生也不凭空消失,只是换了住址。第 16 章它是主角。眼下先记一个亲戚:注意力权重矩阵(softmax 之后)每行和为 1——它就是一只行随机兽,「注意力 = token 之间的概率转移」不是修辞,是代数事实。

写成代码:给矩阵验明正身

zoo_check.py
import numpy as np

def is_orthogonal(Q, tol=1e-8):
    return np.allclose(Q.T @ Q, np.eye(Q.shape[1]), atol=tol)

def is_symmetric(S, tol=1e-8):
    return np.allclose(S, S.T, atol=tol)

# 旋转 30°:验证正交 + 保长度
t = np.deg2rad(30)
R = np.array([[np.cos(t), -np.sin(t)], [np.sin(t), np.cos(t)]])
is_orthogonal(R)                          # True
v = np.random.randn(2)
np.allclose(np.linalg.norm(R @ v), np.linalg.norm(v))   # True

# 任何 X 的格拉姆矩阵天生对称(而且半正定)
X = np.random.randn(50, 8)
is_symmetric(X.T @ X)                     # True

# 对角矩阵乘向量:一次逐元素乘,别真的构造矩阵
d = np.array([2.0, 0.5, 3.0])
x = np.array([1.0, 4.0, -2.0])
d * x                                     # 等价于 np.diag(d) @ x,快 n 倍

最后两行是本章精神的浓缩:认出物种,就能白嫖特权。np.diag(d) @ xd * x 结果相同,但前者搭了一座 n×n 的空架子又拆掉。大模型代码里到处是这类「识货省钱」:掩码用加法不用矩阵乘、RoPE 用逐对旋转不用大矩阵、LoRA 用两个瘦矩阵不用补丁全量——识别结构,是性能优化的第一生产力。

一张速查表

物种身份证几何性格AI 岗位举例
单位 I对角全 1不动残差连接的保底
对角仅对角线非零沿轴独立缩放Adam 逐参学习率、LayerNorm γ
置换每行列一个 1洗牌重排shuffle、LU 选主元
正交 QQᵀQ = I旋转/镜像,保长保角RoPE、正交初始化、SVD 两端
对称 SSᵀ = S垂直方向上的纯缩放协方差、XᵀX、核矩阵
投影 PP² = P垂直拍扁到子空间最小二乘、注意力 head 裁剪分析
正定xᵀSx > 0能量面是一只碗凸损失、协方差、Cholesky 采样
三角半边全零——(数值中间格式)因果注意力掩码、LU/QR
稀疏非零元极少——(结构性省钱)图邻接、推荐评分矩阵
低秩= 瘦 × 矮信息挤在薄子空间LoRA、矩阵分解推荐
随机/转移列和为 1 等概率流动初始化、PageRank、注意力行
▸ Android 类比

传感器 API 里就养着一只贵族兽:SensorManager.getRotationMatrix() 返回的 3×3 数组是一只正儿八经的正交矩阵——手机姿态相对世界坐标系的旋转。你想把世界坐标的重力换算进手机坐标?乘它的转置就行,因为 R⁻¹ = Rᵀ——AR 应用里每帧都在白嫖这条性质,省掉一次真正的求逆。另外 ColorMatrix.setScale(r,g,b,a) 造的是一只 4×4 对角兽:四个通道独立调亮度,通道之间互不串门。

⚠ 坑

三对易混的名字。① 对称 ≠ 正交:对称是「照镜子相等」(性格:垂直方向纯缩放),正交是「转置即逆」(性格:刚体旋转),两者几乎是性格光谱的两极——一个只缩放不旋转,一个只旋转不缩放,别被「都挺规矩」的印象骗了(同时属于两者的只有镜像/反射这类特例)。② 随机矩阵一词双意:random matrix(元素随机)和 stochastic matrix(概率转移),读论文靠上下文分辨。③ diagonal ≠ diagonalizable:对角是长相,可对角化是潜质(能被换基整成对角,第 16 章),长得不对角的矩阵完全可能「骨子里是对角的」。

✋ 动手自测

① 对角矩阵 diag(2, 0, 1) 可逆吗?几何上哪个轴出了事?

② 为什么正交矩阵连乘一百次数值上依然安全,而一般矩阵不行?

③ 协方差矩阵为什么天生对称?(写出它第 (i,j) 元的定义即可)

④ GPT 的因果掩码为什么是下三角而不是上三角?如果任务是「从后往前」预测,掩码会变成什么?

⑤ 4096×4096 的秩 8 低秩矩阵,用因子形式存储要多少参数?比稠密省多少倍?

⑥ 投影矩阵为什么不可能可逆(I 除外)?用「拍照」一句话解释。

小结:卷二收官

十一只动物入册:单位与对角是温顺的轴向缩放,置换负责洗牌;正交保长保角、转置即逆,是数值与几何的双料贵族,反射是它干脏活的旁支;对称出身点积、必有实谱与垂直特征方向,正定是它的精英分支、损失面的那只碗;投影幂等拍扁、特征值非零即一;三角是数值计算的中间格式兼因果掩码;稀疏靠结构省钱,低秩靠「薄」省钱;随机矩阵管出生(初始化),转移矩阵管流动(概率)。认出物种就能白嫖特权,这是读模型代码的第一生产力。卷二到此收官——你已经会看变换(06)、会串变换(07)、会记账(08)、会撤销(09)、会认物种(10)。下一卷换一个更深的问题:一个空间里,到底「有多少个真正独立的方向」?embedding 为什么是 4096 维而不是 4095?数据「实际上」占了几维?这个问题的答案叫维度,而通往它的路,从「哪些向量是多余的」开始。