版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、在众多人工神经网络模型中,最为简单的就是所谓的单层前向网络,它是指拥有的计算节点(神经元)是“单层”的。本章所要介绍的单层感知器(Perceptron)和自适应线性元件(Adaptive Linear Element,Adaline)模型均属于典型单层前向网络。感知器是由美国学者Rosenblatt在1958年首次提出的作为有导师学习(也即是有监督学习)的模型。单层感知器是指包含一个突触权值可调的神经元的感知器模型,它的训练算法是Rosenblatt在1958年和1962年提出的。感知器是神经网络用来进行模式识别的一种最简单模型,但是由单个神经元组成的单层感知器只能用来实现线性可分的两类模式的
2、识别。在信号处理领域,单个神经元也用来作为自适应线性元件进行自适应滤波,Widrow和Hoff在1960年提出了易实现但效率高的自适应滤波的LMS算法(Least-Mean-Square algorithm, LMS),可称之为最小均方误差规则或梯度算法,也称规则(Delta rule)。感知器和LMS算法在历史上几乎同时提出的,并且两者在对权值的调整的算法非常相似,它们都是基于纠错学习规则的学习算法。LMS算法由于其容易实现而很快得到了广泛的应用,成为自适应滤波的标准算法。本章将首先介绍单层感知器及其学习算法,然后介绍自适应线性元件以及LMS算法,最后结合讨论的问题给出典型算法的仿真实例。2
3、.1单层感知器感知器模型是由美国学者F.Rosenblatt于1958年提出的。它与MP模型的不同之处是假定神经元的突触权值是可变的,这样就可以进行学习。感知器模型在神经网络研究中有着重要的意义和地位,因为感知器模型包含了自组织、自学习的思想。单层感知器模型单层感知器模型如图所示,它包括一个线性的累加器和一个二值阈值元件,同时还有一个外部偏差b。线性累加器的输出作为二值阈值元件的输入,这样当二值阈值元件的输入是正数,神经元就产生输出+1,反之,若其输入是负数,则产生输出-1。即: (2.1) (2.2)图2.1 单层感知器使用单层感知器的目的就是让其对外部输入x1, x2, , xm进行识别分
4、类,单层感知器可将外部输入分为两类l1和l2。当感知器的输出为+1时,我们认为输入x1, x2, , xm属于l1类,当感知器的输出为-1时,认为输入x1, x2, , xm属于l2类,从而实现两类目标的识别。在m维信号空间,单层感知器进行模式识别的判决超平面有下式决定:(2.3)在图2.2中我们给出了一种只有两个输入x1和x2的判决超平面的情况,它的判决边界是直线:。图2.2两类模式识别的判定问题决定判决边界是直线的主要参数是权值向量w1和w2,通过合适的学习算法可训练出满意的w1和w2。2.1.2单层感知器的学习算法单层感知器对权值向量的学习算法是基于迭代的思想,通常是采用纠错学习规则的学
5、习算法。为方便起见,将偏差b作为神经元突触权值向量的第一个分量加到权值向量中去,那么对应的输入向量也应增加一项,可设输入向量的第一个分量固定为+1,这样输入向量和权值向量可分别写成如下的形式: (2.4)(2.5)其中的变量n表示迭代次数,其中的b(n)可用w0(n) 表示,则二值阈值元件的输入可重新写为: (2.6)令(2.6)式等于零,即可得在m维信号空间的单层感知器的判决超平面。学习算法如下:第一步:设置变量和参量:X(n)= 1, x1(n), x2(n), , xm(n)为输入向量,或称训练样本;W(n)= b(n), w1(n), w2(n), , wm(n)为权值向量;b(n)
6、为偏差;y(n)为实际输出;d(n)为期望输出;为学习速率;n为迭代次数。第二步:初始化,赋给Wj(0)各一个较小的随机非零值, n = 0;第三步:对于一组输入样本X(n)= 1, x1(n), x2(n), , xm(n),指定它的期望输出(亦称之为导师信号)。,。第四步:计算实际输出:(2.7)第五步:调整感知器的权值向量:(2.8)第六步:判断是否满足条件,若满足算法结束,若不满足将n值增加1,转到第三步重新执行。注意:在以上学习算法的第六步需要判断是否满足条件,这里的条件可以是:误差小于我们设定的值,即:;或者是权值的变化已很小,即。另外,在实现过程中还应设定最大的迭代次数,以防止算
7、法不收敛时,程序进入死循环。在感知器学习算法中,重要的是引入了一个量化的期望输出d(n),其定义为:(2.9)这样,就可以采用纠错学习规则对权值向量进行逐步修正。对于线性可分的两类模式,可以证明单层感知器的学习算法是收敛的,即通过学习调整突触权值可以得到合适的判决边界,正确区分两类模式。如图2.3(a)所示。而对于线性不可分的两类模式,如图2.3(b)所示,无法用一条直线区分两类模式。因而单层感知器的学习算法是不收敛的,即单层感知器无法正确区分线性不可分的两类模式。 (a) (b)图2.3线性可分与不可分的问题对于以上所述的问题可用单层感知器实现逻辑函数来进一步说明。x1x2x1 x2Y=w1
8、x1w2x2b=0条件“与”000Y=w10w20b0010Y=w10w21bw2100Y=w11w20bw1111Y=w11w21b0bw1w2 可解。比如取w1=1,w2=1,b。“或”000Y=w10w20b0011Y=w10w21b0bw2101Y=w11w20b0bw1111Y=w11w21b0bw1w2可解。比如取w1=1,w2=1,b=0.5。“异或”000Y=w10w20b0011Y=w10w21b0bw2101Y=w11w20b0bw1110Y=w11w21bw1w2 无解,即无法得到w1、w2和b满足条件。如图2.4所示,逻辑运算的结果“0”代表 l1类,用空心小圆表示;逻
9、辑运算的结果“1”代表 l2类,用实心小圆表示。可见单层感知器可实现逻辑“与”运算、逻辑“或”运算,即总可以得到一条直线将“0”和“1”区分开来,但单层感知器不可实现逻辑“异或”运算,即无法用一条直线将“0”和“1”区分开。“与”“或”“异或”图2.4逻辑运算问题图示单层感知器无法解决线性不可分的两类模式识别问题,采用多层感知器可解决此类问题。关于多层感知器将在第3章详细介绍。自适应线性元件自适应线性元件(Adaptive Linear Element,Adaline)模型是由美国斯坦福大学的Widrow和Hoff于1961年提出的。自适应线性元件模型如图2.5所示。神经元i的输入信号向量:。
10、突触权值向量:w0i常接有单位输入,用以控制阈值电平。模拟输出:二值输出:图2.5自适应线性元件单个神经元具有m个二进制输入,共有2m个可能的输入模式,单个神经元具有一个模拟输出和一个二值输出。自适应线性元件的学习算法采用LMS算法。单个神经元只能实现线性可分函数。假定只有两个输入x1和x2,则自适应线性元件的模拟输出为:调整临界阈值条件,可令模拟输出为零,即该方程为直线方程,即单个自适应线性元件实现线性可分函数。如图2.6所示,通过学习总是可以得到一条直线将空心小圆和实心小圆划分开来。图2.6 自适应线性元件的线性可分性图示用自适应线性元件实现非线性可分函数的方法有两种,一是对神经元施加非线
11、性输入函数,如图2.7所示。图2.7自适应非线性元件若令y = 0 ,上式为曲线方程,即通过选择W,可实现非线性函数,使得自适应线性元件具有非线性可分性。如图2.8所示,虚线表示的曲线将分别用空心小圆和实心小圆所表示的两类区分开了。图2.8自适应线性元件的非线性可分性另一种实现非线性可分函数的方法是由多个自适应线性元件和AND逻辑器件构成的,所谓MADALINES 网络。如图2.9所示。图2.9 MADALINES 网络其原理是实现多个线性函数,对线性不可分区域进行划分。如图2.10所示,两条虚直线将分别用空心小圆和实心小圆所表示的两类区分开了。图2.10 MADALINES 网络实现线性不可
12、分区域的划分自适应线性元件的学习算法采用LMS算法。2.3 LMS学习算法感知器和自适应线性元件在历史上几乎是同时提出的,并且两者在对权值的调整的算法非常相似,它们都是基于纠错学习规则的学习算法。感知器算法存在如下问题:(1)不能推广到一般的前向网络中去;(2)函数不是线性可分时,得不出任何结果。而由美国斯坦福大学的Widrow和Hoff在研究自适应理论时提出的LMS算法,由于其容易实现而很快得到了广泛的应用,成为自适应滤波的标准算法。设e(n)为在时刻n时的误差信号:(2.10)其中参数的含义如前所述。用采用“瞬时”值均方误差作为代价函数: (2.11)对(2.10)和(2.11)式两边求关
13、于权值向量W的导数可得: (2.12) (2.13)从(2.12)和(2.13)式又可得:(2.14)为使误差尽快减小,令权值沿着误差函数负梯度方向改变,即:(2.15)这样就可以得到LMS算法调整突触权值的公式:(2.16)其中是学习速率因子,表示单位矩阵。LMS算法第一步:设置变量和参量:X(n)= 1, x1(n), x2(n), , xm(n)为输入向量,或称训练样本;W(n)= b(n), w1(n), w2(n), , wm(n)为权值向量;b(n) 为偏差;y(n)为实际输出;d(n)为期望输出;为学习速率;n为迭代次数。第二步:初始化,赋给Wj(0)各一个较小的随机非零值, n
14、 = 0;第三步:对于一组输入样本X(n)= 1, x1(n), x2(n), , xm(n)和对应的期望输出,计算:第四步:判断是否满足条件,若满足算法结束,若不满足将n值增加1,转到第三步重新执行。注意:在以上学习算法的第四步需要判断是否满足条件,这里的条件可以是:误差小于我们设定的值,即: ;或者是权值的变化已很小,即。另外,在实现过程中还应设定最大的迭代次数,以防止算法万一不收敛时,程序进入死循环。LMS算法中的学习速率因子对LMS算法影响较大。当取比较小的值时,LMS算法的自适应过程就比较慢,LMS算法就记忆了更多的过去数据,从而LMS算法的结果就更加精确。也就是说,LMS算法的运行
15、时间和学习速率因子成反比,或者说,学习速率因子的倒数就表示了LMS算法的记忆容量。从LMS算法公式(2.16)可见,LMS算法的稳定性是受输入向量X(n)的统计特性和学习速率因子的值影响的。若X(n)是来自确知统计特性环境的输入向量,则LMS算法的稳定性就取决于学习速率因子。判断LMS算法的收敛性是比较复杂的。为了能从数学上分析LMS算法的收敛性,Widrow于1976年提出了所谓的“不相关理论”(Independence Theory),为此作出以下四点假设:(1) 相继的输入向量X(1), X(2),是相互不相关的;(2) 在抽样时刻n,输入向量X(n)与所有的在n以前的期望输出d(1),
16、 d(2), ,d(n-1)是不相关的;(3) 在抽样时刻n,期望输出d(n)与输入向量X(n)有关,但与所有的在n以前的期望输出d(1), d(2), ,d(n-1)是不相关的;(4) 输入向量X(n)与预期响应d(n)均来自符合高斯分布的环境。根据“不相关理论”和假定学习速率因子取值足够小,Haykin在1996年说明了LMS算法是按方差收敛的,只要学习速率因子满足下式: (2.17)其中max是输入向量X(n)自相关矩阵Rx的最大特征值。在LMS算法的实际应用的场合,max并不可知,为此通常使用自相关矩阵Rx的迹trRx作为max的估计值,trRx是自相关矩阵Rx的对角线元素之和,根据数
17、学知识可知,由于trRxmax,可取为: (2.18)而输入向量的自相关矩阵Rx的每个对角元素就是相应读出输入的均方值,所以(2.18)又可以写成如下形式: (2.19)因此,当学习速率因子满足(2.19)式时,我们便可判定LMS算法收敛。另外,一种非正规但简单实用判定LMS算法收敛的方法就是:以迭代次数n为横坐标,以误差信号的均方差E(n)为纵坐标,画出学习曲线,从学习曲线的单调性来判定LMS算法是否收敛。标准的LMS算法学习曲线如图2.11所示。图2.11 LMS算法的理想学习曲线对一个收敛的LMS算法,学习曲线从一个大的E(0)值开始,E(0)由初始条件决定的;然后按某种速率下降,最终收
18、敛到一个稳定的值E()。通过学习曲线我们可以定义LMS算法的收敛速率为E(0)下降到某个预设的值,如初始值E(0)的10%时所需的迭代次数n。学习速率因子对收敛速率和学习精度有很大的影响,最简单的方法是按公式(2.19)取为常数。即: (2.20)在随机近似过程中,可将学习速率因子看成是时变的,即: (2.21)其中c是一个不能太大常量。综合考虑收敛速率和学习精度,学习速率因子应先取较大的值,保证收敛速率,随着迭代次数的增加的值也应该较小以保证精度。Darken和Moody于1992年结合(2.20)和(2.21)两式,提出了所谓的搜索-收敛的方案(Search-then-Converge S
19、chedule),即学习速率的退火算法。其定义如下: (2.22)其中,和是预设的常量。分析上式可知,在自适应的迭代开始时,迭代次数n小于搜索时间常量,此时约等于,随着迭代次数n增大并大于搜索时间常量时,学习速率因子就近似于,其中,此时算法如同一个传统的随机近似算法,从而权值向量将收敛到一组最优值的集合。这说明了学习速率因子的搜索-收敛计划可以同时具备了标准LMS算法和传统随机近似算法的特性。如图2.12所示。图2.12学习速率的退火算法以上讨论了LMS算法及其收敛性。从中可以看出LMS算法的主要优点就是它容易实现,另外,LMS算法是模型无关的,从而鲁棒性比较好。所谓鲁棒性好是指小的模型不确定
20、性和小能量的干扰只能引起小的误差信号。Hassibi等人在1993和1996年提出了LMS算法按准则是最优的。准则的基本意思是指如果不知道要面对是什么,那么就按最坏的打算并进行优化处理。准则的提出为LMS算法的广泛应用奠定了坚实的基础,特别准则可以解释LMS算法不仅可以适用于平稳过程,而且适用于非平稳过程,这里非平稳过程是指其中的统计量随时间变化。LMS算法的一个主要缺点就是它的收敛速度慢以及它对输入向量的特征值结构的敏感性。LMS算法的收敛速度慢主要体现在它需要迭代相当于输入向量空间维数的10倍次数才能收敛到一个稳定状态;LMS算法对环境条件改变的敏感性主要是它对输入向量X(n)的自相关矩阵
21、Rx的条件数的改变敏感,当条件数是个大的数时,我们就称环境是病态的。当训练用的输入向量X(n)来自病态的环境时,LMS算法对条件数的敏感就更加突出。 2.4 仿真实例【例2.1】试用单层感知器,实现逻辑“与”和“或”运算。解:先考虑逻辑“与”运算的实现。对于“与”运算,即可将问题转化为:输入矢量为:P=0 0 11;0 10 1;目标矢量为:T=0 0 0 1。于是,可以按要求列出如下不等式组:x1x2x1 x2Y=w1x1w2x2b=0条件000Y=w10w20b0010Y=w10w21bw2100Y=w11w20bw1111Y=w11w21b0bw1w2在Matlab中,对于本例可以在二维
22、平面坐标中给出仿真过程的图形表示。如图2.13所示,根据输入矢量和目标矢量关系,将它们绘制于坐标平面中。目标矢量为1输出的输入矢量用“+”表示,而目标矢量为0输出的输入矢量用“o”表示。图2.14给出了Matlab中所设计的单层感知器在某次训练过程中,由权值形成的划分直线。虚线表示前几次的训练划分结果,实线则表示训练结束后的最终划分结果。显然,前几次目标未能正确的划分开,而训练结束后最终划分结果是正确的。验证了单层感知器可以实现逻辑“与”运算,而事实上,上述不等式组也是有解的。图2.13 输入矢量位置图图2.14 单层感知器训练过程在Matlab中,只要用下述命令即可对训练好的单层感知器网络输
23、出结果进行验证: A=hardlim(W*P,B)A = 0 0 0 1其中hardlim()函数是单层感知器的二值阈值函数。设计的感知器对不同的初始化条件可能得到不同的结果,即分类线不同,但都可以解决问题。对于逻辑“或”运算,只需改变上面设计时的输入输出,即可类似的实现。【例2.2】用单层感知器解决一个简单的分类问题。设计一个感知器,将二维的四组输入矢量分成两类。输入矢量为:P=-0.5 0;-0.5 0.5 1;目标矢量为:T=1 1 0 0。解: 对感知器的图解分析可知,感知器对输入矢量的分类实质是在输入矢量空间,用w*x+b=0的分割线对输入矢量进行切割而达到分类的目的。根据这个原理,
24、对此例中二维四组输入矢量的分类问题,可以用下述不等式组来等价的表式出:实际上,可以用代数求解法来求出上面不等式中的参数。其解的范围为: 一组可能解为:本例的分类问题是线性可分的,可以用单层感知器解决。所要设计的单层感知器的网络结构如图2.15所示: 与上例类似,在Matlab中仿真过程的图形表示如图2.16和图2.17所示。图2.16 输入矢量位置图图2.17 单层感知器训练过程同样可以用函数hardlim()来验证网络的结果。另外,我们可以将非训练样本输入网络,看看网络的分类结果。比如,对向量1.5;0.5: A=simup(1.5;0.5,W,B)A =0网络能够合理的响应被训练以外的输入
25、,这个性质称为泛化性能。【例2.3】用单层感知器实现多个神经元的分类。若将例2.2的输入矢量和目标矢量增加为10组的二元矩阵,即输入矢量为:P=0.1 -1.5;1.2 1.8 1.6 0.6 0.8 0.5 0.2 0.8 -1.5 -1.3;所对应的10组二元目标矢量为:T=1 1 1 0 0 1 1 1 0 0;0 0 0 0 0 1 1 1 1 1;解:由于增加了矢量数组,必然增加了解决问题的复杂程度。这个问题要是用一般的方法来解决是相当困难和费时的,它需要解一个具有6个变量的20个约束不等式。而通过单层感知器来解决此问题就显示出它的优越性。和例2.2程序相同,只要输入新的P和T,重新
26、训练感知器,即可得出训练的结果。根据输入矢量和目标矢量可得:网络的源节点数为2,输出层节点数也为2,由此可以画出本例中所要设计的单层感知器的网络结构如图2.18所示。图2.19给出了所设计的单层感知器的划分结果。其中虚线表示初始划分线,实线表示最终划分线。图2.19 单层感知器的划分结果【例2.4】线性不可分输入矢量。由于单层感知器对输入矢量空间只能线性的进行输出0或1的分类,它们只能划分具有线性可分的输入矢量组。如果在输入矢量组和它所对应的0,1目标之间不能用直线进行划分,那么单层感知器就不能正确的分类出输入矢量。在例2.2中,加入一个新的输入矢量,使之成为:输入矢量为:P=-0.5 0;-
27、0.5 0.5 1 0;目标矢量为:T=1 1 0 0 0。可以重复使用前面的仿真程序,但是网络并没有解决问题。如图2.20所示,根据输入矢量和目标矢量关系,将它们绘制于坐标平面中。显然,一条直线无法将它们分开。在感知器的应用中,这类线性不可分问题都可归结为“异或”问题。可用多层网络结构解决。图2.20 输入矢量位置图【例2.5】设计自适应线性元件,实现从输入矢量到输出矢量的变换关系,其输入矢量和输出矢量分别为:P=1.0 -1.2;T=0.5 1.0。解:用自适应线性元件求解问题时,首先要确定期望误差值,以及最大循环次数。对该例题可选err_goal=0.001;max_epoch=20。如
28、图2.21所示是在Matlab中设计的自适应线性元件进行仿真求解时,网络的学习曲线。用线性层仿真函数simulin( )来检测训练好的网络: A=simulin(P,W,B)A =由结果可以看出,对于特别简单的问题,采用自适应线性元件的训练不一定能够得到足够精确的解。因为当训练误差达到期望误差值后,训练即被终止。对于具有零误差的自适应线性元件,即输入/输出矢量对存在着严格的线性关系,网络的设计也可以通过采用神经网络工具箱中相对应的函数来完成。图2.21 网络的学习曲线【例2.6】用自适应线性元件解决一个较大的多神经元网络的模式联想的设计问题。输入矢量和目标矢量分别为:P=1 1.5 1.2 -
29、0.3; -1 2 3 -0.5; 2 1 -1.6 0.9;T=0.5 3 -2.2 1.4;1.1 -1.2 1.7 -0.4;3 0.2 -1.8 -0.4;-1 0.1 -1.0 0.6 解:由输入矢量和目标矢量可得:网络的源节点数为3,输出层节点数为4。若用解方程组方法来求解该例,将要解16个方程,需要花费大量的时间,甚至不太容易。对于一些实际问题,常常并不需要求出其完美的零误差的解,允许一定的误差存在。这时采用自适应线性元件求解就显示出它的优越性。可以通过选定期望误差和加长训练次数来获得趋于完美的解。如图2.22所示是在Matlab中设计的自适应线性元件进行仿真求解时,网络的学习曲线。图2.22 网络的学习曲线可用simulin( )函数来检测训练好的网络: A=simulin(P,W,B)A =【例2.7】研究学习速率因子取值不同对LMS学习算法的影响。在例2.5和例2.6的自适应线性元件的仿真过程中,对学习速率因子的取值,我们是通过神经网络工具箱函数maxlinlr(P),对输入P来求合适的学习速率因子值的。根据2.4节的讨论可知,学习速率因子的取值对LMS算法的影响较大。下面我们针对例2.6,研究学习速率因子取不同值时,LMS算法的收敛情况(也即网络的收敛情况)。网络的期望误差定为err_goal=0.001,最大训练步
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024矿山开采渣土砂石外运及环保处理合同
- 2024年项目工程专项技术咨询合同范本版B版
- 2024年道路货物运输服务协议版B版
- 2024石材资源开发与保护合作合同范本3篇
- 2024青岛汽车租赁合同违约责任条款3篇
- 2024年高效工业设备购销合同
- 2024版广告投放合同详细条款
- 2024年无子离婚双方共识合同范本
- 2024年高层住宅工程总包合同样本
- 2024男方债务分担与子女抚养权及赡养费支付协议书9篇
- 2024-2025学年山东省德州市高中五校高二上学期期中考试地理试题(解析版)
- 2025年国务院发展研究中心信息中心招聘应届毕业生1人高频重点提升(共500题)附带答案详解
- 麻风病病情分析
- 2024年公安机关理论考试题库500道及参考答案
- 特殊情况施工的技术措施
- 《急诊科建设与设备配置标准》
- 建筑工地节前停工安全检查表
- 钣金与成型 其它典型成形
- 注塑件生产通用标准
- 八卦象数疗法
- (完整版)视频监控系统用户操作手册
评论
0/150
提交评论