是输出层传递函数的偏微分
于是:
由链定理得:
? r
-£(站-巧)z (屯)
‘佥
J-1
于是输出层各神经元的权值调整公式为:
山臥二乞-刃加(心息
3 )隐层权值的变化
定义误差信号为:
其中第一项:
退 3 込
]曲
M
依链定理有:
(5.23
)
(5.24)
(5.25)
(5.26)
(5.27)
(5.28)
(5.29
)
第二项:
(5.30)
是隐层传递函数的偏微分
于是:
(5.31)
由链定理得:
遞=dE? 鶴
M
(
r
(5.32)
从而得到隐层各神经元的权值调整公式为:
(5.33
)
5.4.3 BP算法的改进
BP算法理论具有依据可靠、推导过程严谨、精度较高、通用性较好等优点,但 标准BP算
法存在以下缺点:收敛速度缓慢;容易陷入局部极小值;难以确定隐层数和隐层节点个数。 在实际应用中,BP算法很难胜任,因此出现了很多改进算法。
1) 利用动量法改进BP算法
精选文档
标准BP算法实质上是一种简单的最速下降静态寻优方法, 在修 正W(K)时,只按照第K步的负梯度方向进行修正,而没有考虑 到以前积累的经验,即以前时刻的梯度方向,从而常常使学习过 程发生振荡,收敛缓慢。动量法权值调整算法的具体做法是:将 上一次权值调整量的一部分迭加到按本次误差计算所得的权值 调整量上,作为本次
图55自适应学习
的实际权值调整量,即:
卯W =-刀VE3) +型礦仪-1)
(5.34 )
其中:a为动量系数,通常0Vav0.9; n—学习率,范围在0.001?10之间。这种方法所 加的动量因子实际上相当于阻尼项,它减小了学习过程中的振荡趋势,从而改善了收敛性。 动量法降低了网络对于误差曲面局部细节的敏感性,有效的抑制了网络陷入局部极小。
2) 自适应调整学习速率
标准BP算法收敛速度缓慢的一个重要原因是学习率选择不当, 学习率选得太大,则有可能修正过头,导致振荡甚至发散。可采用图 法调整学习率。
学习率选得太小,收敛太慢;
5.5所示的自适应方
调整的基本指导思想是:在学习收敛的情况下,增大n,以缩短学习时间;当n偏大致使不能收敛时,要及时减小n,直到 收敛为止。
3) 动量-自适应学习速率调整算法
采用动量法时,BP算法可以找到更优的解;采用自适应学习速率法时, 训练时间。将以上两种方法结合起来,就得到动量 -自适应学习速率调整算法。
BP算法可以缩短
4) L-M学习规则
-------- 精选文档 ----------------
L-M (Levenberg-Marquardt )算法比前述几种使用梯度下降法的 BP算法要快得多,但 对于复杂问
题,这种方法需要相当大的存储空间。 的权值调整率选为:
L-M(Leve nberg-Marquardt) 优化方法
(5.35 )
其中:e —误差向量;J—网络误差对权值导数的雅可比(Jacobian )矩阵;卩一标量,当卩 很大时上式接近于梯度法,当卩很小时上式变成了 Gauss-Newt on 法,在这种方法中,卩 也是自适应调整的。
综合考虑,拟采用L-M学习规则和动量法分别作为神经网络的训练函数和学习函数。
5.5 BP神经网络的训练策略及结果
本文借助于MATLAB神经网络工具箱来实现多层前馈 BP网络(Multi-layer feed-forward
backpropagation network )的颜色空间转换,免去了许多编写计算机程序的烦恼。神经
网络的实际输出值与输入值以及各权值和阈值有关,为了使实际输出值与网络期望输出值 相吻合,可用含有一定数量学习样本的样本集和相应期望输出值的集合来训练网络。训练 时仍然使用本章5.2节中所述的实测样本数据。
另外,目前尚未找到较好的网络构造方法。确定神经网络的结构和权系数来描述给定的映 射或逼近一个未知的映射,只能通过学习方式得到满足要求的网络模型。神经网络的学习 可以理解为:对确定的网络结构,寻找一组满足要求的权系数,使给定的误差函数最小。 设计多层前馈网络时,主要侧重试验、探讨多种模型方案,在实验中改进,直到选取一个 满意方案为止,可按下列步骤进行:对任何实际问题先都只选用一个隐层;使用很少的隐 层节点数;不断增加隐层节点数,直到获得满意性能为止;否则再采用两个隐层重复上述 过程
-------- 精选文档 ----------------
训练过程实际上是根据目标值与网络输出值之间误差的大小反复调整权值和阈值,直到此 误差达到预定值为止。
5.5.1确定BP网络的结构
确定了网络层数、每层节点数、传递函数、初始权系数、学习算法等也就确定了 确定这些选项时有一定的指导原则,但更多的是靠经验和试凑。
BP网络<
1 )隐层数的确定:
1998年Robert Hecht-Nielson 证明了对任何在闭区间内的连续函数, 都可以用一个隐层 的BP网
络来逼近,因而一个三层的 BP网络可以完成任意的n维到m维的映照。因此我 们从含有一个隐层的网络开始进行训练。
2)
BP网络常用传递函数:
图久 BP刚蹈常甲的传逛函数
BP网络的传递函数有多种。Log-sigmoid 型函数的输入值可取任意值,输出值在
0和1
之间;ta n-sigmod 型传递函数tan sig的输入值可取任意值,输出值在-1到+1之间;线 性传递函数purelin的输入与输出值可取任意值。BP网络通常有一个或多个隐层,该层中 的神经元均采用
sigmoid型传递函数,输出层的神经元则采用线性传递函数,整个网络的 输出可以取任意值。各种传
递函数如图
5.6所示。