




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
BP神经网络SchoolofInformationScience&TechnologyDalianMaritimeUniversity目录BP神经网络BP神经元及BP网络模型BP网络的学习BP网络泛化能力的提高BP网络的局限性BP网络的MATLAB仿真程序设计BP网络学习算法其误差曲面是关于w和b的二维曲面,如图5.4所示。
图5.4单个BP神经元的误差曲面和及其等值线BP网络学习算法因为BP神经元的传输函数为非线性函数,所以其误差函数往往有多个极小点。如图5.5所示,若误差曲面有两个极小点m和n,则当学习过程中,如果误差先到达局部极小点m点,在该点的梯度为gk=0,则按式(5.2)将无法继续调整权值和阈值,学习过程结束,但尚未达到全局极小点n。BP网络学习算法图5.5具有多个极小点的误差曲面BP网络学习算法另外一种情况是学习过程发生振荡,如图5.6所示。误差曲线在m点和n点的梯度大小相同,但方向相反,如果第k次学习使误差落在m点,而第k十1次学习又恰好使误差落在n点。那么按式(5.2)进行的权值和阈值调整,将在m点和n点重复进行,从而形成振荡。BP网络学习算法图5.6学习过程出现振荡的情况BP网络的基本设计方法BP网络的设计主要包括输人层、隐层、输出层及各层之间的传输函数几个方面。1.网络层数
大多数通用的神经网络都预先确定了网络的层数,而BP网络可以包含不同的隐层。BP网络的基本设计方法但理论上已经证明,在不限制隐层节点数的情况下,两层(只有一个隐层)的BP网络可以实现任意非线性映射。在模式样本相对较少的情况下,较少的隐层节点,可以实现模式样本空间的超平面划分,此时,选择两层BP网络就可以了;当模式样本数很多时,减小网络规模,增加一个隐层是必要的,但BP网络隐层数一般不超过两层。BP网络的基本设计方法2.输入层的节点数
输人层起缓冲存储器的作用,它接收外部的输人数据,因此其节点数取决于输人矢量的维数。比如,当把32X32大小的图像的像素作为输人数据时,输人节点数将为1024个。BP网络的基本设计方法3.输出层的节点数输出层的节点数取决于两个方面,输出数据类型和表示该类型所需的数据大小。当BP网络用于模式分类时,以二进制形式来表示不同模式的输出结果,则输出层的节点数可根据待分类模式数来确定。若设待分类模式的总数为_则有两种方法确定输出层的节点数:BP网络的基本设计方法(1)节点数即为待分类模式总数m,此时对应第j个待分类模式的输出为
即第j个节点输出为1,其余输出均为0。而以输出全为0表示拒识,即所输入的模式不属于待分类模式中的任何一种模式。
BP网络的基本设计方法(2)节点数为
个。这种方式的输出是m种输出模式的二进制编码。BP网络的基本设计方法4.隐层的节点数一个具有无限隐层节点的两层BP网络可以实现任意从输人到输出的非线性映射。但对于有限个输人模式到输出模式的映射,井不需要无限个隐层节点,这就涉及到如何选择隐层节点数的问题,而这一问题的复杂性,使得至今为止,尚未找到一个很好的解析式,隐层节点数住住根据前人设计所得的经验和自己进行试验来确定。BP网络的基本设计方法一般认为,隐层节点数与术解问题的要求、输人输出单元数多少都有直接的关系。另外,隐层节点数太多会导致学习时间过长;而隐层节点数太少,容错性差,识别未经学习的样本能力低,所以必须综合多方面的因素进行设计。BP网络的基本设计方法对于用于模式识别/分类的BP网络,根据前人经验,可以参照以下公式进行设计:
式中:n为隐层节点数;n1为输人节点数;n0为输出节点数;a为1~10之间的常数。BP网络的基本设计方法5.传输函数BP网络中的传输函数通常采用S(sigmoid)型函数:
BP网络的基本设计方法在某些特定情况下,还可能采用纯线性(pureline)函数。如果BP网络的最后一层是Sigmoid函数,那么整个网络的输出就限制在一个较小的范围内(0~1之间的连续量);如果BP网络的最后一层是Pureline函数,那么整个网络的输出可以取任意值。BP网络的基本设计方法6.训练方法及参数选择
针对不同的应用,BP网络提供了多种训练、学习方法,如何选择训练函数和学习函数及其参数可参阅5.2节和5.3节,以及函数详解见附录。BP网络应用实例1.用于模式识别与分类的BP网络例5.1以BP神经网络实现对图5.16所示两类模式的分类。
图5.16待分类模式BP网络应用实例解(1)问题分析
据图5.16所示两类模式可以看出,分类为简单的非线性分类。有1个输入向量,包含2个输入元素;两类模式,1个输出元素即可表示;可以以图5.17所示两层BP网络来实现分类。图5.17两层BP网络BP网络应用实例(2)构造训练样本集根据图5.16所示两类模式确定的训练样本集为
其中:因为BP网络的输出为logsig函数,所以目标向量的取值为0.2和0.8,分别对应两类模式。在程序设计时,通过判决门限0.5区分两类模式。BP网络应用实例(3)训练函数的选择因为处理问题简单,所以选择最速下降BP算法(traingd训练函数)训练该网络,以熟悉该算法。
BP网络应用实例(4)程序设计例5.1创建和训练BP的MATLAB程序
%Example51Trclearall;
%定义输入向量和目标向量P=[12;-11;-21;-40]’;t=[0.20.80.80.2];
%创建BP网络和定义训练函数及参数BP网络应用实例net=newff([-11;-11],[51],{‘logsig’,’logsig’},’traingd’);net.trainParam.goal=0.001;net.trainParam.epochs=5000;%训练神经网络[net,tr]=train(net,p,t);%输出训练后的权值和阈值iwl=net.IW{l}bl=net.b{1}lw2=net.LW{2}b2=net,b{2}
BP网络应用实例%存储训练好的神经网络savenet51net;BP网络应用实例BP网络的初始化函数的默认值为initnw,该初始化函数的详解见附录。在本例中,将随机初始化权值和阈值,所以每次运行上述程序的结果将不相同。当达不到要术时,可以反复运行以上程序,直到满足要术为止。其中的一种运行结果如下:BP网络应用实例BP网络应用实例误差性能曲线如图5.18所示,从曲线上可以看出,训练经过了5000次仍然未达到要术的目标误差0.001,说明采用训练函数traingd进行训练的收敛速度是很慢的。虽然训练的误差性能未达到要术的目标误差,但这井不妨碍我们以测试样本对网络进行仿真。BP网络应用实例图5.18例5.1的训练性能曲线BP网络应用实例
例5.1网络仿真的MATLAB程序
%Example51Simloadnet51net; %加载训练后的BP网络p=[12;-11;-21;-40]’ %测试输人向量a2=sim(net,pI); %仿真输出结果a2=a2>0.5 %根据判决门限,输出分类结果
BP网络应用实例运行结果为p1=1-1-2-42110a2=0110结果表明可以完成上述两类模式的分类。BP网络应用实例下面结合图5.19进一步理解BP神经网络用于模式分类的原理。
首先,隐层将输入模式空间4个样本映射到隐层模式空间。图5.19(a)是输入模式空间(二维)
,两类模式的4个点示于图中;而隐层有5个神经元,所以隐层模式空间是五维的超立体空间
,难以用图形表示出来。BP网络应用实例
图5.19例5.1模式分类的图解说明BP网络应用实例将4个隐层模式空间的样本投影到如图5.19(b)所示的三维空间,此时,应该有4X5=20个点,但从图中只看到8个,这是因为其中12个点在投影空间的位置与图中的8个点相同或很接近,在图上不能分辨出来。
BP网络应用实例其次,输出层将隐层模式空间的4个输出模式样本映射到输出模式空间。则此时输出层的输人模式空间应该是五维的
,映射到输出模式空间则是一维的
。因为隐层模式空间的样本是输人模式样本的映射,所以可以将输出模式的4个样本映射到如图5.19(C)所示的三维空间
。此时,图中应该有4*1=4个点。BP网络应用实例第三,根据判决规则确定决策空间,进行模式分类。因为第一种模式的目标输出为0.8,第二类模式的目标输出为0.2,所以可以在0.2~0.8之间选择一判决门限(如0.5),判决规则为
>0.5判为第一种模式;决规则为
>0.5判为第一种模式;
<0.5判为第二种模式。若把输出空间作为决策空间,则决策边界是
轴上的一点=0.5;若将决策空间变换到二维空间(,p1),如图5.19(d)所示,则决策边界为=0.5的直线;若将决策空间变换到三维空间(,p1,p2)则决策边界为=0.5的平面。BP网络应用实例例5.2设计基于BP神经网络的印刷体字符0~9的识别系统。解字符识别,特别是手写体字符识别,在实际生活中具有很重要的意义。这里只说明神经网络的设计,不探讨字符识别的其他更多的内容,假设识别的对象是印刷体数字。经过前期处理,获得16X16的二值图像,如图5.20所示,其二值图像数据作为神经网络的输入。BP网络应用实例图5.20数学宇符16X16的二值化图像示意图BP网络应用实例(1)BP神经网络结构分析
按照BP神经网络设计方法选用两层BP网络,其输人节点数为16X16=256,隐层传输函数为sigmoid函数。假设用一个输出节点表示10个数字,则输出层传输函数为pureline,隐层节点
,取为25。
BP网络应用实例(2)神经网络仿真程序设计①构造训练样本集,并构成训练所需的输人矢量p和目标矢量t通过画图工具,获得数字0~9的原始图像,为便于编程,将其存于文件(0~9).bmP文件中;按照同样的方法,可以改变字体/字号,获得数字0~9更多的训练样本,将其存于文件(10~19).bmp,(20~29)bmp,…文件中。本例选用了3种字体、3种字号,共90个由数字0~9的样本构成的训练样本集。BP网络应用实例图5.21数宇。的不同训练样本图像BP网络应用实例从图中可以看出,形成图像的字体、字号不同,在图片中的位置也不相同,所以必须对它进行预处理,使各个图像在成为神经网络输人向量时具有统一的形式。预处理的基本方法是:截取数字图像像素值为0(黑)的最大矩形区域(如图5.21中第一个数字0的虚线框),将此区域的图像经过集合变换,使之变成16X16的二值图像;然后将该二值图像进行反色处理,以这样得到图像各像素的数值0,1构成神经网络的输人向量。所有训练样本和测试样本图像都必须经过这样的处理。BP网络应用实例
例5.2形成输人矢量P和目标矢量t的MATLAB程序%Example52PTclearall;
正在生成输人向量和目标向量,请稍等··forkk=0:89p1=ones(16,16); %初始化16X16的二值图像像素值(全白)m=strcat(int2str(kk),’.bmp’); %形成训练样本图像的丈件名(0~89.bmp)BP网络应用实例x=imread(m,’bmp’); %读人训练样本图像丈件bw=im2bw(x,0.5); %将读人的训练样本图像转换为二值图像[i,j]=find(bw==0); %寻找二值图像中像素值为0(黑)的行号和列号imin=min(i);
%寻找二值图像中像素值为0(黑)的最小行号imax=max(i); %寻找二值图像中像素值为0(黑)的最大行号BP网络应用实例jmin=min(j); %寻找二值图像中像素值为0(黑)的最小列号jmax-max(j); %寻找二值图像中像素值为0(黑)的最大列号bwl=bw(imin:imax,jmin:jmax);%截取图像像素值为叮黑)的最大矩形区域rate=16/max(size(bwl));
%计算截取图像转换为16\16的二值图像的缩放比例BP网络应用实例bwl=imresise(bwl,rate);%将截取图像转换为16X16的H值图像(由干缩放比例%大多数情况下不为16的倍数,所以可能存在转换误差)[i,j]=size(bwl); %转换图像的大小i1=round((16-i)/2); %计算转换图像与标准16X16的图像的左边界差j1=round((16-j)/2); %计算转换图像与标准16X16的图像的上边界差BP网络应用实例p1(i1+1:i1+I,j1+1:j1+j)=bWI;%将截取图像转换为标准的16X16的图像p1=-1.*p1+ones(16,16); %反色处理%以图像数据形成神经网络输人向量form=0:15p(m*16+1+1)*16,kk+1)=pl)(1:16,m+1);endBP网络应用实例%形成神经网络目标向量switchkkcase{0,10,20,30,40,50,60,70,80,90} %数宇0t(kk+1)=0;case{1,11,21,31,41,51,61,71,81,91}%数宇1t(kk+1)=1;case{2,12,22,32,42,52,62,72,82,92}%数宇2t(kk+1)=2;
BP网络应用实例case{3,13,23,33,43,53,63,73,83,93}%数宇3t(kk+1)=3;case{4,14,24,34,44,54,64,74,84,94}%数宇毛t(kk+1)=4;case{5,15,25,35,45,55,65,75,85,95}%数宇5t(kk+1)=5;case{6,16,26,36,46,56,66,76,86,96}%数宇6t(kk+1)=6;BP网络应用实例case{7,17,27,37,47,57,67,77,87,97}%数宇7t(kk+1)=7;case{8,18,28,38,48,58,68,78,88,98}%数宇8t(kk+1)=8;case{9,19,29,39,49,59,69,79,89,99}%数宇9t(kk+1)=9;endend
BP网络应用实例saveE52PTpt %存储形成的训练样本集(输人向量和目标向量)
输入向量和目标向量生成结束!BP网络应用实例(2)构造BP神经网络,井根据训练样本集形成的输人矢量和目标矢量,对BP网络进行训练。
例5.2创建和训练BP网络的MATLAB程序
%Example52Trclearall;loadE52PTpt;%加载训练样本集(输人向量和目标向量)
%创建BP网络pr(1:256,1)=0;
BP网络应用实例pr(1:256,2)=1;net=newff(pr,[251],{‘logsig’‘purelin’},’traingdx’,’learngdm’);BP网络应用实例%设置训练参数和训练BP网络net.trainParam.epochs=2500;net.trainParam.goal=0.001;net.trainParam.show=10;net.trainParam.lr=0.05;net=train(net,p,t);%存储训练后的BP网络saveE52netnet;BP网络应用实例训练结果如下:BP网络应用实例其训练的误差性能曲线如图5.22所示。BP网络应用实例(3)对BP神经网络进行仿真,以形成训练样本的方法,形成测试样本原始图像,存于不同的‘bmp’文件中,用于测试。其MATLAB程序如下:BP网络应用实例例5.2BP网络仿真的MATLAB程序%Example52Simclearall;P(1:256,1)=1;P1=ones(16,16); %初始化16X16的二值图像像素值(圭白)loadE52netnet;
%加载训练后的BP网络test=input(’Pleaseinputatestimage’:’s’); %提示输人测试样本图像丈件名BP网络应用实例x=imread(test,’bmp’); %读人测试样本图像bw=im2bw(x,0.5); %将读人的训练样本图像转换为二值图像[i,j]=find(bw==0); %寻找二值图像中像素值为0的行号和列号imin=min(i); %寻找二值图像中像素值为。的最小行号imax=max(i); %寻找二值图像中像素值为0的最大行号jmin=min(j); %寻找二值图像中像素值为。的最小列号BP网络应用实例jmax=max(j); %寻找二值图像中像素值为0的最大列号bwl=bw(imin:imax,jmin:jmax);%截取图像像素值为。的最大矩形区域rate=16/max(size(bwl)); %计算转换为16X16的二值图像的缩放比例bwl=imresize(bwl,rate); %将截取图像转换为16X16的H值图像[i,j]=size(bwl); %转换图像的大小BP网络应用实例i1=round((16-i)/2); %计算转换图像的宽度与16的差距j1=round((16—j)/2)’;%计算转换图像的高度与16的差距pI(i1+1:i1+I,j1+1:j1+j)=bwI;%将截取图像转换为标准的16X16的图像p1=-1.*p1+ones(16,16);
%反色处理form=0:15P(m*16+1:m+1)*16,1)=p1(1:16,m+1);%形成测试样本输人向量endBP网络应用实例[a,Pf,Af]=sim(net,p); %网络仿真imshow(p1); %显示测试样本图像a=round(a) %输出识别结果BP网络应用实例仿真结果表明,对于字体和字号与训练样本集相同的测试样本,元论图像中的数字在什么位置,都可以被100%地正确识别;而对于字体和字号与训练样本集不同的测试样本,只有一部分能正确识别。为了提高识别率,可以增加训练样本,或通过其他途径(如增加字体的特怔向量)来解决,本书不再赘述。BP网络应用实例2.用于曲线拟台的BP网络在实际应用中,住住希望产生一些非线性的输人输出曲线,且没有明确的函数关系,借助神经网络实现曲线拟合,可以很方便地解决这一问题。例5.3已知某系统输出y与输人工的部分的对应关系如表巳1所示。设计-BP神经网络,完成y=f(x)的曲线拟合。BP网络应用实例表5.1函数y=f(x)的部分对应关系以隐层节点数为15的单输人和单输出两层BP网络来实现其曲线拟合。BP网络应用实例例5.3创建和训练BP网络的MATLAB程序
%Exampl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2012年辽宁省大连市中考化学试卷及解析
- 遗传工程应用实例试题及答案
- 中班防溺水游戏课件
- 2024年仓储风险管理框架与试题及答案
- 2025年印刷品、记录媒介复制品项目建议书
- CPMM理论与实践结合的试题及答案
- 2025年滋补类药品项目投资风险评估报告
- 2024年关注热点的注册安全工程师试题及答案
- 2024年CPSM历年考试分析与总结试题及答案
- 如何备考国际物流师?试题及答案分享
- 人教版三年级美术教育教学计划
- 虚拟试衣间创业计划
- (一模)哈三中2025届高三第一次模拟考试 语文试题(含答案)
- 数学-浙江天域全国名校协作体2025届高三下学期3月联考试题+答案-2025-03-05-06-11-30
- 2024年辅导员素质能力大赛初赛题库
- 2025年陕西农业发展集团有限公司(陕西省土地工程建设集团)招聘(200人)笔试参考题库附带答案详解
- 2025年中考英语第一次模拟试卷01(广州专用)(解析版)
- 清华大学-deepseek网课培训合集
- 煤矿各岗位风险告知卡及应急处置卡
- 2025年市场监管总局直属单位招聘10人高频重点模拟试卷提升(共500题附带答案详解)
- 2025年北京电子科技职业学院高职单招高职单招英语2016-2024历年频考点试题含答案解析
评论
0/150
提交评论