误差反传训练算法
先考虑网络只有一个输出y的情况。
给定N个样本(xk,yk)(k=1,2,⋯,N),任意一个节点i的输出为Oi,其中第l层的第j个单元,当输入第k个样本时,结点j的输入为netjkl=i∑wijlOjkl−1输出为Ojkl=fnetOjkl采用平方型误差函数Ek=21i∑(yjk−yjk)2总误差为E=2N1k=1∑NEk
设δjkl=∂netjkl∂Ek因此∂wijl∂Ek=∂netjkl∂Ek∂wijl∂netjkl=δjklOjkl−1对于δjkl=∂netjkl∂Ek
(1)若j为输出单元,则
δjkl=∂netjkl∂Ek=∂Ojkl∂Ek∂netjkl∂Ojkl=∂Ojkl∂Ekf′(netjkl)
(2)若j不是输入单元,则δjkl=∂netjkl∂Ek=∂yjk∂Ek∂netjkl∂yjk=−(yjk−yjk)f′(netjkl)
有
{δjkl=∑mδjkl+1wmjl+1f′(netjkl)∂wijl∂Ek=δjklOjkl−1
因此步骤大致为正向计算过程,再进行反向过程修正权值。