上QQ阅读APP看书,第一时间看更新
1.3.2 反向传播算法
反向传播算法的思路如下,假设样本集为{(x(1),y(1)),…,(x(m),y(m))},共m个样例,首先进行前向传播运算,计算出网络中所有的激活值,输出值记为hW,b(x)。之后,针对第l层的每一个节点i,计算出其残差,该残差表明了该节点对最终输出值的残差产生了多少影响。对于最终的输出节点,可以直接计算出网络产生的激活值与实际值之间的差距,将这个差距定义为。对于网络中将作为输入的隐藏单元,利用第l+1层节点残差的加权平均值计算,由此,反向传播算法的具体细节如下所示:
(1)进行前馈传播计算,利用前向传播计算式,得到L2,L3,…直到输出层的激活值;
(2)对于第nl层(输出层)的每个输出单元i,根据式(1-5)计算残差(J为代价函数):
(3)对于l=nl-1,nl-2,nl-3,…,2的各个网络层,第l层的第i个节点的残差计算式为:
根据推导过程,将nl-1与nl的关系替换为l与l+1,可以得到:
通过逐层的迭代求导计算,实现了算法的反向传播。
(4)偏导数的计算如下: