矩阵数学系列第三篇。前两篇建立了两件武器:矩阵是空间变换(复合、列组合、外积和),低秩是它的骨架分析。这篇回到神经网络本体,把前向传播与反向传播全部翻译成矩阵语言——你会发现"神秘的梯度下降"不过是几个矩阵乘法,而"为什么 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——现代架构的每个明星组件,逐一还原成它背后的矩阵身份。