版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、人工神经网络 2009-12 主要内容 基本原理、结构 ?神经网络类型简介 ?BP算法及算例 ?人工神经网络研究的起源 “人脑是如何工作的” ?“ 我们能否模仿人脑的神经系统” ?在寻求这些答案的研究过程中,形成了一个多学科交叉技术领域神经网络 ?生物神经元形状图 神经元 神经元模型 ?神经元是人工神经网络的基本处理单元,它一般是一个多输入/多输出的非线性元件。神经元输出除受输入信号的影响之外,同时也受到神经元内部其他因素的影响,所以在人工神经元的建模中,常常还加有一个额外输入信号,称为偏差(bias),有时也称为阀值或门限值。 神经元结构 权值(weights) ?阀值(threshold)
2、 ?作用函数(activated transfer function )的基本作用 1、控制输入对输出的激活作用; 2、对输入、输出进行函数转换; 3、将可能无限域的输入变换成指定的有限范围内的输出。 ?、2、 几种常用的作用函数 阀值型(硬限制型) 线性型 S型函数(Sigmoid) 辐射基函数 1 3 41、阀值型(硬限制型) W*P?b?0? 1 A?f(W*P?b)?W*P?b?0? 0 W *P?b?0? 1 A?f(W *P?b )?W *P?b?0? ?1 2、线性型 a) 全线性 A?f(W*P?b)?W*P?b b) 正线性 A?f( W *P?b )? 0 W *P?b?0
3、? n W *P?b?03、S型函数(Sigmoid) -na) 对数正切 y=1/(e +1) b)双曲正切 y=tanh(n) 4.辐射基函数 a) 高斯函数 b)三角波函数 主要内容 基本原理、结构 ?神经网络类型简介 ?BP算法及算例 ?人工神经网络的分类 按连接的基本形式分为 ?前向网络(feed-forward Networks ) ?回归网络(recurrent Networks ) ?互联网络(全互连与局部互连) ?也可是以上几种形式的组合 前向网络 前向网络的特点 1. 神经元分层排列,可多层2. 同一层间无连接 3. 方向由入到出 回归网络 全反馈结构图 Inner RNN
4、结构图 回归网络特点 ? 2. ? Output 与 Input相连(全反馈) 1. 内部前向 输出反馈到输入 Inner recurrent 特点:特点:层间元互相连接互联网络 结构图 互联网络特点:每个元都与其它元相连 例: Hopfield Boltzmann机 主要内容 基本原理、结构 ?神经网络类型简介 ?BP算法及算例 ?BP网络 ?在人工神经网络的实际工程应用中,特别在自动控制领域中,大多数神经网络模型是采用BP网络或它的变化形式,它也是前向网络的核心部分。 BP网络模型 输入输出关系 ?输入层-隐含层 a 1 = tansig (IW 1,1 p 1 +b 1 ) tansig
5、(x)=tanh(x)=(ex-e-x)/(ex+e-x) ?隐含层-输出 a 2 = purelin (LW 2,1 a 1 +b 2 ) 输入层神经元个数 隐含层神经元个数 输出层神经元个数 n n1 s2 ?学习(训练) ?输入q组样本 p?期望输出 T1,p2,.,pq 1,T? a22,.,Tq, 网络输出?解决方法 误差最小1,a2 2,.,a2q?实质为一个优化问题 ?思路: 梯度法(gradient) ?找出误差与加权系数的关系 ?得到加权系数改变的规律 piRn T Rs2 a2Rs2 MATLAB函数 首先建立一个前馈网络 net=newff(PR,5 1,tansig p
6、urelin,traingd); 计算输出: y1=sim(net,P); PRR个输入中各样本输入数据的最小和最大值构成的R*2矩阵 绘图: plot(P,T,*); 训练: net,tr=train(net,P,T); 训练函数有很多种,如:traingd,traingdm,traingdx,trainlm 在训练之前要对网络进行初始化,并设置好训练参数。 初始化: net.iw1,1=W10; net.b1=B10; net.lw2,1=W20; net.b2=B20; 参数设置: net.trainParam.epochs=100; % 最大训练次数 net.trainParam.go
7、al=0.01; % 训练所要达到的精度 net.trainParam.show=10; % 在训练过程中显示的频率 net.trainParam.lr=0.1; % 学习速率 例1函数逼近 应用两层BP网络来完成函数逼近的任务,其中隐含的神经元个数选为 5个。网络结构如图所示。 解 首先定义输入样本和目标矢量 P = -1:.1:1; T = -.9602 -.5770 -.0729 .3771 .6405 .6600 .4609 . .1336 -.2013 -.4344 -.5000 -.3930 -.1647 .0988 . .3072 .3960 .3449 .1816 -.0312
8、 -.2189 -.3201; 上述数据的图形如图所示。 %利用函数newff建立一个bp神经元网络 net=newff(minmax(P),5 1,tansig purelin,traingd,learngd,sse); %然后利用函数train对网络进行训练 net.trainParam.show=10; net.trainParam.epochs=8000; net.trainParam.goal=0.02; net.trainParam.lr=0.01; net,tr=train(net,P,T); 图3至图6给出了网络输出值随训练次数的增加而变化的过程。图7给出了454次训练后的最终
9、网络结果,以及网络的误差纪录。 同时还可以用函数sim来计算网络的输出 a1=sim(net,P) 3 训练100次的结果 5 训练300次的结果 4 训练200次的结果 6 训练400次的结果 图图 图图 图7 训练结束后的网络输出与误差结果 BP网络设计问题 在进行BP网络的设计时,一般应从网络的层数,每层中的神经元个数和激活函数、初始值以及学习速率等几个方面来进行考虑。下面讨论各自的选取原则。 1.网络的层数; 2.隐含层的神经元数; 3.初始权值的选取; 4.学习速率; 网络的层数 理论上已经证明:具有偏差和至少一个 S型隐含层加上一个线性输出层的网络,能够逼近任何有理函数。 增加层数
10、可以进一步的降低误差,提高精度,但同时也使网络复杂化。 隐含层神经元数 网络训练精度的提高,可以通过采用一个隐含层,而增加其神经元数的方法来获得,这在结构实现上,要比增加更多的隐含层要简单的多。 初始权值的选取 一般取初始权值在(-1,1)之间的随机数。 另外,威得罗等人在分析了两层网络是如何对一个函数进行训练后,提出一种选定初r始权值的策略:选择权值的量级为 s1,其中s1为第一层神经元数,r为输入个数。在MATLAB工具箱中,统一用函数 init.m对网络进行初始化。 学习速率 学习速率决定每一次循环训练中所产生的权值变化量。大的学习速率可能导致系统的不稳定;但小的学习速率导致较长的训练时
11、间,可能收敛很慢,不过能保证网络的误差值不跳出误差表面的低谷而最终趋于误差最小值。所以一般情况下倾向于选取较小的学习速率以保证系统的稳定性。 学习速率的选取范围在 0.010.8之间。 BP算法的限制与不足 (1)需要较长的训练时间 这主要是由于学习速率太小所造成的。可采用变化的学习速率或自适应的学习速率来加以改进。 (2)完全不能训练 这主要表现在网络的麻痹上。通常为了避免这种情况的产生,一是选取较小的初始权值,二是采用较小的学习速率。 (3)局部最小值 采用多层网络或较多的神经元,有可能得到更好的结果。 BP算法的改进 BP算法改进的主要目标是为了加快训练速度,避免陷入局部极小值和改善其它
12、能力。讨论以下3种改进方法的有关内容。 (1)带动量因子算法; (2)自适应学习速率; (3)改变学习速率的方法; 带动量因子算法 该方法是在反向传播法的基础上在每一个权值的变化上加上一项正比于前次权值变化的值,并根据反向传播法来产生新的权值变化。带有附加动量因子的权值调节公式为: ?wij(k?1 )?(1?mc )?ipj?mc?wij(k) ?b(k?1 )?(1?mc )?mc?b(k)iii 其中k为训练次数,mc为动量因子,一般取 0.95左右。 附加动量法的实质是将最后一次权值变化的 影响,通过一个动量因子来传递。以此方式,当 增加动量项后,促使权值的调节向着误差曲面底 部的平均
13、方向变化,当网络权值进入误差曲面底 ? 部的平坦区时,i将变得很小,于是, ?wij(k?1 )? ?wij(k) ?wij(k)?0的出现 ,有助于使网络从误从而防止了 差曲面的局部极小值中跳出。 在MATLAB工具箱中,带有动量因子的权值修正法是用函数learngdm.m来实现的。对网络进行训练可用函数traingdm.m。我们可以用函数newff.m建立一个用附加动量法训练的 BP网络: net=newff(minmax(P),5 1,tansig purelin, traingdm, learngdm, sse ); 自适应学习速率 对于一个特定的问题,要选择适当的学习速率并不是一件容
14、易的事情。对训练开始初期功效很好地学习速率,不见得对后来的训练合适。为了解决值一问题,人们自然会想到在训练过程中自动调整学习速率。 下面给出一个自适应学习速率的调整公式: 1 .05?(k) SSE (k?1 )?SSE (k)? ?(k?1 )?0 .7?(K) SSE (k?1 )?1 .04 SSE (k)? ?(K) 其它? 初始学习速率?(0)的选取范围可以有很大的随意性。 MATLAB 工具箱中带有自适应学习速率进行反向传播训练的函数为:traingda.m。使用方法为: net,tr=traingda(net,P,T,Ai,Q,TS,VV) 或者,先设置 net.trainFcn
15、=traingda 然后进行训练 net=train(net,P,T); 例例2 沿用例例1中的输入矢量和目标矢量。 同其他训练函数的调用方法一样,这个训练过程函数的应用非常简单。最后给出了本例的 MATLAB程序。 仅训练了121次就达到了误差目标 0.02的目的。 左图给出了学习速率在训练过程中的纪录。误差平方和的记录在右图中。 训练中的学习速率 训练中的误差纪录 从中可以看出:在训练的初始阶段,学习速率是以直线形式上升。当接近误差最小值时,学习速率又自动的下降。注意误差曲面有少许的波动。 可以将动量法和自适应学习速率结合起来以利用两方面的优点。MATLAB工具箱中traingdx.m函数
16、可以实现此功能。其调用方式和函数traingda.m的调用方式一样。 应用实例 实验 正交实验方法获取建模数据 ?建模基于实验数据的经验模型 根据实验数据建立神经网络模型 ?优化基于上一步得到的稳态模型求得最佳控制变量 ?神经网络模型实现 给煤量偏置 一次风量 二次风量 烟气含氧量 煤质情况 负荷 锅炉 模型 (人工神经网络) 锅炉效率 NOx 应用BP网络建立锅炉运行特性模型:单个模型,以NOx为例 负荷 煤的挥发分 煤的热值 一次风量 顶层二次风量中层二次风量 底层二次风量 给煤量偏置 磨煤机风温 烟气含氧量 炉膛平均温度 NOx 应用BP网络建立锅炉运行特性模型:学习样本及其来源,以NO
17、x为例 TRN 训练集 TST 测试集 预处理归一化 网络结构设计 网络训练 ?应用BP网络建立锅炉运行特性模型:建模结果,以NOx为例 目标值 神经网络输出 结果分析 重复训练50次,由于初值选择的随机性,结果有较大波动,选择其中较好的。 ?过拟合:训练数据拟合很好,但对于未经训练的数据则得不到满意的结果,即泛化能力差 ?提高网络泛化能力的方法 初期中止 设置测试集,使得训练误差和测试误差曲线同时下降 ?减小网络规模 在满足训练误差要求的前提下,尽量少的隐层数 ?NN的应用 1)系统辨识 2)系统控制 3)优化计算 4)故障诊断及容错控制 %附例1程序 % Example % clf; fi
18、gure(gcf) echo on %NEWFF 建立一个BP网络 %TRAIN 对BP网络进行训练 %SIM 对BP网络进行仿真 pause P = -1:.1:1; T = -.9602 -.5770 -.0729 .3771 .6405 .6600 .4609 . .1336 -.2013 -.4344 -.5000 -.3930 -.1647 .0988 . .3072 .3960 .3449 .1816 -.0312 -.2189 -.3201; plot(P,T,+ ); title(Training Vectors); xlabel(Input Vector P ); ylabe
19、l(Target Vector T ); pause net=newff(minmax(P),5 1, tansig purelin, traingd, learngd , sse); echo off k = pickic; if k = 2 net.iw1,1 = 3.5000; 3.5000; 3.5000; 3.5000; 3.5000; net.b1 = -2.8562; 1.0774; -0.5880; 1.4083; 2.8722; net.lw2,1 = 0.2622 -0.2375 -0.4525 0.2361 -0.1718; net.b2 = 0.1326; end ne
20、t.iw1,1 net.b1 net.lw2,1 net.b2 pause echo on me=8000; net.trainParam.show=10; net.trainParam.goal=0.02; net.trainParam.lr=0.01; A=sim(net,P); sse=sumsqr(T-A); for i=1:me/100 if ssenet.trainparam.goal,i=i-1; break , end net.trainParam.epochs=100; net,tr=train(net,P,T); trp(1+100*(i-1):(max(tr.epoch)
21、+100*(i-1)=tr.perf(1:max(tr.epoch); A=sim(net,P); sse=sumsqr(T-A); plot(P,T,+ ); hold on plot(P,A) hold off pause end message=sprintf(Traingd, Epoch %g/%g, SSE %gn,me); fprintf(message,(max(tr.epoch)+100*(i-1),sse) plot(trp) i,j=size(trp); hold on plot(1:j,net.trainParam.goal,r- ) hold off title(Error Signal) xlabel(epoch) ylabel(Error) p = 0.5; a = sim(net,p) echo off %附例2程序 %NEWFF 建立一个BP网络 %TRAIN 对网络进行训练 %SIM 对网络进行仿真 P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 实木及实木复合地板备料工安全生产能力知识考核试卷含答案
- 加气混凝土制品工岗前基础应用考核试卷含答案
- 水力发电运行值班员安全风险知识考核试卷含答案
- 2025年水分湿度传感器合作协议书
- 2025 小学一年级科学下册认识水果的种子课件
- 狍子介绍教学课件
- 2026年航空发动机高温合金项目建议书
- 2025年江苏省无锡市中考地理真题卷含答案解析
- 2025年环保宣传教育常识知识考察试题及答案解析
- 2025年上半年教师资格证中学《综合素质》考试真题及答案
- 2025年国防科工局机关公开遴选公务员笔试模拟题及答案
- 2024-2025学年山东省济南市天桥区八年级(上)期末语文试卷(含答案解析)
- (高清版)DB44∕T 724-2010 《广州市房屋安全鉴定操作技术规程》
- 2025职业健康培训测试题(+答案)
- 供货流程管控方案
- 《实践论》《矛盾论》导读课件
- 中试基地运营管理制度
- 老年病康复训练治疗讲课件
- DB4201-T 617-2020 武汉市架空管线容貌管理技术规范
- 药品追溯码管理制度
- 脚手架国际化标准下的发展趋势
评论
0/150
提交评论