Appearance
神经网络优化任务的一般描述
一个估计器可以描述为如下形式. 其中
而学习目标则要求最小化损失函数
如果
为方便理解, 可以将
视为自变量, 而 和 视为损失函数的参数.
但是如果
BP算法一般形式的推导
首先回忆一下复合函数求导法则和多元复合函数求导法则:
考虑如下图所示的神经元, 其中一个神经元的输出被多个不同分支的神经元作为输入(当然也可以是一个或者没有).
这里的损失函数可以表示为
那么损失函数对参数
整理一下便可以得到本文结论(典型的动态规划递推公式)
可见损失函数
这个向量是损失函数对 所有直接后继节点的梯度 这个向量是 的所有直接后继节点对 本身的梯度 这个数值就是 对参数 的梯度
注意前两个部分的点积组成了损失函数对
实际BP应用举例
在实际应用的时候, 也就是自定义一个神经网络的层的时候, 最需要注意的是, 只需要关心:
- 本层传递给后继层的输出是什么? (其shape必然仅与本层相关)
- 得到后继层反传来的残差后, 本层应该如何计算梯度并更新参数? (梯度的shape必然仅与本层参数的shape相关)
- 得到后继层反传来的残差后, 本层反传给前驱层的残差是什么? (其shape必然仅与本层的输入相关)
前馈全连接网络
如果前馈全连接网络的输入是
其中, 如果对于某一层
而目标为最小化损失函数
为方便理解, 这里将
其中
练习题
- 卷积层的前向和后向过程分别是怎样的? (参考卷积神经网络概要)
- 池化层的呢?
- 各种Normalization层呢?
- 循环神经网络的呢?