用最优化方法解决BP神经网络训练问题 下载本文

龙源期刊网 http://www.qikan.com.cn

用最优化方法解决BP神经网络训练问题

作者:李 翔 苏 成

来源:《电脑知识与技术·学术交流》2008年第12期

摘要:BP神经网络可以有效地对非线性系统进行逼近,但是传统的最速下降搜索方法存在收敛速度慢的问题。本文提出把BP神经网络转化为最优化问题,用一种共轭梯度算法代替最速下降法进行搜索迭代,极大地提高了收敛速度。 关键词:神经网络; 最优化;一种共轭梯度算法

中图分类号:TP183文献标识码:A 文章编号:1009-3044(2008)12-20000-00

Training BP Neural Network using optimization methods LI Xiang ,SU Cheng

(College of computer science,China University of Mining and Technology, Xuzhou 221000,China)

Abstract:BP neural network can efficiently approximate any nonlinear system, but there is a problem of inefficient learning speed with the conventional steepest descent algorithm. In this paper, we try to convert neural network to an optimization model, and apply conjugate gradient algorithm to it to bring a faster learning speed.

Keywords:Neural network ;Optimization ; Conjugate gradient algorithm

1 BP神经网络模型

BP(前馈式)神经网络结构简单,可操作性强,能模拟任意的非线性输入输出系统,是目前应用广泛的神经网络模型。BP网络由输入层i、隐含层j、输出层k及各层之间的节点连接权组成,神经元拓扑如图1:

网络的学习过程由信息正向传播和误差反向传播构成:

龙源期刊网 http://www.qikan.com.cn

正向传播过程:输入信息从输入层经隐含层逐层处理,传向输出层。若输出层的实际输出与期望的输出不符,则转入误差的反向传播。典型的BP神经网络模型如图2所示:

设网络中各个参数如下:

xi为输入信号,yi为实际输出信号,Yi为期望输出信号wi为对应于各个输入信号的连接权值,θ为阈值,ε为给定的误差。

(1)输入层:输入值一般为样本各分量输入值,输出值一般等于输入值xi 。

(2)隐含层:对于节点j,其输入值hj为其前一层各节点输出值xi的加权和,它的输出值为:

(lixiang03.tif)

(3)输出层:输出层类似于隐含层(lixiang04.tif)

神经元结点的作用函数一般选用Sigmoid函数,即:(lixiang05.tif) 误差函数一般选用(lixiang06.tif)

神经网络的训练过程就是按最小误差准则来不断调整网络结点的权值,直至误差 可以看到,BP神经网络实际可转化为求解一个最优化问题,它的目标函数是(lixiang07.tif)。

2 最速下降法

2.1 基本搜索方法

针对神经网络的最优化问题,传统的搜索方法选用最速下降法,即通过多次迭代,对网络权值进行修正,使误差目标函数沿负梯度方向下降,迭代的公式如下: (lixiang08.tif)

龙源期刊网 http://www.qikan.com.cn

这种方法在刚开始几步有较好的收敛效果,但当迭代深入后容易陷入振荡,出现锯齿现象,导致结果精度不够,训练过程较长。 2.2 纯梯度方法的改进

针对最速下降法收敛速度慢的问题,很多研究者提出了一些改进方法,主要有以下几种: (1)确定学习率

在基本网络算法中,Δwi=wi(t+1)-wi(t)引用了固定的学习率η=1,为了更好的控制网络的收敛性和学习速度,可以根据需要选择自适应的变学习率,一般取0 (lixiang10.tif)

学习步长η是网络学习的一个重要参数,在一定程度上也决定了网络的收敛速度。学习步长过小会导致权重值更新量过小,因而使收敛非常缓慢;学习步长过大又会导致在极值点附近振荡的可能性加大,乃至反复振荡而难以收敛。具体数值应根据对误差函数的影响来决定。 (2)加入动量项

这种措施又称为惯性校正法,其权值调整公式可用下式表示: (lixiang11.tif)

α为动量系数,这种方法在调整权值时,不仅考虑了本次迭代,而且兼顾上次的调整结果,能够在加速收敛的同时一定程度地抑制振荡。 (3)改进误差函数

在基本网络算法中,引用的误差函数是(lixiang12.tif)。可以看到,这是一个误差的绝对量,不能有效地表征样本的相对误差程度。对于某个节点会出现误差的绝对量很大但是比例却很小的情况。为了避免上述问题,引入相对误差函数:

首先,对(lixiang13.tif)变形,(lixiang14.tif),把不含有实际输出的Y提出,得到相对误差函数(lixiang15.tif)。相对误差函数Jp使用误差量的相对比例来表征样本误差ε ,具有更好的效果。

类似的针对最速下降法的改进方法还有很多,但是它们无法从根本上解决纯梯度方法的局部振荡性,收敛速度慢的问题仍然有待解决。

为了解决收敛速度慢的问题,本文采用共轭梯度法代替沿负梯度方向的最速下降法,它比最速下降法在收敛速度上有很大的改进。