当前位置:文档之家› 神经网络学习算法的过拟合问题及解决方法

神经网络学习算法的过拟合问题及解决方法

神经网络学习算法的过拟合问题及解决方法李俭川 秦国军 温熙森 胡茑庆(国防科技大学机电工程与自动化学院 长沙,410073)摘要 针对反向传播学习算法及其改进算法中出现的过拟合问题,探讨了三种解决方法:调整法、提前停止法和隐层节点自生成法,并用实例对三种方法进行了验证和比较。

其中,调整法和提前停止法针对一个较大的网络可以解决过拟合问题,而隐层节点自生成法的提出既能避免过拟合问题,又能获得最少神经元网络结构。

这三种方法有效地解决了在神经网络学习过程中的过拟合问题,提高了网络的适应性。

它们不仅适合于函数逼近,而且可以推广到其他网络结构等应用领域。

关键词 神经网络 计算机 BP 算法 过拟合 均方误差 自生成 故障诊断中图分类号 T H 165.3神经网络已经在模式分类、机器视觉、机器听觉、智能计算、自动控制、故障诊断、信息处理、地震勘探、通信、雷达和声纳等领域有着十分广泛的应用前景,并随着计算机技术和信号处理技术的发展而发展。

应用神经网络必须解决两个问题:模型和算法。

现有的神经网络模型已达上百种[1],应用最多的是Hopfield 神经网络、多层感知器、自组织神经网络、概率神经网络以及它们的改进型。

自Rumellhart D E,H inton 和Williams 提出误差反向传播算法(即BP 算法),解决了神经网络在引入隐层节点后的学习(或训练)问题后,已经发展了许多的改进学习算法[1],如快速下降法、共轭梯度法、一维搜索法及Lev enberg -Mar quardt 法等,其收敛速度很快,能满足实时性要求,但也存在着一些问题。

1 学习算法及其过拟合问题BP 算法及其改进算法是目前应用最广泛的学习算法,尽管不能证明这类算法能象单层感知器一样收敛,但是对许多问题的解决是成功的[2]。

实际上,BP 算法是把一组样本的输入输出问题,变为一个非线性优化问题,它使用了优化技术中最普通的一种梯度下降法,用迭代运算求解权值并相应于学习记忆问题,加入隐层节点可使优化问题的可调参数增加,这样可得到更精确的解。

要应用学习算法对网络进行训练,首先需要确定网络的结构,即输入、输出层神经元数目和隐层数及其神经元数目。

如何适宜地选取隐含层神经元的数目还没有确定的规律可以指导,但是,隐含层神经元数目是否合适对整个网络是否能够正常工作具有重要的甚至是决定性的意义。

隐含层神经元数第22卷第4期2002年12月 振动、测试与诊断Jo ur nal of Vibr ation,M easur em ent &Diag no sis V o l.22No.4D ec.2002国家自然科学基金资助项目(编号:59775025)。

收稿日期:2001-07-09;修改稿收到日期:2001-12-03。

 图1 学习样本目如果太少,网络就无法进行训练[2,3]。

如果刚好能够进行训练,则网络的鲁棒性差,抗噪声能力不强,不能辨识以前没有遇到的模式。

如果网络隐含层的神经元数目太多,就会需要大量的训练样本,而且能力过强,具有了所有的模式而无法接受新的模式,伴随而来的是为训练而耗费的大量时间和内存,这种现象就是所谓的过拟合。

例如,利用神经网络实现函数逼近时,如果网络过大,通常会发生过拟合现象。

图1中,“+”表示含有噪声的正弦电压信号学 图2 过拟合现象习样本;虚线表示无噪声的理想情况(以下各图表示方法相同)。

图2所示为一个3层神经网络(输入层1个神经元,隐层20个神经元,输出层1个神经元)利用Levenber g-M arquar dt 法对图1所示样本进行训练的结果,实线为训练后的网络的响应(以下各图表示方法相同)。

由图可见,网络已经出现过拟合现象,其适应性不好。

2 解决过拟合的方法 很容易想到的是选择合适的隐层神经元数目来避免过拟合现象,一般来说,隐含层神经元的数目可以根据下式来确定[2]n H =(n I +n O )1/2+l (1)其中:n H ,n I 和n O 分别为隐含层、输入层和输出层的神经元数目;l 一般为1~10之间的一个整数(特别情况可以大于10)。

显然,这种方法是不能保证避免过拟合问题的。

针对过拟合问题,笔者探讨了3种解决方法。

2.1 调整法一般用网络均方误差做为衡量网络拟合能力的误差准则函数[1],即E =E e =1N ∑N i =1(e i )2=1N ∑N i =1(t i -o i )2(2)其中:N 为对应层神经元数目;t i 为输出样本值;o i 为神经元输出。

第一种解决过拟合的方法就是调整衡量网络拟合能力的误差准则函数,添加一项含有网络权值和偏置值的均方值。

E = E e +(1- )E w(3)其中: 为比例因子。

E w =1n ∑n j =1(w j )2(4)其中:w j 为网络权值或偏置值;n 为权值和偏置值的总数。

用式(3)将使网络具有更小的权值或偏置值,从而使得网络的响应更平滑,大大降低过拟合的可能。

运用调整法的学习算法的实现过程与BP 算法是类似的,这里不再赘述。

该方法存261第4期 李俭川等:神经网络学习算法的过拟合问题及解决方法在的问题是难于确定调整参数 的最优值,当 太大时,网络可能会出现过拟合;若 太小,则网络将无法进行训练。

最好的策略是能自动地设置调整参数,一种较好的方法是基于Bay es 决策规则的调整法[4],该方法假定网络的权值和偏置值是具有特定分布的随机变量,可以用统计方法来估计调整参数[5]。

利用调整法结合Lev enberg -Marquardt 法进行前述网络的训练,得到的网络输出结果如图3所示。

由图可见,网络的响应很接近原正弦信号。

因此,可以用该方法训练更大的网络亦不会产生过拟合,消除了设计网络时对结构的猜测性。

利用调整法时,往往将网络设置为足够大,因为网络太小时无法进行训练。

具体可根据式(1),令l =10或更大。

2.2 提前停止法将训练样本分为3个子集,第1个子集做为训练子集,用来计算梯度和网络的权值及偏置值。

第2个子集称为确认子集,在训练过程中它用来检验网络误差(称之为确认误差)。

在训练的初始阶段,确认误差将减小,但当网络开始出现过拟合时,确认误差将会上升,当确认误差在一定次数的迭代过程中均上升时,网络停止训练,此时可以得到在确认误差最小时网络的权值和偏置值。

第3个子集是测试子集,用于比较不同子集划分时网络的适应性。

如果测试子集产生的误差达到最小时的迭代次数与确认子集相差很大,则表明子集的划分是不合适的,需要重新进行划分。

这种方法称为提前停止法,所谓提前,是指在到达误差目标之前可能会结束训练过程。

提前停止法可以应用于任何算法,只需要在训练过程中用确认子集检验网络误差。

用该方法对前述网络进行训练,得到如图4所示的结果。

从网络的响应可以看出,网络没有出现过拟合现象,但其输出不如调整法平滑,这是提前停止法的缺点。

图3 调整法训练结果 图4 提前停止法训练结果2.3 隐层节点自生成法神经网络中研究最多的是含有一个隐含层的网络,因为三层的前馈神经网络能逼近任意的连续函数[1]。

神经网络的输入层、输出层和神经元个数可以根据研究对象的输入、输出信息来确定,如何适宜地选取隐含层神经元的数目是难点,前述的2种方法能消除过拟合现象,但却不能选择最合适的隐层神经元数目,无法获得最佳的网络结构。

隐层节点自生成法就旨在获得一个鲁棒性好,抗噪声能力强,又不会产生过拟合的网络。

现在,该方法在一些特定网络(如径向基网络)上得到了应用[6,7]。

这里讨论的隐层节点自生成法使这种自生成策略得到了推广。

262振 动、测 试 与 诊 断 第22卷对于BP 算法及其改进算法而言,在网络的训练过程中,是以是否达到误差目标作为是否停止训练的条件。

对于太小的网络,是难于达到误差目标的;而网络太大,又会出现过拟合现象。

因此,初步设计思想为:先设计一个仅含有一个隐层节点的网络,在训练过程中,根据误差目标及其下降的速率来确定是否增加一个隐层节点,直到网络的训练达到误差目标。

但是,仅仅按初步的设计思想仍然会产生过拟合现象,例如当误差目标太小时,网络就可能产生过拟合。

因此,这种方法的实现可以结合提前停止法的思想,即也需要进行训练样本的划分,但无需测试子集。

可以使用间隔划分法将训练样本划分为训练子集和验证子集,即以奇序列号样本做为训练子集,偶序列号样本做为验证子集。

训练子集用来计算梯度和网络的权值和偏置值;验证子集用来在训练过程中检验网络误差(称之为验证误差)。

在每增加一个隐层节点进行网络训练时,均可以得到验证误差的最小值(验证误差由减小变为增加),当该最小值在增加节点后不减反增时,停止网络训练,返回网络结构及其权值和偏置值。

因此,利用隐层节点自生成法设计网络的思想可更正为:先设计一个仅含有一个隐层节点的网络;在训练过程中,根据误差下降的速率和验证误差的变化来确定是否增加一个隐层节点,即当误差下降的速率低于阈值,并且验证误差已经到达最小值时,增加一个隐层节点;当验证误差的最小值在增加节点后变大,或者网络训练达到误差目标时,停止网络训练。

以含有一个隐层的网络结构为例,隐层节点自生成法的具体实现算法可以结合BP 算法或者其改进算法来进行,其一般步骤如下:(1)设定误差目标 和误差下降率阈值 ;(2)初始化网络结构,隐层节点数n =1,初始化网络权值和偏置值(为小的随机数[1]),计算误差准则函数E ;(3)利用训练子集进行网络学习,调整网络权值和偏置值;(4)计算误差准则函数E 和误差下降率 E /E ,同时利用验证子集进行验证误差E v 的计算,如果E < ,则到第(8)步,否则到第(5)步; 图5 隐层节点自生成法训练结果(5)如果 E /E < ,则到第(6)步,否则到第(3)步;(6)如果验证误差E v 未达到最小值,则到第(3)步;如果验证误差E v 达到最小值且比增加节点前更大,则到第(8)步,否则到第(7)步;(7)生成新的隐节点n +1,并为其设置权值和偏置值,转到第(3)步;(8)学习结束,返回学习结果。

图5为隐层节点自生成法(结合Levenber g -M ar quar dt 法)设计的网络及其训练结果,该网络的隐层节点为5。

其训练结果比较接近利用调整法对网络进行训练的结果。

值得注意的是,隐层节点自生成法的迭代次数一般较前两种方法更多,这是该方法的不足之处,但它是一种获得最佳网络结构的方法。

在第(2)步中对隐层节点数n 的初始值可以根据具体情况设置为稍大的数,这样可以减少迭代次数,从而加快学习速度。

实际上,隐层节点自生成法也可以结合调整法进行,此时误差准则函数与调整法一致,根据初步设计思想进行网络调整和训练即可。

263第4期 李俭川等:神经网络学习算法的过拟合问题及解决方法 264振 动、测 试 与 诊 断 第22卷3 应用实例在对某汽轮机减速箱轴承运行状态进行监控时,获取了47组状态样本。

相关主题