BP算法原理学习笔记

使用反向传播训练多层神经网络的原则


本文描述了采用反向传播算法的多层神经网络的教学过程为了说明这个过程,使用了如下图所示的具有两个输入和一个输出的三层神经网络: 

BP算法原理学习笔记


每个神经元由两个单元组成。第一单元添加权重系数和输入信号的乘积。第二个单元实现非线性函数,称为神经元**函数。信号e是加法器输出信号,y = f(e)是非线性元件的输出信号。信号y也是神经元的输出信号。 

BP算法原理学习笔记


   为了讲解神经网络,我们需要训练数据集。训练数据集由分配有相应目标(期望输出)z的输入信号(1和 2)组成网络培训是一个迭代过程。在每次迭代中,使用来自训练数据集的新数据修改节点的权重系数。使用下面描述的算法计算修改:每个示教步骤从强制来自训练集的两个输入信号开始。在这个阶段之后,我们可以确定每个网络层中每个神经元的输出信号值。下图显示了信号如何通过网络传播,符号(xm)n 表示网络输入之间的连接权重m输入层中的神经元n符号n 表示神经元n的输出信号。 

BP算法原理学习笔记


BP算法原理学习笔记


BP算法原理学习笔记


通过隐藏层传播信号。符号mn表示神经元m的输出与下一层的神经元n的输入之间的连接的权重 。 

BP算法原理学习笔记


BP算法原理学习笔记


通过输出层传播信号。 

BP算法原理学习笔记


在下一个算法步骤中,将网络y的输出信号与在训练数据集中发现的期望输出值(目标)进行比较。差异称为输出层神经元的误差信号d。 

BP算法原理学习笔记


不可能直接计算内部神经元的误差信号,因为这些神经元的输出值是未知的。多年来,多人网络培训的有效方法一直未知。只有在八十年代中期,反向传播算法才被制定出来。这个想法是将误差信号d(在单个教学步骤中计算)传播回所有神经元,为所讨论的神经元输入输出信号。 

BP算法原理学习笔记


BP算法原理学习笔记


权重系数瓦特MN用来传播错误背面都等于该计算的输出值时使用。只有数据流的方向发生改变(信号从一个接一个地传输到输入端)。该技术用于所有网络层。如果传播的错误来自它们添加的少数神经元。插图如下: 

BP算法原理学习笔记


BP算法原理学习笔记


BP算法原理学习笔记


当计算每个神经元的误差信号时,可以修改每个神经元输入节点的加权系数。在下面的公式中, df(e)/ de表示神经元**函数的导数(其权重被修改)。 

BP算法原理学习笔记


BP算法原理学习笔记


BP算法原理学习笔记


BP算法原理学习笔记


BP算法原理学习笔记


BP算法原理学习笔记
具体数学原理见下一片公式推导。