多层感知器在如何获取隐层的权值的问题上遇到了瓶颈。既然我们无法直接得到隐层的权值,能否先通过输出层得到输出结果和期望输出的误差来间接调整隐层的权值呢?BP算法就是采用这样的思想设计出来的算法,它的精髓就是,学习过程由信号的正向传播与误差的反向传播两个过程组成。
正向传播时,输入样本从输入层传入(layer1),经各隐层逐层(layer2)处理后,传向输出层(layer3)。若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。
反向传播时,将输出以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。
说明上图各符号代表意思 ωijl表示第l-1层第j个元素与第l层第i个元素的连接参数 Zil第l层第i个元素输入Zil= Σjωijlajl-1+bil ail=σ(Zil) 值从第一层向后传播做运算直到输出,正向传播就结束了