这里记录一下BP神经网络的误差逆向传播算法:
1.针对特殊的一种**函数:来推导BP神经网络的权值和阈值更新公式:
给定训练集:,即输入属性序列由个属性描述,输出维实值向量。为了方便讨论,图1给出了拥有个输入神经元,个输出神经元,个隐层神经元的多层前馈网络结构,其中输出层为第个神经元的阈值用表示,隐层第个神经元用表示。输入层第个神经元与隐层第个神经元之间的连接权为,隐层第个神经元与输出层第个神经元之间的连接权为。
图1 BP神经网络即算法中的符号变量
记隐层第个神经元接收到的输入为,输出层的第个神经元接收到的输入为:,其中为隐层第个神经元的输出。现在假设隐层和输出层都使用Sigmoid函数:
对训练例,假定神经网络的输出为:,即:
(1)
则网络在上的均方误差为:
(2)
图1中的网络中有个参数需要确定。BP是一个迭代学习算法,在迭代的每一轮采用广义的感知机学习规则对参数进行更新估计。下面我们以图1中的隐层到输出层的连接权值为例来进行推导:
BP算法基于梯度下降(gradient descent)策略,以目标的负梯度方向对参数进行调整,对公式2中的误差,给定学习率,有:
(3)
注意到先影响到第个输出神经元的输入值,再影响到其输出值,然后影响到,有:
(4)
根据的定义有:,并且Sigmoid函数有一个很好的性质:,于是根据公式(1)和(2),有:
(5)
将公式(5)带入到公式(4),再带入到公式(3)中,就得到了BP算法中关于的更新公式:
(6)
而的更新公式为:
(7)
BP神经网络的输出层到隐层的连接权值的更新估计式为:
BP神经网络的隐层第个神经元的阈值的更新公式为:
学习率控制着算法每一轮迭代中的更新步长;
相关文章: