7 前向传播、反向传播和计算图
- 以带dropout的单层隐藏层mlp为例
7.1 前向传播
- 按顺序(从输入层到输出层)计算和存储神经网络中每层的结果s。
- 1)输入是
,隐藏层不含偏置,得到中间变量:
- 2)激活:
- 3)输出:
- 4)损失:
- 5)正则化项(权重衰减):
- 其中矩阵的Frobenius范数是将矩阵展平成向量后应用
范数。
- 其中矩阵的Frobenius范数是将矩阵展平成向量后应用
- 6)目标函数:
- 1)输入是
7.2 前向传播计算图
- 7.1的计算图:

7.3 反向传播
-
根据微积分中的链式规则,按相反的顺序从输出层到输入层遍历网络。
-
链式法则:假设有
和 ,有:- prod表示一定的操作
-
针对前向传播计算图计算反向梯度:
由于激活函数
是按元素计算的,因此计算 需要使用按元素乘法运算符:
7.4 训练神经网络
- 训练神经网络时,对于前向传播,沿着依赖的方向遍历计算图并计算路径上的所有变量。然后将这些用于反向传播,其中计算顺序与计算图的相反。
- 一方面,在前向传播期间计算正则项取决于模型参数W(1)和 W(2)的当前值。它们是由优化算法根据最近迭代的反向传播给出的。
- 另一方面,反向传播期间参数
的梯度计算,取决于由前向传播给出的隐藏变量h的当前值。 - 因此,在训练神经网络时,在初始化模型参数后,我们交替使用前向传播和反向传播,利用反向传播给出的梯度来更新模型参数。
- 反向传播重复利用前向传播中存储的中间值,以避免重复计算。带来的影响之一是我们需要保留中间值,直到反向传播完成。