神经网络学习算法的过拟合问题及解决方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
神经网络学习算法的过拟合问题及解决方法
李俭川 秦国军 温熙森 胡茑庆
(国防科技大学机电工程与自动化学院 长沙,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.4
D 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卷