已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学年论文(本科)学 院 数学与信息科学学院 专 业 信息与计算科学专业 年 级 10级4班 姓 名 论文题目 BP神经网络原理与应用 指导教师 成 绩 2013 年 9月 24日BP神经网络的原理与应用1.BP神经网络的原理1.1 BP神经网络的结构1.1.1 BP神经网络模型是一个三层网络,它的拓扑结构可被划分为:输入层(InputLayer )、输出层(Outp ut Layer ) ,隐含层(Hide Layer )其中,输入层与输出层具有更重要的意义,因此也可以为两层网络结构(把隐含层划入输入层,或者把隐含层去掉)每层都有许多简单的能够执行并行运算的神经元组成,这些神经元与生物系统中的那些神经元非常类似,但其并行性并没有生物神经元的并行性高1.1.2 BP神经网络的特点:1)网络由多层构成,层与层之间全连接,同一层之间的神经元无连接2)BP网络的传递函数必须可微因此,感知器的传递函数-二值函数在这里没有用武之地BP网络一般使用Sigmoid函数或线性函数作为传递函数3)采用误差反向传播算法(Back-Propagation Algorithm)进行学习在BP网络中,数据从输入层隐含层逐层向后传播,训练网络权值时,则沿着减少误差的方向,从输出层经过中间各层逐层向前修正网络的连接权值随着学习的不断进行,最终的误差越来越来小 1.2 BP神经网络的学习过程BP神经网络的学习算法实际上就是对误差函数求极小值的算法,它采用的算法是最速下降法,使它对多个样本进行反复的学习训练并通过误差的反向传播来修改连接权系数,它是沿着输出误差函数的负梯度方向对其进行改变的,并且到最后使误差函数收敛于该函数的最小点1.3 BP网络的学习算法BP网络的学习属于有监督学习,需要一组已知目标输出的学习样本集训练时先使用随机值作为权值,修改权值有不同的规则标准的BP神经网络沿着误差性能函数梯度的反向修改权值,原理与LMS算法比较类似,属于最速下降法1.3.1 拟牛顿算法牛顿法是一种基于二阶泰勒级数的快速优化算法其基本方法是 式中 -误差性能函数在当前权值和阀值下的Hessian矩阵(二阶导数),即 牛顿法通常比较梯度法的收敛速度快,但对于前向型神经网络计算Hessian矩阵是很复杂的,付出的代价也很大 有一类基于牛顿法的算法不需要二阶导数,此类方法称为拟牛顿法(或正切法),在算法中的Hessian矩阵用其近似值进行修正,修正值被看成梯度的函数1) BFGS 算法在公开发表的研究成果中,你牛顿法应用最为成功得有Boryden,Fletcher,Goldfard和Shanno修正算法,合称为BFG算法该算法虽然收敛所需的步长通常较少,但在每次迭代过程所需要的计算量和存储空间比变梯度算法都要大,对近似Hessian矩阵必须进行存储,其大小为,这里n网络的链接权和阀值的数量所以对于规模很大的网络用RPROP算法或任何一种梯度算法可能好些;而对于规模较小的网络则用BFGS算法可能更有效2)OSS算法 由于BFGS算法在每次迭代时比变梯度算法需要更多的存储空间和计算量,所以对于正切近似法减少其存储量和计算量是必要的OSS算法试图解决变梯度法和拟牛顿(正切)法之间的矛盾,该算法不必存储全部Hessian矩阵,它假设每一次迭代时与前一次迭代的Hessian矩阵具有一致性,这样做的一个有点是,在新的搜索方向进行计算时不必计算矩阵的逆该算法每次迭代所需要的存储量和计算量介于梯度算法和完全拟牛顿算法之间1.3.2 最速下降BP法最速下降BP算法的BP神经网络,设k为迭代次数,则每一层权值和阀值的修正按下式进行式中第k次迭代各层之间的连接权向量或阀值向量;第k次迭代的神经网络输出误差对各权值或阀值的梯度向量负号表示梯度的反方向,即梯度的最速下降方向;学习效率,在训练时是一常数在MATLAB神经网络工具箱中,其默认值为0.01,可以通过改变训练参数进行设置;第k次迭代的网络输出的总误差性能函数,在MATLAB神经网络工具箱中BP网络误差性能函数默认值为均方误差MSE,以二层BP网络为例,只有一个输入样本时,有 若有n个输入样本 根据公式和各层的传输函数,可以求出第k次迭代总误差曲面的梯度,分别代入式子便可以逐次修正其权值和阀值,并是总的误差向减小的方向变化,直到达到所需要的误差性能为止1.4 BP算法的改进BP算法理论具有依据可靠、推导过程严谨、精度较高、通用性较好等优点,但标准BP算法存在以下缺点:收敛速度缓慢;容易陷入局部极小值;难以确定隐层数和隐层节点个数在实际应用中,BP算法很难胜任,因此出现了很多改进算1.4.1 利用动量法改进BP算法标准BP算法实质上是一种简单的最速下降静态寻优方法,在修正W(K)时,只按照第K步的负梯度方向进行修正,而没有考虑到以前积累的经验,即以前时刻的梯度方向,从而常常使学习过程发生振荡,收敛缓慢动量法权值调整算法的具体做法是:将上一次权值调整量的一部分迭加到按本次误差计算所得的权值调整量上,作为本次的实际权值调整量,即:其中:为动量系数,通常009;学习率,范围在000110之间这种方法所加的动量因子实际上相当于阻尼项,它减小了学习过程中的振荡趋势,从而改善了收敛性动量法降低了网络对于误差曲面局部细节的敏感性,有效的抑制了网络陷入局部极小 1.4.2 自适应调整学习速率标准BP算法收敛速度缓慢的一个重要原因是学习率选择不当,学习率选得太小,收敛太慢;学习率选得太大,则有可能修正过头,导致振荡甚至发散可采用图所示的自适应方法调整学习率 调整的基本指导思想是:在学习收敛的情况下,增大,以缩短学习时间;当偏大致使不能收敛时,要及时减小,直到收敛为止1.4.3 动量-自适应学习速率调整算法采用动量法时,BP算法可以找到更优的解;采用自适应学习速率法时,BP算法可以缩短训练时间将以上两种方法结合起来,就得到动量-自适应学习速率调整算法1.4.4 L-M学习规则L-M(Levenberg-Marquardt)算法比前述几种使用梯度下降法的BP算法要快得多,但对于复杂问题,这种方法需要相当大的存储空间L-M(Levenberg-Marquardt)优化方法的权值调整率选为:其中:e误差向量;J网络误差对权值导数的雅可比(Jacobian)矩阵;标量,当很大时上式接近于梯度法,当很小时上式变成了Gauss-Newton法,在这种方法中,也是自适应调整的1.5 BP神经网络的设计1.5.1 网络的层数 输入层节点数取决于输入向量的维数应用神经网络解决实际问题时,首先应从问题中提炼出一个抽象模型,形成输入空间和输出空间因此,数据的表达方式会影响输入向量的维数大小.例如,如果输入的是64*64的图像,则输入的向量应为图像中所有的像素形成的4096维向量如果待解决的问题是二元函数拟合,则输入向量应为二维向量理论上已证明:具有偏差和至少一个S型隐含层加上一个线性输出层的网络,能够逼近任何有理数增加层数可以更进一步的降低误差,提高精度,但同时也使网络复杂化,从而增加了网络权值的训练时间而误差精度的提高实际上也可以通过增加神经元数目来获得,其训练效果也比增加层数更容易观察和调整.所以一般情况下,应优先考虑增加隐含层中的神经元数.1.5.2 隐含层的神经元数 网络训练精度的提高,可以通过采用一个隐含层,而增加神经元数了的方法来获得这在结构实现上,要比增加隐含层数要简单得多那么究竟选取多少隐含层节点才合适?这在理论上并没有一个明确的规定在具体设计时,比较实际的做法是通过对不同神经元数进行训练对比,然后适当地加上一点余量1),k为样本数,M为隐含层神经元个数,n为输入层神经元个数如iM,规定C=02)M=+a,m和n分别是输出层和输入层的神经元数,a是0.10之间的常量3)M=,n为输入层神经元个数 1.5.3 初始权值的选取 由于系统是非线性的,初始值对于学习是否达到局部最小、是否能够收敛及训练时间的长短关系很大如果初始值太大,使得加权后的输入和n落在了S型激活函数的饱和区,从而导致其导数f (n)非常小,从而使得调节过程几乎停顿下来所以一般总是希望经过初始加权后的每个神经元的输出值都接近于零,这样可以保证每个神经元的权值都能够在它们的S型激活函数变化最大之处进行调节所以,一般取初始权值在(-1,1)之间的随机数 1.5.4 学习速率 学习速率决定每一次循环训练中所产生的权值变化量大的学习速率可能导致系统的不稳定;但小的学习速率导致较长的训练时间,可能收敛很慢,不过能保证网络的误差值不跳出误差表面的低谷而最终趋于最小误差值所以在一般情况下,倾向于选取较小的学习速率以保证系统的稳定性学习速率的选取范围在001-08之间1.6 BP神经网络局限性1.6.1 需要参数多且参数选择没有有效的方法 对于一些复杂问题 ,BP 算法可能要进行几小时甚至更长的时间训练,这主要是由于学习速率太小所造成的标准BP 网络学习过程缓慢,易出现平台,这与学习参数率l r的选取有很大关系当l r较时,权值修改量大,学习速率也快,但可能产生振荡;当l r较小时,虽然学习比较平稳,但速度十分缓慢1.6.2 容易陷入局部最优BP网络易陷入局部最小, 使 BP网络不能以高精度逼近实际系统目前对于这一问题的解决有加入动量项以及其它一些方法BP 算法本质上是以误差平方和为目标函数 , 用梯度法求其最小值的算法于是除非误差平方和函数是正定的, 否则必然产生局部极小点, 当局部极小点产生时 , BP算法所求的就不是解1.6.3 样本依赖性 这主要表现在网络出现的麻痹现象上在网络的训练过程中,如其权值调的过大,可能使得所有的或大部分神经元的加权值偏大,这使得激活函数的输入工作在S型转移函数的饱和区,从而导致其导函数非常小,使得对网络权值的调节过程几乎停顿下来通常为避免这种现象的发生,一是选取较小的初始权值,二是采用较小的学习速率,但又要增加时间训练1.6.4 初始权敏感 对于一些复杂的问题,BP算法可能要进行几个小时甚至更长时间的训练这主要是由于学习速率太小造成的可采用变化的学习速率或自适应的学习速率来加以改进2BP神经网络应用2.1 手算实现二值逻辑异或这个例子中,采用手算实现基于BP网络的异或逻辑训练时采用批量训练的方法,训练算法使用带动量因子的最速下降法在MATLAB中新建脚本文件main_xor.m,输入代码如下:%脚本 main_xor.m%批量训练方式BP网络实现异或逻辑%清理clear all clcrand(seed,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*(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 - out;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*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)gridnRow,nCol=size(errRec);semilogy(1:nCol,errRec,LineWidth,1.5);title(误差曲线);xlabel(迭代次数);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; endendfigure(2)mesh(x,x,z);figure(3)plot(0,1,0,1,*,LineWidth,2);hold onplot(0,1,1,0,O,LineWidth,2);c,h=contour(x,x,z,0.5,b)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建厦门市湖里区产业投资集团有限公司人员招聘2人笔试历年参考题库附带答案详解
- 2025四川绵阳市绵江能源有限公司招聘加油员岗位拟录用人员笔试历年参考题库附带答案详解
- 华润电力招聘面试实战案例分析如何快速融入团队
- 2025年绿色能源风力发电项目投资可行性研究报告及总结分析
- 糖尿病足:护理比治疗更重要
- 教育培训行业招生引流及课程设计攻略
- 江西执法面试题目及答案
- 2025年护理学基础知识考试试题库及答案(共280题)
- 2026年三亚市单招职业适应性考试必刷测试卷及答案解析(名师系列)
- 2026年南昌交通学院单招职业技能考试题库及答案解析(名师系列)
- 校歌活动策划方案范文
- 2025年智能农机应用项目可行性研究报告及总结分析
- DB1309T 319-2025 旱碱麦探墒保播种植技术规程
- 面试邀约话术技巧
- 2025年北京市人力资源市场薪酬水平报告(三季度)
- 《纹必有意》+教学课件-+2025-2026学年鲁教版(五四制)(2024)初中美术六年级上册
- 学堂在线 运动与健康 章节测试答案
- 山西省大同市各县区乡镇行政村村庄村名居民村民委员会明细及行政区划代码
- 2018年浙江省浙江省通用安装工程预算定额
- 多元统计分析及R语言建模(第五版)课件第六七章
- 初中 初二 心理健康 你会感激生活的“暴击”吗
评论
0/150
提交评论