人工智能与神经网络-前向网络(3)课件_第1页
人工智能与神经网络-前向网络(3)课件_第2页
人工智能与神经网络-前向网络(3)课件_第3页
人工智能与神经网络-前向网络(3)课件_第4页
人工智能与神经网络-前向网络(3)课件_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

前馈网络

2.5.5BP算法的问题1.BP算法的问题BP模型具有良好的逼近与学习特性,实现简单,因此得到广泛重视,并迅速走向应用.但BP算法在应用中依然存在不少问题,如:学习参数的选取初始权值的选取;学习速率的选取;期望误差的选取.2.5.5BP算法的问题结构设计网络的层数;隐含层的神经元数;

数据标准化收敛性问题欠拟合与过拟合问题2.5.5BP算法的问题A.学习参数的选取A1.

初始权值的选取BP算法决定了误差函数一般存在(很)多个局部极小点,不同的网络初始权值直接决定了BP算法收敛于哪个局部极小点或是全局极小点。因此网络权值的初始化决定了训练从误差曲面的哪一点开始,很重要。2.5.5BP算法的问题神经元的激活函数多是关于零点对称的函数,为了加快训练速度和防止网络瘫痪,初始权值应选择在使各节点的初始净输入落在函数的零点附近。一般取初始权值在(-1,1)之间或更小范围的随机数.2.5.5BP算法的问题A2.学习速率学习速率决定每一次循环训练中所产生的权值变化量.大的学习速率可能导致系统的不稳定;但小的学习速率导致较长的训练时间,可能收敛很慢;一般情况下倾向于选取较小的学习速率以保证系统的稳定性;学习速率的选取范围在0.01~0.8之间.2.5.5BP算法的问题对于较复杂的网络,在误差曲面的不同部位可能需要不同的学习速率.为了减少寻找学习速率的训练次数以及训练时间,比较合适的方法是采用变化的自适应学习速率,使网络的训练在不同的阶段设置不同大小的学习速率.对已知如下二阶偏导则由非线性数值优化牛顿法的思想,有BP算法的学习速率一般应满足:<opt2.5.5BP算法的问题A3.期望误差的选取在设计网络的训练过程中,期望误差值也应当通过对比训练后确定一个合适的值,这个所谓的“合适”,是相对于所需要的隐含层的节点数来确定的。一般情况下,作为对比,可以同时对两个不同期望误差值的网络进行训练,最后通过综合因素的考虑来确定采用其中一个网络.2.5.5BP算法的问题

B.结构设计BP网络的训练就是通过应用误差反传原理不断调整网络权值使网络模型输出值与已知的训练样本输出值之间的误差平方和达到最小或小于某一阈值。虽然理论上早已经证明:具有1个隐层(采用S转换函数)的BP网络可实现对任意函数的任意逼近。但遗憾的是,迄今为止还没有构造性结论,即在给定有限个(训练)样本的情况下,如何设计一个合理的BP网络模型并通过向所给的有限个样本的学习(训练)来满意地逼近样本所蕴含的规律的问题,目前在很大程度上还需要依靠设计者的经验。因此,通过训练样本的学习(训练)建立合理的BP神经网络模型的过程,在国外被称为“艺术创造的过程”,是一个复杂而又十分烦琐和困难的过程。

2.5.5BP算法的问题B1.网络的层数增加层数可以进一步的降低误差,提高精度,但同时也使网络复杂化.另外不能用仅具有非线性激活函数的单层网络来解决问题.因为对于只能用非线性函数解决的问题,单层精度又不够高,也只有增加层才能达到期望的结果.

一般认为,增加隐层数可以降低网络误差,提高精度,但也使网络复杂化,从而增加了网络的训练时间和出现“过拟合”的倾向。Hornik等早已证明:若输入层和输出层采用线性转换函数,隐层采用Sigmoid转换函数,则含一个隐层的NN模型能够以任意精度逼近任何有理函数。显然,这是一个存在性结论。在设计BP网络时可参考这一点,应优先考虑3层BP网络(即有1个隐层)。一般地,靠增加隐层节点数来获得较低的误差,其训练效果要比增加隐层数更容易实现。2.5.5BP算法的问题2.5.5BP算法的问题B2.隐含层神经元数网络训练精度的提高,可以通过采用一个隐含层,而增加其神经元数的方法来获得,这在结构实现上,要比增加更多的隐含层要简单的多.为了对隐含层神经元数在网络设计时所起的的作用有一个比较深入的理解,下面先给出一个有代表性的实例,然后从中得出几点结论.例用3层BP网络实现“异或”功能.网络要实现如下的输入/输出功能:2.5.5BP算法的问题对于一个二元输入网络来说,神经元数即为分割线数.所以隐含层神经元数应

2.在此例中,隐含层中神经元数为多少时最佳?我们针对sl=2,3,4,5,6以及为20、25和30时对网络进行设计.选择误差目标为err_goal=0.02,并通过对网络训练时所需的循环次数和训练时间的情况来观察网络求解效果.整个网络的训练结果如表1所示.

2.5.5BP算法的问题表1隐含层神经元数时的网络训练结果Sl时间(秒)循环次数25.7111834.409044.398854.458564.6285203.5768254.0672305.11962.5.5BP算法的问题我们评价一个网络设计的好坏,首先是它的精度,再一个就是训练时间.从表1可以看出下面几种情况:神经元数太少,网络不能很好的学习,需要训练的次数也多,训练精度也不高;一般而言,网络隐含层神经元的个数sl越多,功能越大,但当神经元数太多,会产生其它的问题.当sl=3,4,5时,其输出精度都相仿,而sl=3时的训练次数最多.一般的讲,网络sl的选择原则是:在能够解决问题的前提下,再加上一个到两个神经元以加快误差的下降速度即可.在BP网络中,隐层节点数的选择非常重要,它不仅对建立的神经网络模型的性能影响很大,而且是训练时出现“过拟合”的直接原因,但是目前理论上还没有一种科学的和普遍的确定方法。目前多数文献中提出的确定隐层节点数的计算公式都是针对训练样本任意多的情况,而且多数是针对最不利的情况,一般工程实践中很难满足,不宜采用。事实上,各种计算公式得到的隐层节点数有时相差几倍甚至上百倍。为尽可能避免训练时出现“过拟合”现象,保证足够高的网络性能和泛化能力,确定隐层节点数的最基本原则是:在满足精度要求的前提下取尽可能紧凑的结构,即取尽可能少的隐层节点数。研究表明,隐层节点数不仅与输入/输出层的节点数有关,更与需解决的问题的复杂程度和转换函数的类型以及样本数据的特性等因素有关。2.5.5BP算法的问题2.5.5BP算法的问题总之,若隐层节点数太少,网络可能根本不能训练或网络性能很差;若隐层节点数太多,虽然可使网络的系统误差减小,但一方面使网络训练时间延长,另一方面,训练容易陷入局部极小点而得不到最优点,也是训练时出现“过拟合”的内在原因。2.5.5BP算法的问题C.数据标准化问题对样本数据,尤其是函数逼近类问题,存在数据标准化,即数据规范化问题。2.5.5BP算法的问题D.收敛性与局部极小值问题对于多层网络,误差曲面可能存在平坦区域或含有多个不同的局部极小值(多峰函数)。平坦区域在这个区域中,误差的梯度变化很小,误差下降缓慢。BP算法是严格遵循误差梯度下降的原则调整权值的,训练进入平坦区后,尽管d–y仍然很大,权值的调整量仍是很小,尽管计算调整的方向正确,也必需以增加迭代次数为代价,才可能退出平坦区而进入某个谷点。2.5.5BP算法的问题存在多个局部极小点在高维权空间中,误差曲面如同连绵起伏的山脉,存在许多极小点。多数极小点是局部的极小,即使全局极小往往也不是唯一的。2.5.5BP算法的问题对于多峰函数,梯度下降可能陷入局部极小值中的任何一个.对于多层网络,BP算法仅能保证收敛到误差E的某个局部极小值,不一定收敛到全局最小误差;尽管缺乏对收敛到全局最小误差的保证,BP算法在实践中仍是非常有效的函数逼近算法.用来缓解局部极小值问题的启发式规则为梯度更新法则加一个冲量,可以带动梯度下降过程,冲过狭窄的局部极小值.2.5.5BP算法的问题使用同样的数据训练多个网络,但用不同的随机权值初始化每个网络.如果不同的训练产生不同的局部极小值,那么对分离的验证集合性能最好的那个网络将被选中,或者保留所有的网络,输出是所有网络输出的平均值.2.5.5BP算法的问题E.欠拟合(Underfitting)与过拟合(Over-fitting)所谓欠拟合问题2.5.5BP算法的问题所谓过拟合问题2.5.5BP算法的问题欠拟合得到的拟合曲线对噪声、误差的敏感性小,但对学习样本的拟合误差大。过拟合得到的拟合曲线对噪声、误差的敏感性大,但对学习样本的拟合误差小。在学习训练中,产生过拟合现象比较普遍,也带来较大的危害。2.5.5BP算法的问题下面的多项式函数拟合例子清楚地说明,模型过于复杂、训练过度带来的过拟合现象。被拟合函数与样本数据得到的不同阶的多项式拟合函数2.5.5BP算法的问题得到的不同阶的多项式拟合函数各阶多项式拟合函数的拟合误差的均方差2.5.5BP算法的问题Degree1Degree5Degree10Degree152.5.5BP算法的问题究其原因,产生过拟合是因为:由于对样本数据,可能存在隐单元的表示不唯一,即产生的分类的决策面不唯一.随着学习的进行,BP算法使权值可能收敛过于复杂的决策面,并至极致.权值学习迭代次数足够多(Overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征.2.5.5BP算法的问题过度拟合解决方法权值衰减它在每次迭代过程中以某个小因子降低每个权值,这等效于修改E的定义,加入一个与网络权值的总量相应的惩罚项,此方法的动机是保持权值较小,从而使学习过程向着复杂决策面的反方向偏。适当的stoppingcriterion2.5.5BP算法的问题修改误差函数.修改误差函数的定义也是防止过拟合的有效办法.顺便指出,过拟合问题在其它NN模型中也依然存在.2.5.6BP算法的改进1.BP算法的改进BP模型虽然具有良好的逼近与学习特性,但也存在如下问题:需要较长的训练时间这主要是由于学习速率太小所造成的.可采用变化的学习速率或自适应的学习速率来加以改进.完全不能训练这主要表现在网络的麻痹上.通常为了避免这种情况的产生,一是选取较小的初始权值,二是采用较小的学习速率.2.5.6BP算法的改进局部最小值采用多层网络或较多的神经元,有可能得到更好的结果.针对上述的BP算法的限制与不足,许多研究者对BP算法进行了改进.BP算法改进的主要目标是为了加快训练速度;避免陷入局部极小值;加强鲁棒性,避免过拟合和;改善其它能力.2.5.6BP算法的改进下面只讨论前两种性能的改进方法的有关内容.带动量因子算法;自适应学习速率;高阶收敛方法;与其它方法交互使用;作用函数后缩法;改变性能指标函数;……2.5.6BP算法的改进A.带动量因子算法该方法是在BP算法的基础上在每一个权值的变化上加上一项正比于前次权值变化的值,并根据BP算法来产生新的权值变化.带有附加动量因子的权值调节公式为:其中为学习速率,即步长,=0.1~0.4左右;

为权系数修正常数,取0.7~0.9左右.2.5.6BP算法的改进附加动量法的实质是将最后一次权值变化的影响,通过一个动量因子来传递.以此方式,当增加动量项后,促使权值的调节向着误差曲面底部的平均方向变化,当网络权值进入误差曲面底部的平坦区时,

i将变得很小,于是从而防止了的出现,有助于使网络从误差曲面的局部极小值中跳出.2.5.6BP算法的改进B.自适应学习速率对于一个特定的问题,要选择适当的学习速率并不是一件容易的事情.对训练开始初期功效很好地学习速率,不见得对后来的训练合适.为了解决值一问题,人们自然会想到在训练过程中自动调整学习速率.下面给出一个自适应学习速率的调整公式:或者初期选择学习速率大一些,接近收敛的后期学习速率减小.其中初始学习速率(0)的选取范围可以有很大的随意性.2.5.6BP算法的改进学习速率的局部调整法基于如下的几个直观的推断:目标函数中的每一个网络可调参数有独立的学习速率;每一步迭代中,每个学习速率参数都可能改变;在连续几次迭代中,若目标函数对某个权导数的符号相同,则这个权的学习速率要增加;在连续几次迭代中,若目标函数对某个权导数的符号相反,则这个权的学习速率要减小.2.5.6BP算法的改进C.高阶收敛方法BP算法采用目标函数的一阶负梯度方向来训练网络,从数值优化的角度来说,这类数值算法为一阶收敛(线性收敛)的.当进行高维输入模式的数据分类和识别时,需要引入大量隐层节点,影响BP训练时间。若对进行网络训练的一阶负梯度方向进行修正,则可以取得高于一阶收敛的快速收敛算法.如,牛顿法共轭梯度法等.这类方法的困难性在于如何构造计算简便的对负梯度方向进行修正的方向矩阵.2.5.6BP算法的改进D.与其它方法交互使用BP算法存在收敛慢、易落于局部极值点。为提高BP算法的收敛速度,提高算法的全局收敛性,可以将其与其他算法交互使用。如SimulatedAnnealingGeneticAlgorithms/EvolutionaryStrategies第三章反馈神经网络联想特性是ANN的一个重要特性。前面介绍的网络模型属于前向NN,从学习的角度看,具有较强的学习能力,结构简单,易于编程。从系统角度看,属于静态的非线性映射,通过简单的非线性处理单元的复合映射可获得复杂的非线性处理能力。但他们因此缺乏反馈,所以并不是强有力的动力学系统。联想特性是ANN的一个重要特性,主要包括联想映射和联想记忆。前馈网络具有诱人的联想映射能力,而不具备联想记忆能力。在反馈NN中,我们将着重介绍NN的联想记忆能力。反馈网络(Recu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论