前馈神经网络介绍02

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

激活函数通常用于多层感知器的连续可导非线性激活函数的一个例子是Sigmoid非线性函数;有两种形式:1.logistic函数.如下定义这里vj(n)是神经元j的诱导局部域。根据这种非线性,输出的范围是0≤yj≤1。对方程(4.30)取微分,我们得到且yj(n)=j(vj(n))。式(4.31)可以如下表示因为神经元j位于输出层,所以yj(n)=oj(n)。因此可以将神经元j的局域梯度表示为这里的oj(n)是神经元j输出端的函数信号,而dj(n)是它的期望反应。对任意的一个隐层神经元,局域梯度表示为(4.30))(,0))(exp(11))((nvanavnvjjjj(4.31)))](exp(1[))(exp())(('2navnavanvjjjj(4.32))](1)[())(('nynaynvjjjj)](1)[()]()([(4.33)))((')()(nononondanvnenjjjjjjjjkkjkjjkkjkjjjnwnnynaynwnnvn)()()](1)[((4.34))()())((')(2.双曲正切函数,表示为这里a和b是常数。它对vj(n)的导数如下如果神经元j位于输出层,它的局域梯度是如果神经元j位于隐层,则学习率我们使用的学习率参数η越小,网络中一次迭代的突触权值的变化量就越小,权空间的轨道就越光滑。另一方面,如果我们让η的值太大以加快学习率的话,结果就有可能使网络的突触权值的变化量不稳定。一个既要加快学习率又要保持稳定的简单模型要包括动量项,如下这里α是动量常数,通常是正数。解这个关于Δwji(n)的方程我们得到:(4.35)0),()),(tanh())((banbvanvjjj)]()][([(4.36))))((tanh1())((sec))(('22nyanyaabnbvabnbvhabnvjjjjkj(4.37))]()][()][()([))((')()(noanoanondabnvnenjjjjjjjj(4.38))()()]()][([)()())((')(kkjkjjkkjkjjjnwnnyanyaabnwnnvn(4.39))()()1()(nynnwnwijjiji我们可知δj(n)等于因此我们将方程(4.40)重写为在这个关系的基础上,做以下的观察:1.校正值Δwji(n)代表指数加权的时间序列的和。欲使时间序列收敛,所以动量常数必须限制在这个范围内:0≤︱α︱<1。当α等于0时,反向传播算法没有动量。虽然在实际中动量常数α不可能是负的,但它还是可正可负。2.当偏导数在连续迭代中有相同的代数符号,指数加权和Δwji(n)数量增加,所以,权值wji(n)被大幅度调整。3.当偏导数在连续迭代中有相反的代数符号,指数加权和Δwji(n)减少,所以,权值wji(n)调整不大。动量项对于使学习过程不停止在误差曲面上一个浅层的局限最小化也有益处。(4.40))()()(0tytnwijnttnji)(/)(nwnEji(4.41))()()(0twtEnwjinttnji)(/)(twtEji)(/)(twtEji在导出反向传播算法时假设学习率参数η是一个常数。然而,事实上它应该被定义为ηji;也就是说,学习率参数应该是基于连接权值的。在网络的不同地方使用不同的学习率参数。在反向传播算法的中假设了所有的突触权值都是可调整的,或者在适应过程中我们限制网络中某些权值保持固定。对于后者,误差信号是以通常的方式通过网络反向传播的;固定的突触权值可以通过使突触权值的学习率参数ηji等于0来做到。训练的串行和集中方式对于一个给定的训练集,反向传播学习可能会以下面两种基本方式中的一种进行:1.串行方式。正是目前反向传播算法公式所引用的方式。2.集中方式。权值更新要在所有样本出现后才进行。代价函数定义为:误差ej(n)等于dj(n)和yj(n)的差,它们分别表示期望响应向量d(n)的第j个分量和网络输出的相应的值。(4.42))(2112NnCjjavneNE对于学习率参数η,应用于从i连接到j的wji的校正值由delta法则定义:要计算偏导数根据式(4.43),在集中方式,权值的校正值Δwji(n)是在整个训练集提交训练以后才决定。从在线运行的观点来看,训练的串行方式比集中方式要好,1.需有更少的局部存储。2.具有随机性。这使得达到局部最小可能性降低。同样地,串行方式的随机性质使得要得到算法收敛的理论条件变得困难了。1.集中方式的使用为梯度向量提供了一个精确的估计;收敛到局部最小只要简单的条件就可以保证。2.集中方式的组合比连续模式更容易保证并行。(4.43))()(1NnjijjjiavjiwneneNwEwjijwne/)(总的来说,串行方式能够如此流行(特别对解决模式分类问题)有两个重要的原因:·算法的实施很简单。·它为大型而困难的问题提供了有效的解决方法。停止准则通常,反向传播算法不能证明收敛,并且没有定义得很好的准则来停止它的运行。我们可以将反向传播学习的一个合理的收敛准则公式化:1.当梯度向量的欧几里得模达到一个充分小的梯度阈值时,认为反向传播算法已经收敛。收敛准则的缺点是,学习时间可能会很长。这也需要梯度向量g(w)的计算。2.当整个样本的均方误差的变化的绝对速率足够小时,认为反向传播算法已经收敛。3.一个有用的且有理论支持的收敛准则。在每一个学习迭代之后,都要检查网络的泛化性能。当泛化性能是适当的,或泛化性能有明显的最大值时,学习过程被终止。4.4反向传播算法的总结权值的串行更新的运行方式中,算法通过训练样本{(x(n),d(n))}Nn=1进行如下循环:1.初始化.假设没有先验知识可用,选择一个均值等于0的均匀分布,它的标准差的平方使神经元的诱导局部域的标准导数位于S型激活函数的线形部分与饱和部分转折处,我们以这个分布随机挑选突触权值和阈值。2.训练样本的呈现.在训练集中每个样本以某种形式顺序呈现给网络依次进行在下面的第三点和第四点中所描述的前向和后向计算.前向计算.设一个训练样本是(x(n),d(n)),有一个输入向量x(n)指向输入层的感知节点和一个期望响应向量)(nyli=))((nvjj如果神经元j是在第一隐层(l=1),置yj(0)(n)=xj(n)如果神经元j在输出层,令yj(0)(n)=oj(n)计算误差信号ej(n)=dj(n)-oj(n)(4.45)(4.44))()()()1(0)()(0nynwnvlimiljilj这里dj(n)是激励向量d(n)的第j个向量。3.反向计算。计算网络的δ(局域梯度)。定义如下这里)(j是指关于自变量的导数。根据广义的delta法则调节网络l层的突触权值:wji(l)(n+1)=wji(l)(n)+α[wji(l)(n-1)]+ηδj(l)(n)yi(l-1)(n)(4.47)这儿η为学习率参数和α为动量常数4.迭代。呈现新的样本给网络,根据第三点和第四点进行前向和后向迭代计算,直到满足停止准则。注意:训练样本的呈现顺序从一次到另外一次必须是随机抽取的。动量和学习率参数随着迭代次数的增加而调整(通常是减少的)。4.6改善反向传播算法性能的试探法反向传播算法的神经网络的设计与其说是科学,不如说更象一门艺术.但是,也有些方法能对反向传播算法有重大提高,可描述如下:1.串行更新而不是集中方式更新。特别是当训练数据组很klkjlkljjLjjLjljllayerhiddeninjneuronfornwnnvLlayeroutputinjneuronfornvnen(4.46))()())(('))((')()()1()1()()()()(大且高度冗余时,这是正确的。(高度冗余的数据对集中方式更新所需要的Jaccobi矩阵的估计提出了计算上的问题。)2.最大信息内容。作为一个基本的准则,每一个训练样本的挑选都必须在其信息内容为所解决问题的最大可能的基础上(LeCun,1993)。达到这个目标有两种方法:使用训练误差最大的例子。使用的例子要与以前使用的有根本的区别。1.输入例子的顺序随机化。2.使用强调图表。然而,在使用强调图表时有两个问题需要仔细注意:一个回合中呈现给网络的样本分布是扭曲的。边缘或是错误标记例子的出现对于算法的性能会有一个灾难性的后果;学习这样的边缘数据可以在输入空间的更多可能的区域损害网络的泛化能力。3.激活函数。一般来说,当网络的神经元模型嵌入的S型激活函数是反对称而不是非对称时,一个用反向传播算法训练的多层感知器会学得快一些;详细内容请看4.11节。当一个激活函数(v)满足条件(-v)=-(v),我们说它是反对称的(即关于它的自变量为奇函数)。关于反对称函数的一个非常普遍的例子是一个双曲线切线形式的S型弯曲非线性,即:(v)=atanh(bv)a,b是常数。一般a,b的值是(LeCun,1989,1993):a=1.7159b=2/3这样定义的双曲正切函数有如下有用的性质:(1)=1和(-1)=-1在原点激活函数的倾斜度接近于单位1,如下所示:(0)=ab=1.7159×2/3=1.1424(v)的二阶导数在v=1时达到最大。4.目标值.在S型激活函数的范围内选择目标值(期望响应)是很重要的。具体地,多层感知器的输出层的神经元j的期望响应dj必须被与S型激活函数的极限值差得某个ε值。否则反向传播算法会使网络的参数趋向于无穷大,驱使隐藏神经元达到饱和从而减慢学习过程。具体地,考虑图4.10a所示的反对称激活函数。对于极限值+a,我们令dj=a-ε对于有限值-a,我们令dj=-a+ε这里ε是一个合适的正常数。对前面选择的a=1.7159,这里我们可以令ε=0.7159,这样,目标值可以方便选为±1,见图4.10a。5.输入标准化。要加速反向传播学习的过程,输入变量的标准化必须包括下面两个步骤:训练集包含的输入变量应该不相关的;这可以通过第8章提到的主分量分析法来做到。去相关后的输入变量应调整其长度使得它们的协方差大概相等,因此可以保证网络中的不同突触权值以大约相等的速度进行学习。图4.11描述了标准化的三个步骤的结果:消除均值,去掉相关性以及协方差均匀化。消除均值原始数据点集去相关性协方差均匀化图4.11二维输入空间的消除平均值、去掉相关性以及协方差均匀化运算的图例6.初始化。网络的突触权值和阈值的一个较好的选择对一个成功的网络设计会有巨大的帮助。关键问题是:什么是好的选择?当突触权值被赋予一个较大的初始值,那么网络的神经元很有可能会趋于饱和。如果发生这种情况,反向传播算法中的局域梯度呈现出一个很小的值,结果导致反向传播学习过程很缓慢。然而,如果突触权值被赋予一个较小的阈值,反向传播算法可能就在误差曲面的原点的一个非常平缓的区域内进行;特别对于反对称函数(如双曲正切函数)的条件下,这种可能性就更大。不幸地是,这个原点是一个鞍点,这个鞍点是一个不动点,在该点处与马鞍正交的误差曲面的曲率为正,而沿着马鞍方向为负。由于这些原因,突触权值的初始化过大或过小都应该避免。初始化应该避免过于极端。恰当的初始化选择位于这两种极端之间。具体地,考虑将一个双曲正切函数作为激活函数的多层感知器。设网络的每一个神经元偏置为0。我们将神经元j的诱导局部域表示为假设网络的每一个神经元的输入的均值为0方差为1,表示如下μy=E[yi]=0对所有神经元i和2y=E[(yi-μi)2]=E[yi2]=1对所有神经元i进一步,假设输入值都是不相关的,即miijijywv1ikikyyEki01][并且设突触权值的值是以期望为0的均匀分布抽取的一组数μw=E[wji]对所有(i,j)对和方差σw2=E[(wji-μw

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功