文章目录

  • 引入
  • 1 正向传播
  • 2 正向传播的计算图
  • 3 反向传播


引入

L1正则项反向传播_FanSmale范数正则化的含单隐藏层的多层感知机为样例模型解释正向传播和反向传播L1正则项反向传播_正向传播_02

1 正向传播

  正向传播是指对神经网络沿着输入层到输出层的顺序,依次计算并存储模型的中间变量,包括输出。
  为简单表示,假设输入是一个特征为L1正则项反向传播_深度学习_03的样本,且不考虑偏差项,那么中间变量
L1正则项反向传播_L1正则项反向传播_04其中L1正则项反向传播_FanSmale_05时隐藏层的权重参数。
  把中间变量L1正则项反向传播_L1正则项反向传播_06输入激活函数L1正则项反向传播_FanSmale_07后,将得到向量长度为L1正则项反向传播_FanSmale_08的隐藏层变量:
L1正则项反向传播_深度学习_09隐藏层变量L1正则项反向传播_FanSmale_10也是一个中间变量。
  假设输出层参数只有权重L1正则项反向传播_FanSmale_11,可以得到向量长度为L1正则项反向传播_L1正则项反向传播_12的输出层变量:
L1正则项反向传播_FanSmale_13  假设损失函数为L1正则项反向传播_FanSmale_14,样本标签为L1正则项反向传播_L1正则项反向传播_15,则单个样本的损失项L1正则项反向传播_深度学习_16.
  根据L1正则项反向传播_FanSmale范数正则化的定义,给定超参数L1正则项反向传播_深度学习_18,正则化项即:
L1正则项反向传播_FanSmale_19其中矩阵的Frobenius范数等价于将矩阵变平为向量后计算L1正则项反向传播_FanSmale范数。最终,模型在给定的数据样本上带正则化的损失为:
L1正则项反向传播_正向传播_21   L1正则项反向传播_深度学习_22称为有关给定数据样本的目标函数,以下简称目标函数

2 正向传播的计算图

  计算图用于可视化运算符和变量在计算中的依赖关系。下图绘制了多层感知机样例模型正向传播的计算图 (图片源自原论文),其中左下角是输入,右下角是输出,方框代表表里,圆圈代表运算符,箭头表示从输入到输出之间的依赖关系。

L1正则项反向传播_深度学习_23

3 反向传播

  反向传播是指计算神经网络参数梯度的方法。总体来说,反向传播依据微积分中的链式法则,沿着从输出层到输入层的顺序,依次计算并存储目标函数有关神经网络各层的中间变量以及参数的梯度。
  对输入或者输出L1正则项反向传播_深度学习_24为任意形状张量的函数L1正则项反向传播_L1正则项反向传播_25L1正则项反向传播_L1正则项反向传播_26,通过链式法则,我们有:
L1正则项反向传播_深度学习_27其中prod运算符将根据两个输入的形状,在必要的操作 (如转置和互换输入位置)后对两个输入做乘法。
  在权重衰减的样例模型中,它的参数是L1正则项反向传播_L1正则项反向传播_28L1正则项反向传播_正向传播_29,因此反向传播的目标是计算L1正则项反向传播_L1正则项反向传播_30L1正则项反向传播_正向传播_31
  1)计算目标函数L1正则项反向传播_FanSmale_32有关损失项L1正则项反向传播_深度学习_33和正则项L1正则项反向传播_正向传播_34的梯度:
L1正则项反向传播_正向传播_35  2)依据链式法则计算目标函数有关输出层变量的梯度L1正则项反向传播_深度学习_36
L1正则项反向传播_深度学习_37  3)计算正则项有关两个参数的梯度:
L1正则项反向传播_L1正则项反向传播_38  4)现在可以计算最靠近输出层的模型参数的梯度L1正则项反向传播_L1正则项反向传播_39。依据链式法则,得到:
L1正则项反向传播_反向传播_40  5)沿着输出层向隐藏层继续反向传播,隐藏层变量的梯度L1正则项反向传播_深度学习_41如下计算:
L1正则项反向传播_L1正则项反向传播_42  6)由于激活函数L1正则项反向传播_FanSmale_07是按元素运算的,中间变量L1正则项反向传播_深度学习_44的梯度L1正则项反向传播_正向传播_45的计算需要使用按元素乘法符:
L1正则项反向传播_FanSmale_46  7)最终,可以得到最靠近输入层的模型参数的梯度L1正则项反向传播_深度学习_47。依据链式法则,有:
L1正则项反向传播_深度学习_48
  


参考文献
[1] 李沐、Aston Zhang等老师的这本《动手学深度学习》一书。