[工学]神经网络-第二章-单层前向网络及LMS算法课件

上传人:cl****1 文档编号:567914684 上传时间:2024-07-22 格式:PPT 页数:51 大小:602.04KB
返回 下载 相关 举报
[工学]神经网络-第二章-单层前向网络及LMS算法课件_第1页
第1页 / 共51页
[工学]神经网络-第二章-单层前向网络及LMS算法课件_第2页
第2页 / 共51页
[工学]神经网络-第二章-单层前向网络及LMS算法课件_第3页
第3页 / 共51页
[工学]神经网络-第二章-单层前向网络及LMS算法课件_第4页
第4页 / 共51页
[工学]神经网络-第二章-单层前向网络及LMS算法课件_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《[工学]神经网络-第二章-单层前向网络及LMS算法课件》由会员分享,可在线阅读,更多相关《[工学]神经网络-第二章-单层前向网络及LMS算法课件(51页珍藏版)》请在金锄头文库上搜索。

1、第二章 单层前向网络及LMS算法1、单层感知器2、单层感知器的学习算法3、自适应线性神经元4、LMS学习算法5、仿真实例神经网络原理1感知器是由美国学者F.Rosenblatt在1957年首次提出的神经网络模型。LMS算法是由Widrow和Hoff在1960年提出的高效率易实现的自适应滤波算法。LMS(Least-Mean-Square)算法,可称为最小均方误差算法或梯度算法,也称为Delta规则。本章首先介绍单层感知器及其学习算法,然后介绍自适应线性元件及LMS算法,最后给出典型算法的仿真实例。2.1 单层感知器*感知器是神经网络用来进行模式识别的一种最简单模型。*单层感知器只能用来实现线性

2、可分的两类模式的识别。*单层感知器模型与MP模型的不同之处是其神经元的突触权值是可调的,这样就可以进行学习。*感知器模型在神经网络研究中具有重要的意义和地位。2.1.1 单层感知器模型感知器神经元模型如图2.1所示。I/O关系: 图2.1感知器模型单层感知器模型如图2.2定义加权系数wij为第i个神经元到第j个输入之间的连接值。 图2.2 单层感知器n感知器包括一个线性累加器和一个二值阈值元件,同时还有一个外部偏差b。线性累加器的输出作为二值阈值元件的输入。n二值阈值元件的输入为正数时,神经元输出 -1或0 。n单层感知器可实现两类目标的识别,当感知器输出为+1时,我们认为输入模式为一类;当感

3、知器输出为-1时,我们认为输入模式为另一类。p在m维信号空间,单层感知器进行模式识别的判决超平面由下式决定:图2.3 给出了一种只有两个输入 和 的判决超平面的情况,它的判决边界是直线 图2.3 两类模式识别的判定 p决定判决边界直线的主要参数是权向量Wq通过合适的学习算法可以训练出满意的权向量 2.1.2单层感知器的学习算法单层感知器的学习算法是基于叠代的思想,通常是采用纠错学习规则的学习算法。为方便,将偏差b 作为权向量的一个分量加到权值向量中去,对应的输入向量也增加一项,可设输入向量的第一个分量固定为+1,则输入向量和权值向量可写成如下形式: 其中,变量n为叠代次数,b(n)可用 表示,

4、则二值阈值元件的输入(激活值)可重新写为: 令上式等于零,即可得在m信号空间的单层感知器的判决超平面。 学习算法如下:第一步 设置变量和参量: b(n)为偏差。 y(n)为实际输出。 d(n)为期望输出。 为学习速率。 n为迭代次数。第二步 初始化,赋给 -1,1区间内的随机非零值,n=0。第三步 对于一组输入样本 指定它的期望输出d。第四步 计算实际输出:第五步 调整权向量:第六步 判断是否满足条件,若满足算法结束,若不 满足则n值增加1,转到第三步重新执行。注意:在第六步判断的条件可以是:误差小于设定值,即 ;权值的变化量已很小,即 迭代次数大于N在感知器学习算法中,重要的是引入了一个量化

5、的期望输出d(n),其定义为: 采用纠错学习规则对权向量进行逐步修正,对于线性可分的两类模式,可以证明单层感知器的学习算法是收敛的。2.1.3 matlab工具箱应用1.Newp 感知器感知器生成函数函数 感知器生成函数newp用于创建一个感知器网络,调用格式为:net =newp(pr,s,tf,lf)其中net: 函数返回参数,表示生成的感知器网络;net =newp: 表示在一个对话框中定义感知器的属性;pr: 一个R2的矩阵,由R组输入向量的最大值和最小值组成;s: 神经元的个数;tf: 感知器的传递函数,可选参数为hardlim和hardlims,默认为hardlim;lf: 感知器

6、的学习函数,可选参数为learnp和learnpn,默认为learnp.该函数返回一个新的感知器网络。2. Sim 神经网络仿真函数sim用于仿真一个神经网络,调用格式为:Y, Pf, Af= sim (net, P, Pi, Ai)其中:net 神经网络;P 网络的输入;Pi 初始输入延迟,缺省值为0;Ai 初始的层延迟,缺省值为0。该函数返回 Y 网络的输出;Pf 最终输出延迟;Af 最终的层延迟。3. init 神经网络初始化调用格式为:net=init(net)init函数调用NET.initFcn函数,根据NET,initParam设定的参数对网络的权值和阈值进行初始化。 4. ad

7、apt 神经网络的自适应格式:net,Y,E,Pf,Af=adapt (NET, P, T, Pi, Ai )其中:NET 一个神经网络;P 网络的输入;Pi 初始输入延迟,缺省值为0;Ai 初始的层延迟,缺省值为0。n返回一个具有适应功能NET.adaptFcn及适应参数NET.adaptParam的结果:net 修正后的网络;Y 网络的输出;E网络的误差;Pf最终输出延迟;Af最终的层延迟。n而参数T仅对需要目标的网络是必须的,而且是可任选的。5. train 神经网络的训练函数格式:net,tr=train(NET, P, T, Pi, Ai)train函数是按照NET.trainFcn

8、和NET.trainParam训练网络NET的。其中:NET 神经网络;P 网络的输入;T 网络的目标,默认值为0;Pi 初始输入延迟,默认值为0;Ai 初始的层延迟,默认值为0。返回:net 修正后的网络;TR 训练的纪录(训练步数和性能 epoch and perf ).n而参数T仅对需要目标的网络是必须的,而且是可任选的。Pi 和Ai仅用于具有输入或层间的延迟的网络,而且也是可以任选的。6.learnp 感知器的权值/阈值学习函数格式: dW,LS=learnp(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)db,LS=learnp(b,ones(1,Q),Z,N,A,T,E,

9、gW,gA,D, LP,LS)info = learnp (code)W SR维的权值矩阵(或S1维的阈值向量);P Q组R维的输入向量(或Q组单个输入);Z Q组R维的权值输入向量;N Q组R维的网络输入向量;A Q组R维的输出向量;T Q组R维的目标向量;E Q组R维的误差向量;gW SR维的性能参数的梯度;gA Q组R维的性能参数的输出梯度;LP 学习参数,若没有学习参数,LP=;LS 学习状态,初始值为。函数返回以下参数:dW SR维的权值(或阈值)变化阵;LS 新的学习状态;learnp(code) 对于每一个code 代码返回相应的有 用的信息:pnames 返回学习参数的名称;p

10、defaults 返回默认的学习参数;needg 如果该函数使用gW或gA,则返回值 为1。7. 感知器网络的应用感知器网络的应用n简单分类问题设计单一感知器神经元来解决一个简单的分类问题:将4个输入向量分为两类,其中两个输入向量对应的目标值为1,另两个向量对应的目标值为0。对于这个简单的分类问题,所采用的是两个输入的单个感知器,是采用硬限幅阈值函数hardlim的神经元。 即:输入矢量:P=-0.5 0.5 0.3 0.0; -0.5 0.5 -0.5 1.0目标矢量:T=1.0 1.0 0.0 0.0输入矢量可以用图来描述,对应于目标值0.0的输入矢量用符号表示,对应于目标值1.0的输入矢

11、量符号+表示。输入矢量图n 为解决这个问题,首先用函数newp构造一个输入向量均在-1,1之间的单个神经元感知器: net=newp(-1 1;-1 1,1);n 用init 对网络进行初始化: net=init(net);n 利用函数adapt调整网络的权值和阈值,直到误差为0时结束训练: net,Y,E=adapt(net,P,T);n 训练结束后可得到下图所示的分类曲线,由图可见分类线将两类输入向量正确地分类:其相应的训练误差的变化如图所示。这说明经过4步训练后,就达到了误差指标的要求。 1.分类结果 2. 误差变化曲线n感知器神经网络在取不同的初始条件时,其训练的结果不同,即用感知器求

12、解分类问题可得到多个解。n当网络训练完成之后,其权值和阈值就不再改变,这是就可利用训练好的感知器神经网络来解决实际的分类问题,对任意的输入矢量进行分类。例如:p=0.7;1.2;a=sim (net, p);得到的分类结果如图所示:n可见感知器网络能对输入向量进行正确的分类,同时验证了网络的正确性。n(源程序见附录1中的例2.1)感知器应用结果讨论局限性1)由于激活函数为阈值函数,输出矢量只能取0、1,所以仅可以解决简单的分类问题;2)输入矢量线性可分时,学习在有限次数内收敛;3)输入矢量的奇异性导致较慢的收敛。比如当输入/输出矢量分别为: P=-0.5 0.5 +0.3 0.1 80 -0.

13、5 +0.5 0.5 +1.0 100; T=1 1 0 0 1; 时,必然导致训练的困难;4)异或问题不可解。2.2自适应线性神经元自适应线性神经元Adaline模型如图2.4所示: 图2.4 自适应线性神经元模型 LMS算法模拟输出二值输出它实际上是一个连续时间线性阀值逻辑器件。神经元的输入向量的各分量被权向量加权( 连接单位输入 ,来控制阀值电平),得到模拟输出和二值输出。模拟输出为:二值输出为:其中: 为符号函数,当n单个神经元具有n个二进制输入,共有 个可能的输入模式,具有一个模拟输出和一个二值输出。q单个神经元只能实现线性可分函数。q自适应线性神经元采用LMS学习算法。 假定只有两

14、个输入 和 ,则自适应线性神经元的模拟输出为: 调整临界阀值条件,可令y输出为零,有 该直线方程为自适应线性神经元实现线性可分函数。如图2.5所示,通过学习总是可以得到一条直线将空心小园和实心小园分开。 图2.5 线性可分模式空间 用自适应线性神经元实现非线性可分函数的方法有两种,一是对神经元施加非线性输入函数,如图2.6所示。 图2.6 两个非线性输入的Adaline神经元若令Y=0,上式为曲线方程,通过选择W,可实现非线性函数,使得自适应线性神经元具有非线性可分性。如图2.7所示: 图2.7 自适应线性元件的非线性可分性 另一种实现非线性函数可分的方法是由多个自适应线性神经元和AND逻辑器

15、件构成的,所谓Madalines网络,如图2.8所示。 图2.8 两输入Madalines 模型 AND 其原理是实现多个线性函数,对线性不可非区域进行划分。如图2.9所示:图2.9 Madalines的非线性划分2.3 LMS学习算法LMS算法也称为Widrow-Hoff算法或Delta算法,由于容易实现而很快得到了广泛的应用,成为自适应滤波的标准算法。Adaline和Madalines模型所采用的就是LMS算法。该方法通过调整单个神经元的权值,使神经元的实际输出与理想输出之差为最小。LMS算法采用了误差最速下降准则,使用的误差测度函数为均方误差MSE。即权值的调整是按均方误差函数负梯度变化

16、。即有其中 是当前权值, 是下一步权值, 是学习率, 是MES曲面上对应于 的梯度值。 设MSE测度函数(误差平方和)为其中, 为在j 输出单元的期望输出;第j 单元的实际输出为改写上式为:其中, 为当前模式输入向量。定义瞬时梯度为:则有注意,上式采用的是瞬时梯度下降来训练网络的权值,因此,LMS算法实际上偏离了E真正的梯度下降方向,是一种近似的梯度下降。但当学习率很小时,这种偏离是可以忽略的。当学习率 比较小时,LMS算法自适应过程较慢, 但这时可记忆更多的过去数据,从而结果更精确。也可以说,学习率的倒数表示了LMS算法的记忆容量。 若要实现全局误差函数E上的梯度下降,则的变化应正比于负平均

17、梯度,即: 之所以采用瞬时梯度,是因为它可以直接从单个样本数据求得。此外,要计算所有训练模式的平均梯度是很费时的,因而在实际中很少用。 当用式(2.2)来训练网络,为获得全局误差最小的最优权值,需要无限次的迭代运算。有限次迭代得到的解只是近似解,这是LMS学习算法的一个不足之处。 可以看出,LMS算法与感知器的误差修正算法在形式上是一样的,但他们有本质上的差别。差别在于:感知器学习的数学基础是模式感知器学习的数学基础是模式空间超平面位置的调整;空间超平面位置的调整;LMS算法学习的数学算法学习的数学基础是误差曲面上的梯度下降基础是误差曲面上的梯度下降。nLMS算法步骤1.初始化 。2.选择一输

18、入样本 。3.计算实际输出 。4.如果误差 则结束训练。5.计算 ,更新 。6.返回 2n网络应用设计网络应用设计举例举例 对线性神经元进行训练n设计一个简单的单层线性神经元,使其实现从输入到输出的变换关系。 P=+1.0 1.2 T=+0.5 +1.0n给出权值和阈值的范围并绘制误差曲面及误差等高线, w_range = -1:0.1:1; b_range = -1:0.1:1; ES = errsurf(P,T,w_range,purelin); plotes(w_range,b_range,ES);误差曲面及误差等高线误差曲面及误差等高线如下图所示。n学习速率问题学习速率问题 n在网络设

19、计中,学习速率的选取是影响收敛速 度以及训练结果的一个很重要的因素。只要学 习速率足够小,采用Widrow-Hoff学习规则的 线性网络总可以训练出一个最小的输出误差。 但是当学习速率较大时,可导致训练过程的不 稳定。Matlab工具箱给出了一个正确求解学习 率的函数maxlinlr。下面我们用maxlinlr求得 的学习率大的值训练网络。举例举例 学习速率过大n输入和目标与上例相同,但学习率是原来的1.5倍。n本例选取的学习率为 maxlr = maxlinlr(P,bias);n训练次数为 net.trainParam.epochs= 20;n建立一个学习率为原来的1.5倍的线性网络:ne

20、t = newlin( -2 2,1,0,maxlr*2.25) n该程序的仿真结果为: a= 66.2114 1.误差曲面及误差等高线 2.训练过程的误差曲线 当学习率选取较大时,误差越来越大 ,网络不收敛。如图所示。举例举例 自适应噪声消除 设计一个自适应线性网络,使其对输入信号进行预测。程序如下:time = 1:0.01:2.5;X = sin(sin(time).*time*10);P = con2seq(X);T = con2seq(2*0 X(1:(end-1) + X);plot(time,cat(2,P:),time,cat(2,T:),-);title(Input and Target Signals);xlabel(Time); legend(Input,Target) net = newlin(-3 3,1,0 1,0.1); net,Y,E,Pf=adapt(net,P,T);plot(time,cat(2,Y:),b, .time,cat(2,T:),r, .time,cat(2,E:),g,1 2.5,0 0,k)legend(Output,Target,Error)如图所示,在2秒时,网络输出与目之间的误差接近于零,因此该线性网络可以对输入信号(噪声)进行对消。 1 输入信号和目标函数 2 网络输出、目标函数及误差

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号