矩阵数学(三):神经网络的矩阵本质
矩阵数学系列第三篇。前两篇建立了两件武器:矩阵是空间变换(复合、列组合、外积和),低秩是它的骨架分析。这篇回到神经网络本体,把前向传播与反向传播全部翻译成矩阵语言——你会发现"神秘的梯度下降"不过是几个矩阵乘法,而"为什么 GPU 爱神经网络"在这个视角下不证自明。
1. 一层网络 = 仿射变换 + 非线性折叠
最朴素的全连接层:
z = W·x + b 线性变换(上一篇的主角)+ 平移
a = σ(z) 逐元素非线性(tanh / ReLU / SiLU)
W·x 是纯线性变换(列视角:把 x 的分量当配方混合 W 的列);b 把原点平移;σ 逐元素弯折空间。为什么必须有 σ?用上一篇的复合视角一击即证:
W₂·(W₁·x) = (W₂W₁)·x 两个线性变换的复合还是一个线性变换
没有非线性,一百层网络等价于一层——深度失去意义。σ 的作用是在每次变换之间把空间"折弯",让网络能表达任意弯曲的映射(万能近似定理)。
2. batch = 矩阵:并行的来源
单个样本 x 是向量 [d],但工程上永远一批一起算——把 B 个样本按行堆叠:
X [B×d] · Wᵀ [d×h] → Z [B×h]
矩阵的第 i 行就是第 i 个样本的独立前向——批处理不是循环 B 次,而是一次大矩阵乘。这正是硬件篇 roofline 分析里"batch 是免费午餐"的矩阵本质:权重 Wᵀ 只读一次,服务所有 B 行。矩阵形状本身就是并行度的声明。
3. 前向与反向:亲手走一遍
下面的实验室是一个 2→4→2 的小网络(tanh 激活,MSE 损失)。拖动输入、步进六步:前向的每一步都标注了张量形状,最后一步展示反向传播的矩阵真相:
把这个组件的第 6 步展开成通式——反向传播的矩阵三定律:
① 梯度与参数同形:∂L/∂W 的形状永远等于 W 本身([h×d] 的权重配 [h×d] 的梯度)。读任何框架代码时,这一条能让你立刻看懂每个缓冲区是干嘛的。
② 权重梯度 = 上游梯度 ⊗ 本层输入(外积!):
∂L/∂W = (∂L/∂z) · xᵀ [h] ⊗ [d] → [h×d]
上一篇外积视角在此落地:每个权重的梯度矩阵是一个秩一矩阵(单样本时)。mini-batch 时是 B 个外积求平均。这也解释了 LoRA 的梯度形态:ΔW 的更新天然由"外积的累积"构成,而累积起来的东西如果方向集中,就是低秩的(第二篇)。
③ 误差往回传 = 再乘一次权重:
∂L/∂x = Wᵀ · (∂L/∂z) [h×d]ᵀ · [h] → [d]
梯度反向流过一层 = 乘一次转置矩阵。前向用 W,反向用 Wᵀ——这就是训练比推理费显存的根源之一(两套激活都要存),也是"梯度爆炸/消失"的机制:连乘的矩阵若特征值(谱半径)普遍 >1 则爆炸、<1 则消失——第二篇的谱分析直接上岗,RMSNorm/残差连接都是在给"反向连乘矩阵的谱"上保险。
4. 链式法则的矩阵形式:雅可比
单变量链式法则 dy/dx = dy/du · du/dx,向量版把每个"导数"升级为雅可比矩阵(J 的 [i][j] 元 = ∂outᵢ/∂inⱼ):
∂L/∂x = J₂ · J₁ · … · ∽ (反向 = 雅可比从右往左连乘)
好消息是实践中几乎从不显式构造雅可比——逐元素激活(tanh/ReLU)的雅可比是对角的(只乘对角元即可),线性层的雅可比就是 Wᵀ 加上输入侧的外积。反向传播的高效实现把这些结构都折叠成了三次矩阵乘/逐元素乘。
5. Embedding:矩阵乘法的极端稀疏特例
查表 E[token_id] 看似与矩阵无关,其实等价于:
one_hot(id) [V] · E [V×d] → [d]
one-hot 只有一个 1——列视角下就是"只挑 E 的第 id 列,系数为 1"。乘法退化为寻址,所以工程实现用查表;但语义上它是矩阵乘,这保证了"embedding 层可以被梯度训练"(它的梯度 dE = 上游梯度 ⊗ one-hot,恰好只更新被查过的行——矩阵语言自动解释了稀疏更新)。
6. 为什么矩阵是硬件的母语
把本系列的矩阵视角和硬件篇对上:
| 矩阵性质 | 硬件对应 |
|---|---|
| 元素独立计算(视角①) | 众核并行(GPU SM / NPU Cube 分块) |
| 规整的数据复用(行×列) | 分块缓存、高算术强度 → roofline 屋顶 |
| batch 拉大矩阵维度 | 提高算术强度 → 免费吞吐 |
| 大 GEMM 无分支 | 深流水满载,控制单元闲置最少 |
神经网络之所以"恰巧"适合硬件加速,是因为它的核心计算被刻意约束在了矩阵乘这一个原语上——框架(PyTorch 的 aten 算子)与芯片(Tensor Core/Cube)都围绕 GEMM 设计。CANN 篇里 TBE 算子调优的九成工作,就是把各种计算改写成更优形状的矩阵乘。
7. 小结
- 一层 = Wx+b(线性变换+平移)+ 逐元素非线性折叠;无非线性则复合塌缩为单层;
- batch 堆叠成矩阵,一次乘法并行全部样本——矩阵形状即并行度;
- 反向传播矩阵三定律:梯度同形、dW=外积、误差回传乘 Wᵀ;梯度爆炸/消失=反向连乘矩阵的谱问题;
- Embedding = one-hot 矩阵乘的稀疏特例,稀疏梯度更新由矩阵语言自动导出;
- 神经网络是"被刻意约束在矩阵原语上"的计算模型,硬件的全部设计围绕它。
最后一篇做总装:Attention、卷积、MoE、KV Cache——现代架构的每个明星组件,逐一还原成它背后的矩阵身份。

