神经网络反向传播:理论与数学推导
1. 链式法则与上游梯度
设损失
其中
对于向量
这个乘积称为向量—雅可比积(VJP)。反向传播只需计算该乘积,无须显式构造完整的
2. 多路径的梯度累加
若变量
在
计算图是有向无环图。同一节点可能接收多个下游节点的梯度,因此须先将这些贡献求和,再用该节点的局部导数继续向输入传播;这对应从输出到输入的反向拓扑顺序。
若
按边求和保留了
3. 逐元素运算
设
| 前向运算 | ||
|---|---|---|
例如
4. 求和与均值
若
若
对于按某些轴归约的张量求和,同一输出元素对应的所有输入元素都接收该输出元素的上游梯度;反向结果恢复到输入形状。
5. 广播的反向传播
设
一般地,一个输入元素若在前向广播后参与多个输出位置,反向梯度就是这些位置的贡献之和,即沿广播引入的维度求和。
6. 矩阵乘法
设
并令
可知
同理,
两式的形状分别为
若
7. 反向传播的起点
标量损失的起始梯度为
若输出为向量
因此,一次反向传播计算一个给定种子向量对应的 VJP;不同种子向量会得到不同的输入梯度。