神经网络与MATLAB仿真ppt课件_第1页
神经网络与MATLAB仿真ppt课件_第2页
神经网络与MATLAB仿真ppt课件_第3页
神经网络与MATLAB仿真ppt课件_第4页
神经网络与MATLAB仿真ppt课件_第5页
已阅读5页,还剩140页未读 继续免费阅读

下载本文档

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

文档简介

1、神经网络,Outline,1.人工神经网络简介 2.神经网络的特点及应用 3.神经网络模型 4.神经网络的学习方式,1.人工神经网络简介,人工神经网络(Artificial Neural Network,ANN),通常简称为神经网络,是一种在生物神经网络的启示下建立的数据处理模型。主要通过调整神经元之间的权值来对输入的数据进行建模,最终具备解决实际问题,1.人工神经网络简介,单层感知器结构,人工神经网络的可塑性表现于,其连接权值都是可调整的,它将一系列仅具有简单处理能力的节点通过权值相连,当权值调整至恰当时,就能输出正确的结果。网络将知识存储在调整后的各权值中,这一点是神经网络的精髓,2.神经

2、网络的特点及应用,1.自学习和自适应性。给神经网络输入新的训练样本,网络能够自动调整结构参数,改变映射关系 2.非线性性。人工神经元处于激活或抑制状态,表现为数学上的非线性关系。 3.鲁棒性与容错性 。局部的损害会使人工神经网络的运行适度减弱,但不会产生灾难性的错误。 4.计算的并行性与存储的分布性。每个神经元都可以根据接收到的信息进行独立运算和处理,人工神经网络具有强大的模式识别和数据拟合能力,2.神经网络的特点及应用,1.模式分类 。需要提供已知样本 2.聚类 。不需要提供已知样本 。 3.回归与拟合 。相似的样本输入在神经网络的映射下,往往能得到相近的输出。 4.优化计算 。寻找一组参数

3、组合,使由该组合确定的目标函数达到最小值 。 5.数据压缩 。将数据保存于连接权值中,3.神经网络模型,单层网络:单层感知器,线性网络。 多层网络:其他网络。 前向网络:BP、径向基网络、自组织网络等。 反馈网络:Hopfield网络,Elman网络等,本书共介绍了单层感知器、线性网络、BP网络、径向基网络、自组织竞争网络、反馈网络、随机神经网络等神经网络模型,4.神经网络的学习方式,1.有监督学习(有教师学习 )。训练样本对应一个教师信号 。 2.无监督学习 (无教师学习 )。网络只接受一系列的输入样本,而对该样本应有的输出值一无所知,1. Hebb学习规则:权值的调整量与输入前一神经元输出

4、值和后一神经元输出值的乘积成正比 。 2. 纠错学习规则:权值的调整量与误差大小成正比 。 3. 随机学习规则:Boltzmann机事实上就是模拟退火算法 。 4. 竞争学习规则:只有一个获胜神经元可以进行权值调整,其他神经元的权值维持不变,体现了神经元之间的侧向抑制,单神经元网络,神经元模型 图中 为神经元的内部状态, 为阈值, 为输入信号, , 为表示从单元 到单元 的连接权系数, 单神经元模型可描述为,通常情况下,取 即,图7-1 单神经元模型,常用的神经元非线性特性有以下四种: (1)阈值型 图7-2 阈值型函数,2)分段线性型,图7-3 分段线性函数,3)Sigmoid函数型,图7-

5、4 Sigmoid函数,单层感知器,Outline,1.单层感知器的结构 2.单层感知器的学习算法 3.感知器的局限性 4.单层感知器应用实例,1.单层感知器的结构,单层感知器属于单层前向网络,即除了输入层和输出层之外只拥有一层神经元节点。 感知器(perception )的原理相对简单,是学习其他复杂神经网络的基础 。 由单个神经元组成的单层感知器只能用来解决线性可分的二分类问题。 典型使用场景: 将其用于两类模式分类时,就相当于在高维样本空间中,用一个超平面将样本分开。Rosenblatt证明,如果两类模式线性可分,则算法一定收敛,1.单层感知器的结构,输入是一个N维向量,其中的每一个分量

6、都对 应于一个权值,隐含层的 输出叠加为一个标量值,随后在二值阈值元件中对得到的v值进行判断,产生二值输出,1.单层感知器的结构,二维空间中的超平面是一条直线。在直线下方的点,输出-1;在直线上方的点,输出1。分类面,2.单层感知器的学习算法,在实际应用中 ,通常采用纠错学习规则的学习算法,将偏置作为一个固定输入,输入,权值,2.单层感知器的学习算法,1)定义变量和参数。X为输入,y为实际输出,d为期望输出,b为偏置,w为权值,2)初始化。n=0,将权值向量 设置为随机值或全零值,3)激活。输入训练样本,对每个训练样本指定其期望输出,d,4)计算实际输出,2.单层感知器的学习算法,5)更新权值

7、向量,6)判断。若满足收敛条件,算法结束;若不满足,n自增1,转到第3步继续执行,误差小于某个预先设定的较小的值 两次迭代之间的权值变化已经很小 设定最大迭代次数M,当迭代了M次之后算法就停止迭代,条件的混合使用,防止出现算法不收敛现象,2.单层感知器的学习算法,确定学习率,不应当过大,以便为输入向量提供一个比较稳定的权值估计 不应当过小,以便使权值能够根据输入的向量x实时变化,体现误差对权值的修正作用 粗准焦螺旋 和细准焦螺旋的类比。自适应学习率,3.感知器的局限性,单层感知器无法解决线性不可分问题,只能做近似分类,感知器的激活函数使用阈值函数,输出值只有两种取值,限制了在分类种类上的扩展

8、。 如果输入样本存在奇异样本,网络需要花费很长的时间。 感知器的学习算法只对单层有效,4.单层感知器应用实例,1.手算 2.使用工具箱函数,坐标点的二类模式分类问题 :二维平面坐标系中存在一系列坐标点,已知部分坐标点属于第一类,部分坐标点属于第二类,求新坐标点的类别,4.单层感知器应用实例,4.单层感知器应用实例,定义,n=0.2; P= -9 1 -12 -4 0, 5;. 15 -8 4 5 11, 9; d=0,1,0,0,0,1; P=ones(1,6);P,4.单层感知器应用实例,2)初始化,将权值和偏置初始化为零。 w=0,0,0,3)第一次迭代。 v=w*P% 输出层的输入 y=

9、hardlim(v)% 计算网络的输出 根据 调整权值 e=(d-y)% 误差 ee=mae(e) % 计算误差的平均绝对差 w=w+n*(T-y)*P% 调整w,4.单层感知器应用实例,4)第二次迭代。 重复以上的步骤,v=w*P y=hardlim(v) e=(d-y) ee=mae(e) % 误差不为零! w=w+n*(T-y)*P,均匀分布元素的方差,4.单层感知器应用实例,5)第三次迭代,重复以上步骤,v=w*P y=hardlim(v) e=(d-y) ee=mae(e) w=w+n*(T-y)*P,5.单层感知器应用实例,6)第四次迭代,v=w*P y=hardlim(v) e=

10、(d-y) ee=mae(e) w=w+n*(T-y)*P,perception_hand.m 误差为零,权值w不再更新,得到的分类超平面为,4.单层感知器应用实例,2.使用工具箱函数,用到的函数: newp train sim perception_fcn.m,程序, perception_hand.m % 清理 (1)定义变量 定义输入 期望输出 clear,clc close all % n=0.2; % 学习率 w=0,0,0; P= -9, 1, -12, -4, 0, 5;. 15, -8, 4, 5, 11, 9; d=0,1,0,0,0,1; % 期望输出 P=ones(1,6

11、);P; P,P = 1 1 1 1 1 1 -9 1 -12 -4 0 5 15 -8 4 5 11 9, (2)显示要分类的点 figure; subplot(2,1,1); % 显示待分类的点和分类结果 plot(-9 , -12 -4 0,15, 4 5 11,o); hold on; plot(1,5,-8,9,*); axis(-13,6,-10,16); legend(第一类,第二类); title(6个坐标点的二分类, (3) 初始化 w=0,0,0; % (4)第一次迭代计算V和y值 v=w*P; v y=hardlim(v); % 实际输出 y % y是实际输出,与期望输出

12、d不一致需要根据误差d-y调整权值和偏置 e=(d-y); e ee=mae(e); ee w=w+n*(d-y)*P; w,v = 0 0 0 0 0 0 y = 1 1 1 1 1 1 e = -1 0 -1 -1 -1 0,ee = 0.6667 w = -0.8000 5.0000 -7.0000, (5)第二次迭代,根据第一次迭代更新的w向量的值,计算V和y值 v=w*P; v y=hardlim(v); % 实际输出 y e=(d-y); e ee=mae(e); ee % 可以发现,实际输出与期望输出仍然不一致,还需要再次调整w向量 w=w+n*(d-y)*P; w,v = -1

13、50.8000 60.2000 -88.8000 -55.8000 -77.8000 -38.8000 y = 0 1 0 0 0 0 e = 0 0 0 0 0 1,ee = 0.1667 w = -0.6000 6.0000 -5.2000, (6)第三次迭代,根据第一次迭代更新的w向量的值,计算V和y值 v=w*P; v y=hardlim(v); % 实际输出 y e=(d-y); e ee=mae(e); ee % 可以发现,mae值与前一次迭代相比没有变化,但是v值已经有了更新,继续调整权值和偏置 w=w+n*(d-y)*P; w,v = -132.6000 47.0000 -93

14、.4000 -50.6000 -57.8000 -17.4000 y = 0 1 0 0 0 0 e = 0 0 0 0 0 1,ee = 0.1667 w = -0.4000 7.0000 -3.4000, (7)第四次迭代 v=w*P; v y=hardlim(v); % 实际输出 y e=(d-y); e ee=mae(e); ee % 可以发现,程序在第四次迭代时就已经取得正确的结果,mae值为0,此时算法就收敛了, 由于mae值为0,因此即使继续更新w向量,其值也保持不变: w=w+n*(d-y)*P; w,v = -114.4000 33.8000 -98.0000 -45.400

15、0 -37.8000 4.0000 y = 0 1 0 0 0 1 e = 0 0 0 0 0 0,ee = 0,w=w+n*(d-y)*P; w w = -0.4000 7.0000 -3.4000,程序在第4次迭代时就已经取得了正确的结果,mae值为零。此时算法就收敛了,由于mae值为零,因此继续更新w向量,其值也保持不变, 显示 figure; subplot(2,1,1); % 显示待分类的点和分类结果 plot(-9 , -12 -4 0,15, 4 5 11,o); hold on; plot(1,5,-8,9,*); axis(-13,6,-10,16); legend(第一类,

16、第二类); title(6个坐标点的二分类); x=-13:.2:6; y=x*(-w(2)/w(3)-w(1)/w(3); plot(x,y); hold off,总程序, perception_hand.m % 清理 clear,clc close all % n=0.2; % 学习率 w=0,0,0; P= -9, 1, -12, -4, 0, 5;. 15, -8, 4, 5, 11, 9; d=0,1,0,0,0,1; % 期望输出 P=ones(1,6);P; MAX=20; % 最大迭代次数为20次 % 训练 i=0,while 1 v=w*P; y=hardlim(v); %

17、实际输出 %更新 e=(d-y); ee(i+1)=mae(e); if (ee(i+1)0.001) % 判断 disp(we have got it:); disp(w); break; end % 更新权值和偏置 w=w+n*(d-y)*P,if (i=MAX) % 达到最大迭代次数,退出 disp(MAX times loop); disp(w); disp(ee(i+1); break; end i= i+1; end, 显示 figure; subplot(2,1,1); % 显示待分类的点和分类结果 plot(-9 , -12 -4 0,15, 4 5 11,o); hold o

18、n; plot(1,5,-8,9,*); axis(-13,6,-10,16); legend(第一类,第二类); title(6个坐标点的二分类); x=-13:.2:6; y=x*(-w(2)/w(3)-w(1)/w(3); plot(x,y); hold off,subplot(2,1,2); % 显示mae值的变化 x=0:i; plot(x,ee,o-); s=sprintf(mae的值(迭代次数:%d), i+1); title(s,线性神经网络,Outline,1.线性神经网络的结构 2.LMS学习算法 3.LMS算法中学习率的选择 4.线性神经网络与感知器的对比 5.线性神经网

19、络实现直线拟合 6.线性神经网络应用实例-与,1.线性神经网络的结构,线性神经网络最典型的例子是自适应线性元件(Adaptive Linear Element,Adaline)。 线性神经网络与感知器的主要区别在于,感知器的传输函数只能输出两种可能的值,而线性神经网络的输出可以取任意值,其传输函数是线性函数。 线性神经网络在收敛的精度和速度上较感知器都有了较大提高,但由于其线性运算规则,它也只能解决线性可分的问题,1.线性神经网络的结构,线性神经网络在结构上与感知器网络非常相似,只是神经元传输函数不同,1.线性神经网络的结构,若网络中包含多个神经元节点,就能形成多个输出,这种线性神经网络叫Ma

20、daline网络,Madaline可以用一种间接的方式解决线性不可分的问题,方法是用多个线性函数对区域进行划分,然后对各个神经元的输出做逻辑运算,1.线性神经网络的结构,线性神经网络解决线性不可分问题的另一个方法是,对神经元添加非线性输入,从而引入非线性成分,这样做会使等效的输入维度变大,2.LMS学习算法,LMS算法与感知器网络的学习算法在权值调整上都基于纠错学习规则,但LMS更易实现,因此得到了广泛应用,成为自适应滤波的标准算法。也称为 规则,采用均方误差作为评价指标,是输入训练样本的个数。线性神经网络学习的目标 是找到适当的 ,使得误差的均方差最小。只要用对 求偏导,再令该偏导等于零即可

21、求出 的极值。显然, 必为正值,因此二次函数是凹向上的,求得的极值必为极小值,2.LMS学习算法,误差表示为,求导,误差等于期望输出实际输出,求导,代入,有,权值的修正值正比于当前位置上的梯度,2.LMS学习算法,1)定义变量和参数。 (2)初始化。给向量赋一个较小的随机初值 。 (3)输入样本,计算实际输出和误差。 (4)调整权值向量。 (5)判断算法是否收敛。若满足收敛条件,则算法结束 ,否则跳转到第3步重新计算,3.LMS算法中学习率的选择,学习率越小,算法的运行时间就越长,算法也就记忆了更多过去的数据。因此,学习率的倒数反映了LMS算法的记忆容量大小。 1996年Hayjin证明,只要

22、学习率满足下式,LMS算法就是按方差收敛的,输入向量自相关矩阵的最大特征值,一般不可知,用矩阵的迹代替,迹就是主对角线元素之和,3.LMS算法中学习率的选择,自相关矩阵的主对角线元素就是各输入向量的均方值 ,故,在感知器学习算法中曾提到,学习率随着学习的进行逐渐下降比始终不变更加合理,反比例函数,指数式下降,搜索收敛方案,4.线性神经网络与感知器的对比,网络传输函数。感知器传输函数是一个二值阈值元件,而线性神经网络的传输函数是线性的。这就决定了感知器只能做简单的分类,而线性神经网络还可以实现拟合或逼近。 学习算法 。LMS算法得到的分类边界往往处于两类模式的正中间,而感知器学习算法在刚刚能正确

23、分类的位置就停下来了,从而使分类边界离一些模式距离过近,使系统对误差更敏感,5.线性神经网络实现直线拟合,对于一些离散的数据点,从中找到这些点的规律,就做一条直线,穿过尽可能多的点,使得这些数据和直线上所的估计的点的方差最小,找到的这条直线就是拟合直线,该直线代表了数据之间的线性规律, 清理 clear,clc close all % 定义数据 P=-5:5; % 输入:11个标量 P d=3*P-7; d randn(state,2); d=d+randn(1,length(d)*1.5 % 期望输出:加了噪声的线性函数 d,P=ones(1,length(P);P % P加上偏置 P lp

24、.lr = 0.01; % 学习率 MAX = 150; % 最大迭代次数 ep1 = 0.1; % 均方差终止阈值 ep2 = 0.0001; % 权值变化终止阈值 % 初始化 w=0,0, 循环更新 for i=1:MAX fprintf(第%d次迭代:n, i) e=d-purelin(w*P); % 求得误差向量 ms(i)=mse(e); % 均方差 ms(i) if (ms(i) ep1) % 如果均方差小于某个值,则算法收敛 fprintf(均方差小于指定数而终止n); break; end,dW = lp.lr*e*P; % 权值调整量 if (norm(dW) ep2) %

25、如果权值变化小于指定值,则算法收敛 fprintf(权值变化小于指定数而终止n); break; end w=w+dW % 用dW更新权值 end, 显示 fprintf(算法收敛于:nw= (%f,%f),MSE: %fn, w(1), w(2), ms(i); figure; subplot(2,1,1); % 绘制散点和直线 plot(P(2,:),d,o);title(散点与直线拟合结果); xlabel(x);ylabel(y); axis(-6,6,min(d)-1,max(d)+1); x1=-5:.2:5; y1=w(1)+w(2)*x1; hold on;plot(x1,y1

26、); subplot(2,1,2); % 绘制均方差下降曲线 semilogy(1:i,ms,-o); xlabel(迭代次数);ylabel(MSE);title(均方差下降曲线,6.线性神经网络应用实例与,网络的训练中共需确定3个自由变量,而输入的训练向量则有4个,因此可以形成一个线性方程组,由于方程的个数超过了自变量的个数,因此方程没有精确解,只有近似解,用伪逆的方法可以求得权值向量的值: P=0,0,1,1;0,1,0,1 P=ones(1,4);P d=0,0,0,1 pinv(P)*d,6.线性神经网络应用实例与,手算: % 定义 P=0,0,1,1;0,1,0,1 P=ones(

27、1,4);P % 包含偏置的输入向量 d=0,0,0,1% 期望输出向量 % 初始化 w=0,0,0% 权值向量初始化为零向量 lr=maxlinlr(P)% 根据输入矩阵求解最大学习率 MAX=200;% 最大迭代次数,根据经验确定,for i=1:MAX. fprintf(第%d次迭代n, i); v=w*P;% 求出输出 y=v; disp(线性网络的二值输出:); yy=y=0.5% 将模拟输出转化为二值输出,以0.5为阈值 e=d-y;% 误差 m(i)=mse(e);% 均方误差 fprintf(均方误差: %fn,m(i); dw=lr*e*P;% 权值向量的调整量 fprint

28、f(权值向量:n); w=w+dw% 调整权值向量 end,6.线性神经网络应用实例与,plot(0,0,1,0,1,0,o);hold on; plot(1,1,d); x=-2:.2:2; y=1.5-x; plot(x,y) axis(-0.5,2,-0.5,2) xlabel(x);ylabel(ylabel); title(线性神经网络用于求解与逻辑) legend(0,1,分类面,6.线性神经网络应用实例与,得到的分类超平面为,使用工具箱函数: and_linearlayer.m : 线性网络与感知器的对比,线性网络得到的分类面大致位于两类坐标点的中间位置,而感知器得到的分类面恰好

29、穿过其中一个坐标点。线性神经网络鲁棒性强,优于感知器,6.线性神经网络应用实例与,添加非线性输入,6.线性神经网络应用实例异或,运行xor_linearlayer.m,6.线性神经网络应用实例异或,使用Madaline:两个神经元,运行xor_madaline.m,第6章 BP神经网络,Outline,1.BP神经网络的结构 2.BP网络的学习算法 3.设计BP网络的方法 4.BP神经网络的局限性 5.BP神经网络应用实例,1.BP神经网络的结构,BP神经网络是包含多个隐含层的网络,具备处理线性不可分问题的能力。 误差反向传播算法(Error Back Propagtion,BP),解决了多层

30、神经网络的学习问题。 是一种多层前向网络,又叫多层感知器 。 BP网络是前向神经网络的核心部分,也是整个人工神经网络体系中的精华,广泛应用于分类识别、逼近、回归、压缩等领域。在实际应用中,大约80%的神经网络模型采取了BP网络或BP网络的变化形式,1.BP神经网络的结构,网络由多层构成,层与层之间全连接,同一层之间的神经元无连接 。 包含一个多多个隐层,可以实现复杂的映射关系,1.BP神经网络的结构,BP网络的传递函数必须可微。BP网络一般使用Sigmoid函数或线性函数作为传递函数,Sigmoid函数是光滑、可微的函数,在分类时它比线性函数更精确,容错性较好。 将输入从负无穷到正无穷的范围映

31、射到01或-11区间内,具有非线性的放大功能,Log-Sigmoid Tan-Sigmoid,1.BP神经网络的结构,误差反向传播” :误差信号反向传播。修正权值时,网络根据误差从后向前逐层进行修正。 “反馈神经网络” :输出层的输出值又连接到输入神经元作为下一次计算的输入,如此循环迭代,直到网络的输出值进入稳定状态为止。在本书后面的章节中会专门介绍反馈神经网络,包括Hopfield网络、Elman网络等。 BP神经网络属于多层前向网络,工作信号始终正向流动,没有反馈结构,BP网络采用误差反向传播算法(Back-Propagation Algorithm)进行学习。在BP网络中,数据从输入层经

32、隐含层逐层向后传播,训练网络权值时,则沿着减少误差的方向,从输出层经过中间各层逐层向前修正网络的连接权值,2.BP网络的学习算法,BP学习算法的原理与LMS算法比较类似,属于最速下降法,最速下降法,最速下降法可以求某指标(目标函数)的极小值,若将目标函数取为均方误差,就得到了LMS算法。 对于实值函数 ,如果在某点 处有定义且可微,则函数在该点处沿着梯度相反的方向 下降最快。因此,使用梯度下降法时,应首先计算函数在某点处的梯度,再沿着梯度的反方向以一定的步长调整自变量的值,当步长足够小时,反复迭代,求得函数最小值,2.BP网络的学习算法,最速下降法 实例:求函数的最小值,根据梯度值可以再函数中

33、画出一系列的等值线或等值面,在等值线或等值面上函数值相等。梯度下降法相当于沿着垂直于等值线方向向最小值所在位置移动,2.BP网络的学习算法,1)目标函数必须可微 。 (2)如果最小值附近比较平坦,算法会在最小值附近停留很久,收敛缓慢。 “之”字形下降 (3)对于包含多个极小值的函数,所获得的结果依赖初始值。算法有可能陷入局部极小值点,而没有达到全局最小值点。 BP神经网络来说,由于传递函数都是可微的,因此能满足最速下降法的使用条件,2.BP网络的学习算法,最速下降BP法,隐含层传递函数为Sigmoid函数,输出层传递函数为线性函数,1.工作信号正向传播 2.误差信号反向传播,权值调整量= 学习

34、率 * 局部梯度 * 上一层输出信号,2.BP网络的学习算法,当输出层传递函数为线性函数时,输出层与隐含层之间权值调整的规则类似于线性神经网络的权值调整规则。 BP网络的复杂之处在于,隐含层与隐含层之间、隐含层与输入层之间调整权值时,局部梯度的计算需要用到上一步计算的结果。前一层的局部梯度是后一层局部梯度的加权和。 因此,BP网络学习权值时只能从后向前依次计算,串行方式 。在线方式,网络每获得一个新样本,就计算一次误差并更新权值,直到样本输入完毕。 随机输入样本,不容易陷入局部最优陷阱。 批量方式 :离线方式。网络获得所有的训练样本,计算所有样本均方误差的和作为总误差 。 容易并行化,速度快,

35、2.BP网络的学习算法,动量BP法,在标准BP算法的权值更新阶段引入动量因子 ,使权值修正值具有一定惯性,本次权值的更新方向和幅度不但与本次计算所得的梯度有关,还与上一次更新的方向和幅度有关 (1)如果前后两次计算所得的梯度方向相同,得到的权值较大,可以加速收敛过程 。 (2)如果前后两次计算所得梯度方向相反,则说明两个位置之间可能存在一个极小值,可以得到一个较小的步长,更容易找到最小值点,而不会陷入来回振荡,2.BP网络的学习算法,学习率可变的BP算法: 当误差以减小的方式趋于目标时,说明修正方向是正确的,可以增加学习率; 当误差增加超过一定范围时,说明前一步修正进行地不正确,应减小步长,并

36、撤销前一步修正过程,拟牛顿法 。牛顿法具有收敛快的优点,但需要计算误差性能函数的二阶导数,计算较为复杂。拟牛顿法只需要知道目标函数的梯度,通过测量梯度的变化进行迭代,收敛速度大大优于最速下降法。拟牛顿法有DFP方法、BFGS方法、SR1方法和Broyden族方法,3.设计BP网络的方法,1.网络层数。对于大部分应用场合,单个隐含层即可满足需要 2.输入层节点数。输入层节点数取决于输入向量的维数。 如果输入的是的图像,则输入向量应为图像中所有的像素形成的4096维向量。 如果待解决的问题是二元函数拟合,则输入向量应为二维向量。 3.隐含层节点数 。较多的隐含层节点数可以带来更好的性能,但可能导致

37、训练时间过长 。经验公式,BP网络的设计主要包括网络层数、输入层节点数、隐含层节点数、输出层节点数及传输函数、训练方法、训练参数的设置等几个方面,样本数,输入层结点数,3.设计BP网络的方法,输出层神经元的个数同样需要根据从实际问题中得到的抽象模型来确定。在模式分类问题中,如果共有n种类别,则输出可以采用n个神经元 。 也可以将节点个数设计为 个, 表示最小的不小于 的整数。由于输出共有4种情况,因此采用二维输出即可覆盖整个输出空间,00、01、10和11分别表示一种类别,输出层神经元个数,传递函数的选择,一般隐含层使用Sigmoid函数,而输出层使用线性函数。如果输出层也采用Sigmoid函

38、数,输出值将会被限制在 01或-11之间,3.设计BP网络的方法,训练方法的选择,使用LM算法收敛速度最快,均方误差也较小。 LM算法对于模式识别相关问题的处理能力较弱,且需要较大的存储空间 模式识别问题,使用RPROP算法能收到较好的效果 SCG算法对于模式识别和函数逼近问题都有较好的性能表现,初始权值的确定,通常将初始权值定义为较小的非零随机值,经验值为,权值输入端连接的神经元个数,3.设计BP网络的方法,确定以上参数后,将训练数据进行归一化处理,并输入网络中进行学习,若网络成功收敛,即可得到所需的神经网络,4.BP神经网络的局限性,BP网络具有实现任何复杂非线性映射的能力,特别适合求解内

39、部机制复杂的问题 ,但BP网络也具有一些难以克服的局限性,1)需要的参数较多,且参数的选择没有有效的方法。隐含层结点个数。 (2)容易陷入局部最优。 (3)样本依赖性。如果样本集合代表性差、矛盾样本多、存在冗余样本,网络就很难达到预期的性能 (4)初始权重敏感性。训练的第一步是给定一个较小的随机初始权重,由于权重是随机给定的,BP网络往往具有不可重现性,5.BP神经网络应用实例,实现二值逻辑异或,学习率为0.6,动量因子为0.8,默认最大迭代次数为1000次,采用手算实现基于BP网络的异或逻辑。训练时采用批量训练的方法,训练算法使用带动量因子的最速下降法,main_xor.m,6.BP神经网络

40、应用实例,分类面,x,y, 清理 clear all clc randn(state,2); % 参数 eb = 0.01; % 误差容限 eta = 0.6; % 学习率 mc = 0.8; % 动量因子 maxiter = 1000; % 最大迭代次数, 初始化网络 nSampNum = 4; nSampDim = 2; nHidden = 3; nOut = 1; w = 2*(rand(nHidden,nSampDim)-1/2); b = 2*(rand(nHidden,1)-1/2); wex = w,b; W = 2*(rand(nOut,nHidden)-1/2); B = 2

41、*(rand(nOut,1)-1/2); WEX = W,B, 数据 SampIn=0,0,1,1;. 0,1,0,1;. 1,1,1,1; expected=0,1,1,0, 训练 iteration = 0; errRec = ; outRec = ; for i = 1 : maxiter % 工作信号正向传播 hp = wex*SampIn; tau = logsig(hp); tauex = tau, 1*ones(nSampNum,1,HM = WEX*tauex; out = logsig(HM); outRec = outRec,out; err = expected - ou

42、t; sse = sumsqr(err); errRec = errRec,sse; fprintf(第 %d 次迭代,误差: %f n,i,sse, 判断是否收敛 iteration = iteration + 1; if sse = eb break; end % 误差信号反向传播 % DELTA和delta为局部梯度 DELTA = err.*dlogsig(HM,out); delta = W * DELTA.*dlogsig(hp,tau); dWEX = DELTA*tauex; dwex = delta*SampIn, 更新权值 if i = 1 WEX = WEX + eta

43、* dWEX; wex = wex + eta * dwex; else WEX = WEX + (1 - mc)*eta*dWEX + mc * dWEXOld; wex = wex + (1 - mc)*eta*dwex + mc * dwexOld; end dWEXOld = dWEX; dwexOld = dwex; W = WEX(:,1:nHidden); end, 显示 figure(1) grid nRow,nCol = size(errRec); semilogy(1:nCol,errRec,LineWidth,1.5); title(误差曲线); xlabel(迭代次数)

44、; x=-0.2:.05:1.2; xx,yy=meshgrid(x,for i=1:length(xx) for j=1:length(yy) xi=xx(i,j),yy(i,j),1; hp = wex*xi; tau = logsig(hp); tauex = tau, 1; HM = WEX*tauex; out = logsig(HM); z(i,j)=out; end end,figure(2) mesh(x,x,z); figure(3) plot(0,1,0,1,*,LineWidth,2); hold on plot(0,1,1,0,o,LineWidth,2); C,h=c

45、ontour(x,x,z,0.5,b); clabel(C,h); legend(0,1,分类面); title(分类面,径向基函数网络,Outline,1.径向基神经网络的两种结构 2.径向基神经网络的学习算法 3.径向基神经网络与多层感知器的比较 4.概率神经网络 5.广义回归神经网络 6.径向基网络应用实例,1.径向基神经网络的两种结构,Broomhead和Lowe根据生物神经元具有局部响应的原理,将径向基函数引入到神经网络中。很快,RBF网络被证明对非线性网络具有一致逼近的性能,在不同行业和领域逐步得到了广泛应用。 由三层构成的前向网络 。 第一层为输入层,节点个数等于输入的维数; 第

46、二层为隐含层,节点个数视问题的复杂度而定; 第三层为输出层,节点个数等于输出数据的维数,隐含层是非线性的,采用径向基函数作为基函数,从而将输入向量空间转换到隐含层空间,使原来线性不可分的问题变得线性可分,输出层则是线性的,径向基网络 概率神经网络 广义回归网络模式分类和函数逼近,1.径向基神经网络的两种结构,径向基函数:有多种形式,其中最为常用的,是高斯函数,输入层 隐含层 输出层(线性,1.正则化网络是一个通用逼近器,这意味着,只要有足够多的隐含节点,它就可以以任意精度逼近任意多远连续函数。 2.给定一个未知的非线性函数f,总可以选择一组系数,使得网络对f的逼近是最优的,1.径向基神经网络的

47、两种结构,正则化网络的一个特点就是:隐含节点的个数等于输入训练样本的个数。因此如果训练样本的个数N过大,网络的计算量将是惊人的,从而导致过低的效率甚至根本不可实现。 解决的方案是用Galerkin方法来减少隐含层神经单元的个数,此时求得的解是较低维数空间上的次优解 。这就是广义网络,在实际应用中,一般都采用广义径向基函数网络,2.径向基神经网络的学习算法,确定隐含层结点中心 隐含层中基函数的标准差 网络权值(隐含层到输出层,所选取的中心之间的最大距离,n为隐含节点的个数,随机选取固定中心、自组织选取中心、有监督选取中心、正交最小二乘法,网络权值可以采用伪逆法 G为隐含层输出,d为输出层的期望输

48、出,3.径向基神经网络与多层感知器的比较,径向基神经网络是三层网络(输入层、隐含层、输出层),只有一个隐含层,而多层感知器则可以有多个隐含层 径向基神经网络的隐含层和输出层完全不同,隐含层采用非线性函数(径向基函数)作为基函数,而输出层采用线性函数,两者作用不同。 径向基神经网络的基函数计算的是输入向量与基函数中心之间的欧式距离(两者取差值,再取欧几里德范数),而多层感知器的隐单元的激励函数则计算输入向量与权值的内积 多层感知器对非线性映射全局逼近 ,径向基函数局部逼近,4.概率神经网络,概率神经网络(Probabilistic Neural Networks,PNN)在模式分类问题中获得了广

49、泛应用 。 概率神经网络可以视为一种径向基神经网络,在RBF网络的基础上,融合了密度函数估计和贝叶斯决策理论。在某些易满足的条件下,以PNN实现的判别边界渐进地逼近贝叶斯最佳判定面,贝叶斯:通过先验概率求后验概率,4.概率神经网络,第一层为输入层,用于接收来自训练样本的值,将数据传递给隐含层 径向基层,每一个隐含层的神经元节点拥有一个中心,该层接收输入层的样本输入,计算输入向量与中心的距离,最后返回一个标量值 求和层把隐含层中属于同一类的隐含神经元的输出做加权平均 输出层取求和层中最大的一个作为输出的类别,概率神经网络由输入层、隐含层、求和层和输出层组成,4.概率神经网络,PNN网络的优点 训

50、练容易,收敛速度快,从而非常适用于实时处理。 可以实现任意的非线性逼近,用PNN网络所形成的判决曲面与贝叶斯最优准则下的曲面非常接近。 只要有充足的样本数据,概率神经网络都能收敛到贝叶斯分类器,没有BP网络的局部极小值问题 扩充性能好。网络的学习过程简单,增加或减少类别模式时不需要重新进行长时间的训练学习,5.广义回归神经网络,广义回归神经网络(General Regression Neural Network,GRNN)是径向基网络的另外一种变形形式 广义回归网络以径向基网络为基础,因此具有良好的非线性逼近性能,与径向基网络相比,训练更为方便 广义回归神经网络尤其适合解决曲线拟合的问题 在M

51、ATLAB中newgrnn函数可以方便的实现GRNN网络,6.径向基网络应用实例,异或问题 RBF网络曲线拟合,6.径向基网络应用实例,异或问题,输入层为两个神经元,输出层为一个神经元,隐含层定位两个神经元 1. 显然问题是对称的,因此假定输出单元的两个权值相等,即 w1=w2=w 2. 输出单元拥有一个偏置b,以保证网络具有非零均值的输出值,两个隐含层结点的中心: t1=1,1T,t2=0,0T,6.径向基网络应用实例,输入数据(0,0),(1,0),(0,1),(1,1) gji表示第j个输入向量与第i个隐含节点的中心的距离,x=0,0;0,1;1,1;1,0% 输入向量 t=0,1;0,

52、1% 隐含节点的中心 z=dist(x,t)% 计算输入向量到中心的距离 G=radbas(z) % 将算得的距离输入到径向基函数中,G相当于径向基层的输出。 再加上偏置b=1,形成矩阵,G=G,ones(4,1)% 加上偏置 d=0,1,0,1% 期望输出 w=inv(G.*G)*G.*d% 求权值向量,d=0,1,0,1T,w=w,w,bT,采用以下公式求解w,最终:w=-2.5027,-2.5027,2.8413T,计算实际输出,Y=G*w% 计算实际输出,6.径向基网络应用实例,忽略第三列偏置,第一行是第一个输入向量0,0T在隐含层的输出,其余行以此类推。表示为坐标的形式,RBF网络的

53、隐含层经过高斯函数的运算,将原向量空间中的四个点映射为隐含层空间中的三个点。原空间中四个点线性不可分,而在新的空间中却可由一条直线正确地分成两类,一些解释,6.径向基网络应用实例, xor_hand.m % 清理 clear all close all clc % 输入 % 输入向量 x=0,0;0,1;1,1;1,0 % 隐含节点的中心 t=0,1;0,1,6.径向基网络应用实例, 计算网络 % 计算输入向量到中心的距离 z=dist(x,t) % 将算得的距离输入到径向基函数中 G=radbas(z) % 加上偏置 G=G,ones(4,1,6.径向基网络应用实例, 期望输出 d=0,1,0,1 % 求权值向量 w=inv(G.*G)*G.*d G % 计算实际输出 Y=G*w,6.径向基网络应用实例,RBF网络曲线拟合 : 输入1

温馨提示

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

评论

0/150

提交评论