《2022年神经网络-BP网络实用 .pdf》由会员分享,可在线阅读,更多相关《2022年神经网络-BP网络实用 .pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、11 第一章前传网络 .12 1.1 线性感知器 .12 1.1.1概述 .12 1.1.2线性感知器 .13 1.2 BP网络 .17 1.3 BP 网络的应用 .23 1.3.1 手写 ZIP 码识别 .23 1.3.2 图像压缩 .24 1.3.3 股票预测 .25 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 15 页 -12 第一章前传网络1.1 线性感知器1.1.1概述图 1.1 给出了一个简单的单层前传网络(神经元)的示意图。它也是许多更复杂的神经网络的基本构件之一。神经元对外界传入的N个信号经权值向量W处理后,用线性求和器得到“综合印象”,再由活化函数)(g对此
2、综合印象作出非线性反应。这种反应机制是对真正的生物神经元反应机制的一种简单而又常常有效的模拟。将大量简单神经元按某种方式连接起来,并通过某种学习过程确定单元之间的连接强度(权值W),就得到各种人工神经网络,用来完成逼近、分类、预测、控制和模拟等各种任务。图 1.1神经元模型设 给 定J 个 输 入 样 本 模 式Jjj1,其 中NTjNjjR),(1,以 及 理 想 输 出11ROJjj。另外,给定一个非线性函数11:)(RRxg。单层前传网络(神经元)的学习过程就是利用样本模式,通过某种学习算法来选择权向量NTNRWWW),(1和阈值1R,使得),()(1NnjnnjjjWgWgOJj,1(
3、1.1.1)其中j为网络的实际输出。然后,我们就可以向网络输入NR中其它模式向量,得到相应输出,这就是神经网络的工作过程。(1.1.1)中的函数)(xg称为活化函数,常见的有符号函数及其逼近、S型函数(Sigmoid 函数)、径向基函数、随机值函数等等。网络的输出值j及理想输出jO可以只取有限个离散值(例如双极值 1 或二进制 0,1),这时网络相当于一个分类器;也可以取连续值,这时网络相当于输入与输出O之间函数关系的一种数值逼近器。当存在W和使(1.1.1)成立时,我们说该问题是可解的,或样本模式Jjj1是可分的。否则,称为不可解的,或不可分的;这时只能选取W和使得误差jjO尽可能地小。名师
4、资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 15 页 -13 1.1.2线性感知器注 1.1令TNWWW),(1,TjNjj)1,(1,将W和一起作为新的权值W来进行选择,于是(1.1.1)中j的定义可以更紧凑地写成jjWg(1.1.2)下面,我们在(1.1.1)中取)(xg为如下符号函数0,10,1)sgn(xxx(1.1.3)且理想输出jO取值亦为1。(也可以考虑符号函数的取值为0,1。一般地说,取值为 0,1 时电路实现方便,而取1时数学处理比较简单。)对输入样本模式j,网络实际输出为jjWsgn(1.1.4)此时,式(1.1.4)所表示的神经网络称为线性感知器。图 1.2
5、符号函数(函数值为 0,1或1,-1)注 1.2 (1.1.4)中主要的运算为便于并行处理的向量乘法。另一方面,除了在原点附近,符号函数(以及后面将要用到的符号函数的各种逼近)对于自变量的变化并不敏感,即容错性好。事实上,各种神经网络用到的主要运算就是向量乘法,并且广泛采用符号函数及其各种逼近。典型的神经网络都可以用电路、光路等硬件来实现(参见Murray 1997 戴葵 1998);这时不论N多大,(1.1.4)中的向量乘法所需的时间基本不变(参看图1.1),使得便于并行处理的特点更加突出。并行、容错、可以硬件实现以及后面将要讨论的自我学习特性,是神经网络的几个基本优点,也是神经网络计算方法
6、与传统计算方法的重要区别。当然神经网络也可以用计算机模拟实现,尤其对于只需进行一次的学习过程,这时并行的优点就不突出了。以2N为例。线性感知器的目标就是求法向量W和阈值,使得与W垂直的直线(一般地是1N维超平面)W将样本模式Jjj1分成jW和jW(即1j和1j)两类,分别位于W的两侧(见图 1.3)。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 15 页 -14 图 1.3用线性感知器分类图 1.4 给出另一种等价的几何解释。定义jjjOx(参见注 1.1),则线性感知器的目标成为:选取1NRW使JjxWj,10(1.1.5)如图 1.4,设1l,2l张成包含Jjjx1的最小扇
7、形域,是其张开的角度。于是,角度差刻画了Jjjx1(从而Jjj1)的可分性。若0,则不可分;若0,则可分(对线性感知器,常称为 线性可分)。并且越大,可分性越好(即W的允许范围越大)。图 1.4j的可分性注:点是满足0jw的那些样本点经过变换jjx得到的。容易证明,若Jjj1线性无关,则一定是线性可分的。在图1.5 和 1.6 中给出线性不可分的两个典型例子,其中图 1.5 所描绘的即为著名的XOR 问题。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 15 页 -15 图 1.5 XOR 问题图 1.6321,线性不可分权向量W是通过学习得到的。下面给出所谓感知器学习规则。为简
8、便起见,在本章其余地方,我们总假设0(参见注 1.1)。输入一个样本向量j,得到网络的当前实际输出j,然后按下式修改当前权向量oldW:WWWoldnew(1.1.6)jjjOW)(21 (1.1.7)其中常数0是学习速率。如果还希望样本模式j别太靠近划分超平面0|xWx,则可以选定常数0d,要求(jjjOx)dxWj(1.1.8)其中,jjjOx。这里,注意在W和jx长度固定的前提下,d越大则jx离划分超平面0|xWx越远。因此,常数d可以理解为jx向量与超平面0|xWx的距离。这时,(1.1.7)可换成jjxxWdW(1.1.9)这里)(t是符号函数:0,00,1ttt注 1.3 近年来引
9、起广泛注意的支持向量机神经网络的基本想法是,对给定的训练集,设法求得d(可以是负数)的最大值Md,并且求得使MjdxW的那些训练样本(支持向量)。这样,就得到最优的划分平面,并且确定了对样本划分最为重要的那些支持向量。参见 张学工 2000刘江华 2002。感知器学习规则为:将j按任一顺序排成一个无穷序列1)(kk,使得每一j皆在其中出现无穷多次。选定任一初始向量1W。令1k。选定非负常数d。输入k,按下式更新权值1kkkWWW(1.1.10)jjxxWdW(1.1.11)若1kW满足精度要求(例如所有或大多数训练样本都满足(1.1.8))或者迭代步数k足够大,则停止;否则k增加 1,转。名师
10、资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 15 页 -16 现在,设样本集Jjj1按(1.1.8)的意义可分,即存在NRWW和0d,使得(1.1.8)对Jj,1成立。我们下面来证明,迭代序列kW有限步收敛,即k足够大后,kW不再改变。收敛性证明*:不失一般性,为记号简便我们设10,W1W。这样,便有JjjkxkjMW1,(1.1.12)其中kjM,表示在得到kW的过程中,实际用到jx来更新权值的次数。这样,得到kW时所有实际更新的总次数是JjkkjMM1,(1.1.13)由于W满足(1.1.8)并且1W,我们有JjkJjjkkkdMdkjMWxkjMWWWWW11,(1.1.1
11、4)(1.1.14)给出了kW下界的一个估计。接着,考察kW的上界。若1kkWW(即输入向量k已经被权向量1kW正确划分),则当然有0212kkWW (1.1.15)反之,由(1.1.10)(记kkkOx,kO是k的理想输出))1(1kkkxWW (1.1.16)并且这时dxWkk)1(1 (1.1.17)因此22212(1)1(1)222kkkkkWWxWxDd (1.1.18)其中2)(1maxjJjxD。综合式(1.1.16)及式(1.1.18),并注意10W,从 0 到k求和便得kkMdDW)2(22 (1.1.19)综合kW的下界估计(1.1.14)及上界估计(1.1.19)便得kk
12、kMdDWMd)2(22222 (1.1.20)因此,kkMdDMd)2(2222。由此立得212ddDMk (1.1.21)收敛性于是得证。若样本集Jjj1不是线性可分的,则按感知器规则(1.1.10)(1.1.11)来求权值W的迭代过程不收敛。这时,可以使用基于梯度下降法的-LMS(Least Mean Square)算法。为此,对当前输入样本向量j,定义误差函数名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 15 页 -17 2)(21)(jjWOWH (1.1.22)其梯度为,jjWHDjjjWO (1.1.23)为使)(WH减小,W应朝)(WH的梯度反方向走。因此迭代公
13、式为jjoldoldnewWW (1.1.24)joldjjoldWO容易推得22(1)jjnewjjoldjjjjjnewoldoldOWOW从而,为使得newW满足joldjnew应有112j或等价地202j (1.1.25)总之我们应有2jjjoldnewWW (1.1.26)其中20 (1.1.27)此即为-LMS算法。实际应用中,常选为11.0。注 1.4迭代公式(1.1.26)是一种-学习算法。(1.1.27)是-学习算法收敛的一个典型的必要条件。注 1.5 用迭代算法来迭代确定权值W时,样本向量j可以按j=,2,1,2,1NN顺序依次输入,也可以按随机的顺序输入。本章以后各节的类
14、似问题,都可以照此办理。注 1.6 网络结构、工作流程和学习方法,是一个神经网络的三大要素。对于线性感知器来说,这三大要素分别由图1.1()sgn()(xxg)、(1.1.4)和(1.1.6)(1.1.7)(或(1.1.10)(1.1.11))给出。1.2 BP 网络BP 网络是现在应用最为广泛的神经网络。它采用光滑活化函数,具有一个或多个隐层,相邻两层之间通过权值全连接。它是前传网络,即所处理的信息逐层向前流动。而当学习权值时,却是根据理想输出与实际输出的误差,由前向后逐层修改权值(误差的向后传播,即Back Propagation)。BP网络的拓扑结构见图1.7(以带一个隐层和一个输出单元
15、的BP网络为例)。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 15 页 -18 图 1.7 BP 网络结构选 定 一 个 非 线 性 光 滑 活 化 函数11:RRg,并 按 稍 后 给 出 的 规 则 确 定 了 权 矩 阵mpMPWW和NnPppnww1,1之后,对任一输入信息向量NNR),(1,网络的实际输出为MmWgWgPppmpmm,1,)()(1 (1.2.1a)其中隐层输出为PpwgwgNnnpnpp,1,)()(1 (1.2.1b)现在,假设给定一组样本输入向量NJjjR1及相应的理想输出MJjjRO1,并记MJjjR1为相应的网络实际输出。定义误差函数JjJ
16、jMmPpNnjnpnmpjmjjwgWgOOwWE1112112)(2121),(1.2.2)权值矩阵wW和的确定(即学习过程)应使误差函数),(wWE达到极小。为此,一个简单而又常用的方法是梯度下降法。取当前权值mpW的改变量为11()()JJjjjjjjmpmmmpmpjjmpEWOg HW (1.2.3)其中0为学习速率,)()(jmjmjmjmHgO (1.2.4)而PpjpmpjmWH1 (1.2.5)是隐层单元对第 m个输出层单元的线性输入。进一步,我们可以得到当前权值pnw的改变量应为:名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 15 页 -19 Jjjnjp
17、JjMmjnjpmpjmJjMmjnjpmpjmjmjmJjpnjpjppnpnhgWhgWHgOwEwEw111111)()()()(1.2.6)其中MmmpjmpjjpNnjnpnjpWhgwh11)(1.2.7)综合以上讨论我们看到,应用BP网络时,所处理的信息(工作流程)是前向传播的(见(1.2.1)),因此称为前传网络。而在网络学习阶段,是用误差的向后(或称反向)传播来逐层修改权值(见(1.2.3)和(1.2.6)),因此称为反向传播(Back Propagation)算法。下面讨论BP网络理论与应用中的一些细节。(1)在线梯度法在迭代公式(1.2.3)(1.2.6)中,我们必须将所
18、有训练样本Jjj1全部输入到网络中,然后才能对当前的权值wW和做一小步调整。实际应用中,样本数J常常很大,上述做法看来不够经济。因此,广泛应用的是下述所谓在线梯度法:在第k步迭代修改当前权值kW和kw时,随机选取一个样本j,定义权值增量为jpjmkmpW,jnjpkpnw (1.2.8)MmNnPp,1;,1;,1现在,每输入一个训练样本向量j,我们马上修改一次当前权值。关于在线梯度法收敛性的一些讨论,可参见 Wu and Xue 2002,Wu,Feng and Li 2002。(2)局部极小问题像所有利用导数的优化方法一样,梯度法很容易陷入误差函数的局部极小。在线梯度法可以看作是梯度法的一
19、种随机扰动,有助于跳出局部极小。另外应该指出,对许多实际问题,局部极小解是可以接受的。(3)活化函数)(xg的选择)(xg通常选为符号函数的光滑逼近,即Sigmoid 型函数,例如:)2exp(11)(xxg (1.2.9)tanh()(xxg (1.2.10)其中0是适当选定的正常数。一般地,满足如下性质的函数称为Sigmoid 函数:光滑,单调递增,上、下有界(称为饱和性)。饱和值可以是0/1(例如(1.2.9),也可以是 1(例如名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 15 页 -20(1.2.10)。以上列举的两个函数还有一个特点,就是它们的导数值可以由其函数值给
20、出,分别有)()(12)(xgxgxg (1.2.11)(1)(2xgxg (1.2.12)这一性质有利于减小计算量。当然,也可以选择其他活化函数。例如,径向基函数、小波函数、样条函数等等。这些函数在某些逼近性质方面可能比Sigmoid 型函数好,但是Sigmoid 型函数的鲁棒性(robustness)更好。另外,(1.2.1)中两层的活化函数可以选成不相同的。对于分类问题,两层的活化函数通常都选成 Sigmoid 型函数。而做逼近问题时,常常将从隐层到输出层的活化函数改成单位函数()g xx。(4)初始权值的选取初始权值11,Ww 通常选取为接近于0 的随机数。太大的初值可能使系统过早地陷
21、入饱和区(例如对于 Sigmoid 函数)(xg,当 x 较大时,0)(xg),不利于进一步学习。(5)其它误差函数二次型函数(1.2.2)并非是误差函数的唯一选择。任何一个可微函数),(jjOF,只要在jjO处取最小,都可以代替2jjO,并导出相应的权值更新规则。下面的所谓“熵测度”函数就是一个有自己特点的误差函数:JjMmjmjmjmjmjmjmOOOOE1111lg)1(2111lg)1(21 (1.2.13)这里我们设(1.2.1)中)(xg的饱和值为 1。特别地,若取),tanh()(xxg则可推得,相应于(1.2.4)的公式现在成为)(jmjmjmO (1.2.14)我们注意到(1
22、.2.4)中的导数项)(jmHg现在换成了常数项。这一改变克服了权值修改公式(1.2.3)的如下缺点:当实际输出jm极端错误(例如1,1jmjmO)时,由(1.2.12),)(jmHg接近于零,从而使本来应做较大改变的当前权值W只得到极小的改变。可以用折衷的方式综合两个误差函数的优点,比如定义相应于(1.2.4)的公式为)(1.0)(jmjmjmjmOHg (1.2.15)(6)学习速率的选择在梯度下降法中,学习速率(或步长)如果太小,则收敛速度很慢;如果太大,又可能引起迭代解的剧烈振荡。因此,的选择并非易事。下面的所谓的自适应规则是常用的。在每一步(或若干步)权值迭代更新后,给当前的值一个改
23、变量:0,0,EbEa如果如果 (1.2.16)其中E是误差函数E的改变量,a和b是适当的正常数。(7)梯度下降法的改进名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 15 页 -21 梯度下降法可称之为盲人下山法。它在当前位置周围探出下降最快的方向,然后沿此方向走长度为的一步。从局部来说,这是最好的方法。但是让我们想象沿一个凸凹不平的山坡滚下的石头,它滚动到某一点时不但受到局部凸凹情况(下降方向)的制约,而且受到惯性的影响。这块滚石下山的路线似乎应该优于那位盲人的路线。据此想法,我们可以在权值改变量中加一个惯性(矩)项(参见Rumelhart 1986):)()()1(tww
24、tEtwpqpqpq (1.2.17)这里pqw表示任一权值。由(1.2.17),容易推得下列公式(0)0pqw):(1.2.18)在学习迭代过程中,设0,是正的或负的(表示误差函数随权值分量pqw的增大而增大或减小),则相应地)(nwpq减小或增加。1时(1.2.18)容易发散。0时,pqw可能产生不合理的震荡。总之,通常取为(0,1)间正常数。也可以选用牛顿法、共轭梯度法等其它更高级的优化方法(例如参见 Ampazis 2002)。(8)网络逼近能力一个典型的结果是,若)(xg是一个相当任意的非线性函数(例如 Sigmoid 函数),但不是多项式,则存在适当的隐单元个数M及权值W和 w,使
25、得神经网络(1.2.1)以任意给定精度逼近一个给定的PNRR 到的连续函数(参见 Chen 1984)。这就给多层前传网络的广泛应用提供了理论保证。(9)隐层个数由以上结果可以看出,多于一个隐层的前传网络显然不是必要的。但是对于某些问题,更多的隐层有可能导致总的单元数减少,从而得到更有效的神经网络。带更多隐层的相应的学习方法可类似于(1.2.3)(1.2.8)推得。(10)隐单元个数在前传网络的构造中,输入单元个数N和输出单元个数P通常由实际问题本身决定,而隐单元个数的选择则是有讲究的。一般来说,隐单元个数越多,对样本集的学习精度就越高(参看上面关于网络逼近能力的讨论),而推广(即将网络应用于
26、未经学习的输入向量)能力就越差。这种情形很像数值逼近理论中用多项式去逼近已知几个给定点(下图中点)的未知函数:多项式次数越高,则对给定点的逼近越好,而对未知函数曲线上其它点(下图中点)的逼近能力(即推广能力)就越差。这是因为多项式次数越高,则函数值震荡越剧烈。pqwnE)(pqnttnpqwtEnw)()1(0名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 15 页 -22 图 1.8次数适当的多项式逼近图 1.9次数过高的多项式逼近因此,在满足适当的样本学习精度的前提下,隐节点个数M应该尽可能地小。这一点对于减少网络成本也是有益的。可以先确定一个满足精度要求的较大的M,然后逐
27、步减少M直到精度不再满足要求时为止。也可以反过来,从一个较小的M出发,逐步增大M直到满足精度要求。在 Widro 1985 中,给出这方面一个理论结果如下,可供参考。设是对于样本集训练的允许精度(比如,若允许有 1/10 的训练样本给出错误输出,则10/1),是BP网络中权值的个数,J是训练样本模式的个数,则/应与J有相同的数量级)(OJ (1.2.19)(11)输入模式的表示与预处理前传网络的输入模式NNR),(1可以是某一变量的空间分布(例如股市中某日的成交量、收盘价、十日均价等等),也可以是某一“时间序列”(例如某地的每天温度、某人讲话的音素流等等)的连续N项,如何根据具体问题来确定的表
28、示是极为重要的,称为数据预处理。例如在股市分析中,若当日成交量以股数为单位作为的一个分量,则数量级太大,可能完全埋没其它分量的作用。一个简单的做法是,调整各分量的表示单位(例如成交量以千万股为单位),使其具有大致相同的数量级。名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 15 页 -23 预处理的另一个原则是通过坐标轴的平移,使输入样本各分量的平均值接近于零(除了相应于阈值的分量11N之外),即:JjjiNi1,1,0 (1.2.20)例如,若各个样本的第一个分量111,J大致均匀地分布在区间50,60,则可以做变换1155newold使得变换后1i的平均值接近于零。在 Ha
29、ykin 20012.6 中,从概率统计学的角度讨论了这样做的理由。我们在图1.10 中给出一个粗浅的几何解释。考虑1N的分类问题。设2j的取值范围为122jll,而12lll是定常数。设相应于阈值的分量11j。用平面几何知识可以证明,当,2/1ll2/2ll时,下图中的角度取最大值(注意当1l时,显然有0。),这时,分类边界0|W的可能变化角度()也取最大值,意味着W有更大的选择余地。图 1.10 输入样本向量2的取值范围还可以用 主分量分析 方法减小输入向量的维数(参见 徐秉铮 1994 第九章)。(12)理想输出考虑分类问题。这时,理想输出定义为1 和1是方便的。但是要注意,如果我们利用
30、Sigmoid函 数 作 为 活 化 函 数)(xg,则 有 可 能 在 训 练 过程 中 使 权 值 趋 于 无 穷 大,因为。为此,可以选取小正数0,将理想输出定义为1和1。1.3 BP 网络的应用1.3.1 手写 ZIP 码识别人们已将 BP网络成功地应用于手写数字邮政编码(ZIP)的识别。利用从邮件中记录下来的约一万个手写数字进行训练和实验。输入为 16 16 象素阵列,通过三个隐层前传到10 个输出单元,每个输出单元对应9,0这十个数字之一。1)(limxgx名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 15 页 -24 前两个隐层称为特征检测器。第一个隐层有12
31、组单元,每一组有64 个单元。每组中的任一单元与输入阵列的某一个5 5 方形相连。属于同一组的64 个单元具有相同的权值,因此它们检测输入区域中不同位置上的某一相同特征。采用这种权共享方式以及局部的5 5 接收区,使得待定权值数目减小为2512个,再加上阈值64 12 个,共有待定参数 1068 个。第二隐层是类似的特征检测器,由12 组、每组 16 个单元组成。同样采用55 接受区和同组单元权共享的方式。对于第二隐层中的每一组的单元,其输入取自第一隐层中12 个组中8 个组的不同组合,从而第二层每组有25 8 个共享的权以及 16 个阈值。第三隐层由 30 个与前一层单元完全连接的单元组成,
32、有192 30个权值和 30 个阈值。最后的十个输出单元与第三隐层也是全连接,有30 10 个权值和 10个阈值。整个网络共有1256 个单元,9760 个待定参数。对该网络用反向传播算法来训练,并用伪牛顿法来加速。利用7360 个手写数字训练,并用另外2000 个数字测试。训练集上误差率约为 1%,测试集上误差率约为5%。图 1.11 ZIP码识别网络1.3.2 图像压缩BP网络也可以用来作图像压缩,或称编码问题。这时,输入层和输出层都由nn个单元构成,相应于nn个像素点。每个单元取值为 1(或 0,1)之间,表示不同的像素灰度。中间隐层单元个数为 m。m/2n即为网络对图像的压缩比。在训练
33、学习阶段中,选取待传输图像的若干nn小块,既作为网络输入,也作为理想输出。训练完成后在发射端将需传输的图像分成若干nn小块,分别由中间隐层处理 (见(1.2.1b)后,将隐单元输出信号传输到接收端,名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 15 页 -25 再由输出层单元处理(见(1.2.1a)后得到接收端的图像。图 1.12用 BP网络做图像压缩1.3.3 股票预测我们曾利用 BP网络来预测上海股市指数涨跌(参见 吴微 2001,李正学 2001)。输入层有 16个单元,包括今日最高、最低及收盘指数,当日及三十日平均成交量等16 个参数。隐层为 6-8 个单元,输出层为一个单元。输出+1时表示预测第二天涨,输出1时则表示第二天跌。活化函数选为(1.2.10)(其中=0.65),并采用了惯性项(见(1.2.17)。训练时,采用 100天数据中的 80 天的数据作为训练样本,而另外20 天作为检测样本。训练样本精度达到95%左右,而检验样本精度在65-80%之间。名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 15 页 -