Rumelhart、Hinton和Williams(1986年)提出的一般Delta法则
Parter(1985年)也独立地得出过相似的算法,他称之为学习逻辑
Lecun(1985年)也研究出大致相似的学习法则
前向传播
反向传播算法
有一层隐层
输入为2维向量x
输出为2维向量y
x所对应的期望输出(ground truth)为t
若y≠t,则说明参与计算的权重w不恰当,需要进行调整。
调整的手法,即为反向传播。
反向传播算法的核心,是通过比较输出y和真值t,对参与计算的w进行调整。
其计算方法是从网络的输出层开始,向输入层方向逐层计算梯度并更新权重,与前馈运算正好相反。
链式法则
激活函数的导数
根据链式 法则:
定义:
则
重要结论:
对于,我们来计算损失函数对于它的偏导数(也就是梯度):
对于偏置项,有:
BP四项基本原则
矩阵形态
Hadamard乘积,element-wise product
梯度消失
BP2中我们可以看到,计算梯度时包含了激活函数的导数
如果使用函数sigmoid,那么它的导数为sigmoid'(x)=sigmoid(x)*[1-sigmoid(x)]
其最大值为0.25,而越往两侧,越接近0在方向传播时,每一层的△都逐层减小最终消失。
Zig zag
思考一下的两个权重
若h1、h2都是sigmoid函数的输出,则h1、h2>0
那么和两个权重得到的更新值△要么同时为正,要么同时为负
如果这两个权重恰好要求一个增加,另一个减小,那么:
交叉熵损失
二分类问题:
交叉熵损失: