《MATLAB Deep Learning》Ch3 - Training of Multi-Layer Neural Network 学习笔记
Back-propagation algorithm
由于隐藏层的误差项没有被很好地定义(不像输出层有真实值 ),多层神经网络的发展停滞了许久。1986年,后向传播算法 Back-propagation algorithm 的引入解决了这个问题。
考虑一个三层网络(输入—隐藏—输出),下面是隐藏层到输出层的转换:
由前面的章节,我们已经知道对于隐藏层—输出层,, 对 的每一行求导,就得到输出层神经元 i 对每一个隐藏层神经元的梯度。
但是现在我们的问题是要求出输入层—隐藏层对应的 ,由于要更新的是 ,我们需要将 对隐藏层神经元 求导。
考虑对每一个隐藏层神经元 ,它通过 (竖着看 W 权重矩阵)作用于输出层神经元 ,故对第一个隐藏层神经元,有:
转换成矩阵形式,即:
由此,我们可以统一隐藏层和前面单一网络结构的梯度计算形式,它们的唯一区别就是 的计算不同。
Momentum
momentum 就是增加到 delta 法则上的一个附加项,它考虑到了之前的梯度的影响。
Cost Function and Learning Rule
上面是两个经典的损失函数,一个是平方误差损失函数,一个是交叉熵损失函数。“the cross entropy-driven learning rule yields a faster learning process.”
考虑如下图的交叉熵损失,当 d=1 时,y 越接近 1,损失越小;y 越接近 0,损失越大。d=0 时同理。
梯度计算参考: