BP神经网络的改进和MATLAB实现培训课件_第1页
BP神经网络的改进和MATLAB实现培训课件_第2页
BP神经网络的改进和MATLAB实现培训课件_第3页
BP神经网络的改进和MATLAB实现培训课件_第4页
BP神经网络的改进和MATLAB实现培训课件_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

BP神经网络的改进和MATLAB实现1:BP神经网络的概述2:BP神经网络的标准训练学习3:在MATLAB软件上运行几个程序4:基于Levenberg-Marquardt算法的学习优 化(阻尼最小二乘法)5:基于蚁群算法的初始权值优化6:经过4和5优化后的仿真试验(发动机 性能趋势分析和故障诊断中的应用)7:总结2BP神经网络的改进和MATLAB实现多元函数图示一元函数X.R二元函数xyoR.fD.f.三元函数xyzo.R.fXXI矩形的面积S=x×y长方体体积V=x×y×z3BP神经网络的改进和MATLAB实现多元函数图示xR..4BP神经网络的改进和MATLAB实现多元函数及其图形多元函数及其图形5BP神经网络的改进和MATLAB实现6BP神经网络的改进和MATLAB实现BP神经网络模型激活函数必须处处可导一般都使用S型函数使用S型激活函数时BP网络输入与输出关系输入输出7BP神经网络的改进和MATLAB实现BP神经网络模型输出的导数根据S型激活函数的图形可知,对神经网络进行训练,应该将net的值尽量控制在收敛比较快的范围内

8BP神经网络的改进和MATLAB实现9BP神经网络的改进和MATLAB实现网络结构输入层有n个神经元,隐含层有p个神经元,输出层有q个神经元变量定义输入向量;隐含层输入向量;隐含层输出向量;输出层输入向量;输出层输出向量;期望输出向量;10BP神经网络的改进和MATLAB实现输入层与中间层的连接权值:隐含层与输出层的连接权值:隐含层各神经元的阈值:输出层各神经元的阈值:样本数据个数:激活函数:误差函数:11BP神经网络的改进和MATLAB实现第一步,网络初始化给各连接权值分别赋一个区间(-1,1)内的随机数,设定误差函数e,给定计算精度值和最大学习次数M。第二步,随机选取第个输入样本及对应期望输出12BP神经网络的改进和MATLAB实现第三步,计算隐含层各神经元的输入和输出13BP神经网络的改进和MATLAB实现第四步,利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的偏导数 。14BP神经网络的改进和MATLAB实现第五步,利用隐含层到输出层的连接权值、输出层的 和隐含层的输出计算误差函数对隐含层各神经元的偏导数 15BP神经网络的改进和MATLAB实现16BP神经网络的改进和MATLAB实现第六步,利用输出层各神经元的 和隐含层各神经元的输出来修正连接权值17BP神经网络的改进和MATLAB实现第七步,利用隐含层各神经元的和输入层各神经元的输入修正连接权。18BP神经网络的改进和MATLAB实现第八步,计算全局误差第九步,判断网络误差是否满足要求。当误差达到预设精度或学习次数大于设定的最大次数,则结束算法。否则,选取下一个学习样本及对应的期望输出,返回到第三步,进入下一轮学习。19BP神经网络的改进和MATLAB实现BP算法直观解释情况1的直观表达当误差对权值的偏导数大于零时,权值调整量为负,实际输出大于期望输出,权值向减少方向调整,使得实际输出与期望输出的差减少。whoe>0,此时Δwho<020BP神经网络的改进和MATLAB实现BP算法直解释情况2的直观表达当误差对权值的偏导数小于零时,权值调整量为正,实际输出少于期望输出,权值向增大方向调整,使得实际输出与期望输出的差减少。e<0,此时Δwho>0who21BP神经网络的改进和MATLAB实现梯度下降法

22BP神经网络的改进和MATLAB实现一、无约束优化的古典分析法无约束优化问题可表示为minf

(x1,x2,…,xn)

xi

R,i=1,2,…,n如果令

x=(x1,x2,…,xn)T,则无约束优化问题为minf

(x)

x

Rn23BP神经网络的改进和MATLAB实现关于

f

(x):当

x

=(x)

时,f

(x)

是一条曲线;当

x

=(x1,x2)T

时,f

(x1,x2)

是一个曲面;当

x

=(x1,x2,x3)T

时,f

(x1,x2,x3)

是一个体密度(或类位势函数);当

x

=(x1,x2,…,xn)T

时,f

(x1,x2,…,xn)

是一个超曲面。24BP神经网络的改进和MATLAB实现

设函数

f

(x)=f

(x1,...,xn)

对所有变元都有一阶与二阶连续偏导数,则

n

个一阶偏导数构成的

n

维列向量为

f.(x)

的梯度,记作

②称满足

f

(x0)

=

0

的点

x0为函数f

(x)

的驻点或临界点。25BP神经网络的改进和MATLAB实现

n2个二阶偏导数构成的

n

阶对称矩阵为函数

f

(x)

的海森(Hessian)矩阵,记为

H(x)或2f

(x):26BP神经网络的改进和MATLAB实现综上所述,多元函数

f

(x)=f

(x1,x2,…,xn)

的一阶导数是它的梯度

f.(x),二阶导数是它的

Hessian

矩阵

2f

(x)。在最优化方法的讨论中这是两个常用的概念。27BP神经网络的改进和MATLAB实现

定理

(最优性条件)设

n

元函数

y

=

f

(x)

对所有变元具有一阶及二阶连续偏导数,则

x0是

f

(x)

极小点的充分条件为

f

(x0)=0,2f

(x0)>0(正定)而

x0是f

(x)

极大点的充分条件为

f

(x0)=0,2f

(x0)<0(负定)

事实上,如果设

x=(x1,…,xn)T,则利用多元函数的泰勒展开式,我们有28BP神经网络的改进和MATLAB实现其中

R

x

的高阶无穷小,即

R=o||

x

||2。

于是,当

x0为函数

f.(x)

的驻点时可以得到于是,当

xi(i=1,…,n)足够小时,上式右端的正负号完全由二次型

xT

2f

(x0)x

决定,从而完全由

Hessian

矩阵2f

(x)的正(负)定性决定。

注记:微积分中求一元函数和二元函数极值的方法,是这个定理的特例。29BP神经网络的改进和MATLAB实现二、无约束优化的梯度下降法对于无约束优化问题minf(x)(1)

x=(x1,x2,…,xn)T

Rn如果f

(x)

可微,根据古典分析的方法,可利用

f

(x)=0(2)求驻点,然后再利用

Hessian

矩阵

2f.(x)

来判定这些驻点是否极小值点,从而求出无约束优化问题(1)的最优解。30BP神经网络的改进和MATLAB实现但是,用古典分析的方法求解无约束优化问题(1)实际上是行不通的,这是由于:(1)实际应用中相当数量的函数

f.(x)

不具有解析性,故非线性方程组

f

(x)

=

0

无法形成;(2)即使形成了方程组

f

(x)

=

0,由于它是一个

n

元非线性方程组,因而求它的解与解决原问题一样地困难;(3)即使求得了

f

(x)

=

0

的解

x*,但由于最优性条件不被满足或者难于验证,因此仍无法确定

x*

是否为(1)的解。31BP神经网络的改进和MATLAB实现

例如,有些曲面有许多甚至无穷多极大值和极小值,则无法验证最优性条件。32BP神经网络的改进和MATLAB实现鉴于上述种种原因,对于(1)的求解,通常采用一些比较切合实际、行之有效的数值算法。最常用的是迭代算法(搜索算法)。

迭代算法的基本思想是:从一个选定的初始点

x0

Rn出发,按照某一特定的迭代规则产生一个点列

{xk},使得当

{xk}

是有穷点列时,其最后一个点是(1)的最优解;当

{xk}

是无穷点列时,它有极限点,并且其极限点是(1)的最优解。33BP神经网络的改进和MATLAB实现

xk

Rn是某迭代算法的第

k

轮迭代点,而xk+1

Rn是第

k+1

轮迭代点,记xk+1=xk

+

kpk这里

k

R称为步长,pk

Rn称为搜索方向。在

k和

pk确定之后,由

xk

Rn就可以确定

xk+1

Rn。各种不同迭代算法的差别,在于选择

k

pk(特别是

pk)的方法不同。34BP神经网络的改进和MATLAB实现使用最广泛的一类是下降算法,它每迭代一次都是目标函数值有所下降,即

f

(xk+1)

<f

(xk)。在下降算法中(1)搜索方向

pk有多种选择方式,不同的选择形成不同的下降算法,如梯度下降法(也叫最速下降法),共轭梯度法,牛顿法,阻尼牛顿法,拟牛顿法等。但无论哪种下降法,pk的选择都有一个一般的原则:既要使它尽可能地指向极小值点,又不至于花费太大的使计算代价。35BP神经网络的改进和MATLAB实现(2)步长的选择也有多种不同方式,最常用的方式是寻找最优步长,即求单变量极值问题的最优解

k

R:36BP神经网络的改进和MATLAB实现

梯度下降法(最速下降法)早在

1847

年,法国数学家

Cauchy

就曾提出这样的问题:从任一给定点

x0

Rn出发,沿着哪个方向

f

(x)

的函数值下降最快?这个问题从理论上已经得到解决,就是沿着在该点的负梯度方向,f

(x)

的函数值下降最快。这就是梯度下降法的理论依据。37BP神经网络的改进和MATLAB实现

梯度下降法的迭代步骤1

给定初始点

x0

Rn,允许误差

>

0,并令k:=0;2计算pk

=f(xk);

3检验是否满足收敛性判别准则:||

pk||

若满足判别准则,则停止迭代,得到点

x*

xk,否则进行

4;38BP神经网络的改进和MATLAB实现4

单变量极值问题的最优解

k

R:5令xk+1=xk

+

kpk;k:=k+1返回

2。39BP神经网络的改进和MATLAB实现

用梯度下降法求解minf

(x)=2x12+

x22。

解(1)取初始点

x0

=

(1,

1)T,计算得

p0=

f

(x0)=(4x01,

2x02)T|x1=1,x2=1

=

(4,2)T由于所以f

(x0+

p0)=2(1

4

)2+(1

2

)2。再求解单变量极值问题:40BP神经网络的改进和MATLAB实现得

0

=

5/18,于是x1=

x0+

0

p0=(1/9,4/9)T(2)计算得p1=

f(x1)=(4x11

2x12)|x11=1/9,x12=4/9

=(4/9,8/9)T所以41BP神经网络的改进和MATLAB实现故再求解单变量极值问题:得

1

=5/12,于是x2=

x1+

1

p1=(2/27,2/27)T(3)计算得

p2=

f

(x2)=(8/27,4/27),......如此继续下去,直到满足收敛准则为止。42BP神经网络的改进和MATLAB实现梯度下降法是求解无约束优化问题的最基本的算法,它在最优化方法中占有重要地位。梯度下降法的优点是计算量小,存储变量少,对初始点要求不高。缺点是:

f.(x)

仅仅反映了函数在点

x

处的局部性质,对局部来说是最速的下降方向,但对整体求解过程并不一定使函数值下降的最快;另外,梯度下降法收敛速度慢,特别是在极小值点附近。梯度下降法适用于寻优过程的前期迭代或作为间插步骤,当接近极值点时宜选用其它收敛快的算法。44BP神经网络的改进和MATLAB实现在MATLAB上实现的几个例子45BP神经网络的改进和MATLAB实现属于解析型的算法有:①梯度法:又称最速下降法。这是早期的解析法,收敛速度较慢。②牛顿法:收敛速度快,但不稳定,计算也较困难。③共轭梯度法:收敛较快,效果较好。④变尺度法:这是一类效率较高的方法。等等46BP神经网络的改进和MATLAB实现BP网络的训练函数训练方法训练函数梯度下降法traingd有动量的梯度下降法traingdm自适应lr梯度下降法traingda自适应lr动量梯度下降法traingdx弹性梯度下降法trainrpFletcher-Reeves共轭梯度法traincgfPloak-Ribiere共轭梯度法traincgpPowell-Beale共轭梯度法traincgb量化共轭梯度法trainscg拟牛顿算法trainbfg一步正割算法trainossLevenberg-Marquardttrainlm47BP神经网络的改进和MATLAB实现例一:利用三层BP神经网络来完成非线性函数的逼近任务,其中隐层神经元个数为五个。样本数据:输入X输出D输入X输出D输入X输出D-1.0000-0.9602-0.30000.13360.40000.3072-0.9000-0.5770-0.2000-0.20130.50000.3960-0.8000-0.0729-0.1000-0.43440.60000.3449-0.70000.37710-0.50000.70000.1816-0.60000.64050.1000-0.39300.8000-0.3120-0.50000.66000.2000-0.16470.9000-0.2189-0.40000.46090.3000-0.09881.0000-0.320148BP神经网络的改进和MATLAB实现例二利用三层BP神经网络来完成非线性函数的逼近任务,其中隐层神经元个数为五个。样本数据:输入X输出D输入X输出D输入X输出D0044821153932262104337149BP神经网络的改进和MATLAB实现些论文对BP神经网络的训练学习过程进行改进用LM(Levenberg-Marquardt)算法对BP神经网络的训练学习进行改进。它是使用最广泛的非线性最小二乘算法,它是利用梯度求最小(大)值的算法,形象的说,属于“爬山”法的一种。它同时具有梯度法和牛顿法的优点。当λ很小时,步长等于牛顿法步长,当λ很大时,步长约等于梯度下降法的步长。

这个λ的变动有时候像阻尼运动一样,所以LM算法又叫阻尼最小二乘法50BP神经网络的改进和MATLAB实现牛顿法的几何意义xyx*x0x

1x

2牛顿法也称为切线法51BP神经网络的改进和MATLAB实现基本思想:在极小点附近用二阶Taylor多项式近似目标函数,进而求出极小点的估计值。52BP神经网络的改进和MATLAB实现53BP神经网络的改进和MATLAB实现

温馨提示

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

评论

0/150

提交评论