文章目录
- 引入
- 1 正向传播
- 2 正向传播的计算图
- 3 反向传播
引入
范数正则化的含单隐藏层的多层感知机为样例模型解释正向传播和反向传播。
1 正向传播
正向传播是指对神经网络沿着输入层到输出层的顺序,依次计算并存储模型的中间变量,包括输出。
为简单表示,假设输入是一个特征为的样本,且不考虑偏差项,那么中间变量
其中时隐藏层的权重参数。
把中间变量输入激活函数后,将得到向量长度为的隐藏层变量:
隐藏层变量也是一个中间变量。
假设输出层参数只有权重,可以得到向量长度为的输出层变量:
假设损失函数为,样本标签为,则单个样本的损失项.
根据范数正则化的定义,给定超参数,正则化项即:
其中矩阵的Frobenius范数等价于将矩阵变平为向量后计算范数。最终,模型在给定的数据样本上带正则化的损失为:
称为有关给定数据样本的目标函数,以下简称目标函数。
2 正向传播的计算图
计算图用于可视化运算符和变量在计算中的依赖关系。下图绘制了多层感知机样例模型正向传播的计算图 (图片源自原论文),其中左下角是输入,右下角是输出,方框代表表里,圆圈代表运算符,箭头表示从输入到输出之间的依赖关系。
3 反向传播
反向传播是指计算神经网络参数梯度的方法。总体来说,反向传播依据微积分中的链式法则,沿着从输出层到输入层的顺序,依次计算并存储目标函数有关神经网络各层的中间变量以及参数的梯度。
对输入或者输出为任意形状张量的函数和,通过链式法则,我们有:
其中prod运算符将根据两个输入的形状,在必要的操作 (如转置和互换输入位置)后对两个输入做乘法。
在权重衰减的样例模型中,它的参数是和,因此反向传播的目标是计算和:
1)计算目标函数有关损失项和正则项的梯度:
2)依据链式法则计算目标函数有关输出层变量的梯度:
3)计算正则项有关两个参数的梯度:
4)现在可以计算最靠近输出层的模型参数的梯度。依据链式法则,得到:
5)沿着输出层向隐藏层继续反向传播,隐藏层变量的梯度如下计算:
6)由于激活函数是按元素运算的,中间变量的梯度的计算需要使用按元素乘法符:
7)最终,可以得到最靠近输入层的模型参数的梯度。依据链式法则,有:
参考文献
[1] 李沐、Aston Zhang等老师的这本《动手学深度学习》一书。