版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
RevisedonNovember25,RevisedonNovember25,机器學习大作业題目:机器學习讲課老師:韩紅基于BP神經网络的非线性函数拟合摘要:BP(BackPropagation)神經网络是1986年由Rumelhart和McCelland提出的,它是一种误差按反向传播的多层前馈网络,是目前应用最广泛的神經网络模型之一。BP神經网络具有非常强的非线性映射能力,能以任意精度迫近任意持续函数,因此在人工智能的許多领域都得到了广泛的应用。一般,BP算法是通過某些學习规则来调整神經元之间的连接权值,在學习過程中,學习规则以及网络的拓扑构造不变。然而一种神經网络的信息处理功能不仅取决于神經元之间的连接强度,并且与网络的拓扑构造(神經元的连接方式)、神經元的输入输出特性和神經元的阈值有关,因而神經网络模型要加强自身的适应和學习能力,应當懂得怎样合理地自组织网络的拓扑构造,懂得变化神經元的激活特性以及在必要時调整网络的學习参数等。1BP神經网络概述BP神經网络是一种多层前馈神經网络,该网络的重要特點是信号前向传递,误差反向传播。在前向传递中,输入信号從输入层經隐含层逐层处理,直至输出层。每一层的神經元状态只影响下一层神經元状态。假如输出层得不到期望输出,则转入反向传播,根据预测误差调整网络权值和阈值,從而使BP神經网络预测输出不停迫近期望输出。BP神經网络的拓扑构造如图图1中,X1,X2,…,Xn是BP神經网络的输入值,Y1,Y2,…,Ym是BP神經网络的预测值,ωij和ωjk為BP神經网络权值。從图2可以看出,BP神經网络可以當作一种非线性函数,网络输入值和预测值分别為该函数的自变量和因变量。當输入节點数為n,输出节點数為m時,BP神經网络就体現了從n個自变量到m個因变量的函数映射关系。2重要用途BP网络重要用于:(1)函数迫近:用输入矢量和對应的输出矢量训练网络迫近某個函数;(2)模式识别:用一种特定的输出矢量将它与输入矢量联络起来;(3)分类:把输入矢量以所定义的合适的措施進行分类;(4)数据压缩:減少输出矢量维数以便于传播或存储。在人工神經网络的实际工程应用中,尤其在自動控制领域中,大多数神經网络模型是采用BP网络或它的变化形式,它也是前向网络的关键部分,体現了人工神經网络最精髓的部分。算法的数學描述:三层前馈网中,输入向量為:;隐层输入向量為:;输出层输出向量為:;期望输出向量為:。输入层到隐层之间的权值矩阵用V表达,,其中列向量為隐层第j個神經元對应的权向量;隐层到输出层之间的权值矩阵用W表达,,其中列向量為输出层第k個神經元對应的权向量。對于输出层,有對于隐层,有f(x)具有持续、可导的特點,且有,以上共同构成了三层前馈网了的数學模型。當网络输出和期望输出不相等時,存在输出误差E如下:将以上误差定义式展開至隐层,有深入展開至输入层,有由上式可以看出,网络输入误差是两层权值W和V的函数,因此调整权值可以变化误差E。显然,调整权值的原则是使误差不停的減小,因此应使权值的调整量与误差的负梯度成正比,即:式中负号表达梯度下降,常数表达比例系数,在训练中反应了學习速率。轻易看出,BP學习算法中,各层权值调整公式形式上都是同样的,均有3個原因决定,即:學习速率、本层误差信号和本层输入信号X/Y。其中输出层误差信号同网络的期望输出与实际输出之差有关,直接反应了输出误差,而各隐层的误差信号与前面各层的误差信号均有关,是從输出层開始逐层反传過来的。在建立BP神經网络時,首先要根据应用的問題确定网络构造,即选择网络的层数和隐层节點数。由于本例中试验数据较少,采用最基本的两层网络就可以很好地迫近未知函数了。隐层节點数的选择在神經网络的应用中一直是一种复杂的問題:隐层节點数過多,将导致网络的预测能力不够,并轻易导致网络陷入局部极小值难以跳出;隐层节點数過少,网络训练不出来,或不能识别此前没有的样本,且容錯性差。在设计中,比较实际的做法是通過對不同神經元数的网络進行训练、對比,找出网络效果最佳時的隐层节點数。在本例中,經大量的训练、對比,最终取中间隐层节點数為10。在建立模型的過程中也发現了某些問題,重要有两個方面:一是样本数過少,很难精确反应出待建模型的特性,并且轻易导致网络在學习過程中难以退出局部极小值。处理的措施是在试验部分增長试验點以增長训练样本数。二是BP网络自身存在的某些問題,重要表目前收敛速度很慢,有時在局部极小值收敛,不能找到全局极小值。针對這样的状况,可以考虑采用其他算法如:模拟退火、遗传算法等,以保证网络能收敛到全局极小值。神經网络的构造设计是一种非常重要但却拾分复杂的問題。网络的构造设计重要指對于給定的任务:①怎样选择网络层数由于网络的输入和输出层易于确定,因此這一問題实际上就是隐层应當為几层;②每层应选多少神經元;③神經元的传递函数应怎样选定。所有這些都是使用神經网络時必须加以处理的問題。但目前對此并没有一种确切的答案,MATLAB下的神經网络工具箱也不例外。综合以往的研究成果,可以得到BP网络构造的某些結论:①對于3层(1個输入层、1個隐层和1個输出层)的BP网络,只要其隐层的神經元数可选,就可以任意精度迫近任何持续函数(Kolmogorov定理);②伴随所迫近函数的波動性增長,隐层的神經元数也应合适增長;③伴随學习样本数的增長,隐层神經元数也应增長;④增長隐层数目可以減少各隐层的神經元数,減少陷入局部极小的机會;⑤伴随网络复杂程度和學习样本数的增長,其收敛速度变慢,因此网络的规模不应随意增大。四、BP网络实現1.初始化初始化隐层的权值向量和隐层到输出层的权值矩阵。确定每层的學习速率。设定最小误差率以及网络的最大迭代次数。生成sin(x)的训练样本集。测试数据:P2=*pi:*pi:2*pi;输入数据:P1=*pi:*pi:2*pi;2.生成并训练BP网络产生训练样本集。然後根据试验原理初始化并计算隐层的权值向量,以及隐层到输出层权值矩阵。根据计算出来的实际输出和目的输出做比较,得到误差,從而计算出输出层和隐层的权值变化,并反向调整输出层和隐层的权值大小,直到满足条件退出训练。将计算出的误差率与初始化设定的最小误差率進行比较,當误差率不不小于或者迭代次数到达1000次時,退出BP网络。3.试验成果:前两张图為最大训练次数為4000時得到的输入输出数据曲线和學习误差曲线如下两张图像為最大训练次数為40000時得到的输入输出数据曲线和學习误差曲线由以上图像可知,(1)BP网络迭代的前几步,錯误率下降的趋势非常的强,當錯误率下降到一定期候,就几乎不再变化,總体来說,到达了函数迫近的目的。(2)由以上通過变化最大训练次数的变化导致的图像变化可知,训练次数從4000到40000時,函数迫近效果明显变好,學习误差明显更快的減小。MATLAB的实現程序:打開commandSamNum=100;%训练样本TestSamNum=100;%测试样本数HiddenUnitNum=10;%隐节點数InDim=1;%样本输入维数OutDim=1;%样本输出维数%根据目的样本获得样本输入输出SamIn=*pi:*pi:2*pi;SamOut=sin(SamIn);TestSamIn=*pi:*pi:2*pi;TestSamOut=sin(TestSamIn);figureholdongridplot(TestSamIn,TestSamOut,'k--')xlabel('Inputx');ylabel('Outputy');MaxEpochs=50000;%最大训练次数lr=;%前期學习率E0=1;%前期目的误差W1=*rand(HiddenUnitNum,InDim);%输入层到隐层的权值B1=*rand(HiddenUnitNum,1);%隐节點初始偏移W2=*rand(OutDim,HiddenUnitNum);%隐层到输出层的初始权值B2=*rand(OutDim,1);%输出层初始偏移W1Ex=[W1B1]W2Ex=[W2B2]SamInEx=[SamIn'ones(SamNum,1)]'ErrHistory=[];fori=1:MaxEpochs%正向传播网络输出HiddenOut=logsig(W1Ex*SamInEx);HiddenOutEx=[HiddenOut'ones(SamNum,1)]';NetworkOut=W2Ex*HiddenOutEx;%停止學习判断Error=SamOut-NetworkOut;SSE=sumsqr(Error)%记录每次权值调整後的训练误差ErrHistory=[ErrHistorySSE];switchround(SSE*10)case4lr=;case3lr=;case2lr=;case1lr=;case0break;otherwiselr=;end%计算方向传播误差Delta2=Error;Delta1=W2'*Delta2.*HiddenOut.*(1-HiddenOut);%计算权值调整量dW2Ex=Delta2*HiddenOutEx';dW1Ex=Delta1*SamInEx';%权值调整W1Ex=W1Ex+lr*dW1Ex;W2Ex=W2Ex+lr*dW2Ex;%分离隐层到输出层的初始权值,以便背面使用W2=W2Ex(:,1:HiddenUnitNum);end%显示计算成果iW1=W1Ex(:,1:InDim)B1=W1Ex(:,InDim+1)W2B2=W2Ex(:,1+HiddenUnitNum);%测试TestHiddenOut=logsig(W1*TestSamIn+repmat(B1,1,TestSamNum));TestNNOut=W2*TestHiddenOut+repmat(B2,1,TestSamNum);plot(TestSamIn,TestNNOut,'r*')%绘制學习误差曲线figureholdongrid[xx,Num]=size(ErrHistory);plot(1:Num,ErrHistory,'k-');五、试验結论通過编程实現使用BP网络對函数進行迫近,對BP网络的信号和误差传递的原理以及隐层、输出层权值调整的规则有了充足的理解和认识。BP网络是一种强大的工具,它是应用最為广泛的网络。用于文字识别、模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 23391.1-2026玉米主要病虫害防治技术规范第1部分:玉米大斑病
- 小院普通改造方案范本
- 商铺监控维修方案范本
- 屋顶发泡养护方案范本
- 钢材采购投标方案范本
- 四平市地下顶管施工方案
- 法院围栏定制方案范本
- 归档整改方案范本
- 拆迁作业安排方案范本
- 电气工程师(初级)考试题库及答案1
- 清明假期安全教育课件
- 兴国经济开发区投资开发有限公司2026年公开招聘笔试参考试题及答案解析
- 2026年循证护理计划
- 机电工程创优指南
- 体验营销外文文献翻译2025年译文3000多字
- 2026年民族团结测试题题库及答案
- 某律所财务内部管理制度
- 园长幼儿园考核制度
- 2025宁夏德润农业发展投资集团有限公司招聘合格人员及笔试历年备考题库附带答案详解
- 学校文印室财务制度
- 2026年河北公路养护高级技师试题及答案
评论
0/150
提交评论