《MATLAB Deep Learning》Ch3 - Training of Multi-Layer Neural Network 学习笔记

Back-propagation algorithm

由于隐藏层的误差项没有被很好地定义(不像输出层有真实值 did_i),多层神经网络的发展停滞了许久。1986年,后向传播算法 Back-propagation algorithm 的引入解决了这个问题。

考虑一个三层网络(输入—隐藏—输出),下面是隐藏层到输出层的转换:
在这里插入图片描述
由前面的章节,我们已经知道对于隐藏层—输出层,δ=φ(v)e\delta=\varphi^{'}(v)eδi\delta_iW2W_2 的每一行求导,就得到输出层神经元 i 对每一个隐藏层神经元的梯度。

但是现在我们的问题是要求出输入层—隐藏层对应的 δ\delta,由于要更新的是 W1,W1x=v(1),y(1)=φ(v(1))W_{1},W_1x=v^{(1)},y^{(1)}=\varphi(v^{(1)}),我们需要将 δi\delta_i 对隐藏层神经元 y(1)y^{(1)} 求导。

考虑对每一个隐藏层神经元 yj(1)y^{(1)}_{j},它通过 wij(2)w^{(2)}_{ij}竖着看 W 权重矩阵)作用于输出层神经元 yiy_i,故对第一个隐藏层神经元,有:
在这里插入图片描述
转换成矩阵形式,即:
在这里插入图片描述
由此,我们可以统一隐藏层和前面单一网络结构的梯度计算形式,它们的唯一区别就是 δ\delta 的计算不同。
在这里插入图片描述

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 时同理。
在这里插入图片描述

梯度计算参考:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章