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

下载本文档

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

文档简介

改进BP神经网络与MATLAB实现江西师范大学2012 6 11 1 BP神经网络的概述2 BP神经网络的标准训练学习3 在MATLAB软件上运行几个程序4 基于Levenberg Marquardt算法的学习优化 阻尼最小二乘法 5 基于蚁群算法的初始权值优化6 经过4和5优化后的仿真试验 发动机性能趋势分析和故障诊断中的应用 7 总结 多元函数图示 一元函数 X R 二元函数 x y o R f D f 三元函数 x y z o R f X X I 矩形的面积S x y 长方体体积V x y z 多元函数图示 x R 多元函数及其图形 多元函数及其图形 BP神经网络模型 激活函数必须处处可导一般都使用S型函数使用S型激活函数时BP网络输入与输出关系输入输出 BP神经网络模型 输出的导数 根据S型激活函数的图形可知 对神经网络进行训练 应该将net的值尽量控制在收敛比较快的范围内 网络结构输入层有n个神经元 隐含层有p个神经元 输出层有q个神经元变量定义输入向量 隐含层输入向量 隐含层输出向量 输出层输入向量 输出层输出向量 期望输出向量 输入层与中间层的连接权值 隐含层与输出层的连接权值 隐含层各神经元的阈值 输出层各神经元的阈值 样本数据个数 激活函数 误差函数 第一步 网络初始化给各连接权值分别赋一个区间 1 1 内的随机数 设定误差函数e 给定计算精度值和最大学习次数M 第二步 随机选取第个输入样本及对应期望输出 第三步 计算隐含层各神经元的输入和输出 第四步 利用网络期望输出和实际输出 计算误差函数对输出层的各神经元的偏导数 第五步 利用隐含层到输出层的连接权值 输出层的和隐含层的输出计算误差函数对隐含层各神经元的偏导数 第六步 利用输出层各神经元的和隐含层各神经元的输出来修正连接权值 第七步 利用隐含层各神经元的和输入层各神经元的输入修正连接权 第八步 计算全局误差第九步 判断网络误差是否满足要求 当误差达到预设精度或学习次数大于设定的最大次数 则结束算法 否则 选取下一个学习样本及对应的期望输出 返回到第三步 进入下一轮学习 BP算法直观解释情况1的直观表达当误差对权值的偏导数大于零时 权值调整量为负 实际输出大于期望输出 权值向减少方向调整 使得实际输出与期望输出的差减少 BP算法直解释情况2的直观表达当误差对权值的偏导数小于零时 权值调整量为正 实际输出少于期望输出 权值向增大方向调整 使得实际输出与期望输出的差减少 梯度下降法 一 无约束优化的古典分析法无约束优化问题可表示为minf x1 x2 xn xi R i 1 2 n如果令x x1 x2 xn T 则无约束优化问题为minf x x Rn 关于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 是一个超曲面 设函数f x f x1 xn 对所有变元都有一阶与二阶连续偏导数 则 称n个一阶偏导数构成的n维列向量为f x 的梯度 记作 称满足 f x0 0的点x0为函数f x 的驻点或临界点 称n2个二阶偏导数构成的n阶对称矩阵为函数f x 的海森 Hessian 矩阵 记为H x 或 2f x 综上所述 多元函数f x f x1 x2 xn 的一阶导数是它的梯度 f x 二阶导数是它的Hessian矩阵 2f x 在最优化方法的讨论中这是两个常用的概念 定理 最优性条件 设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 则利用多元函数的泰勒展开式 我们有 其中R为 x的高阶无穷小 即R o x 2 于是 当x0为函数f x 的驻点时可以得到于是 当 xi i 1 n 足够小时 上式右端的正负号完全由二次型 xT 2f x0 x决定 从而完全由Hessian矩阵 2f x 的正 负 定性决定 注记 微积分中求一元函数和二元函数极值的方法 是这个定理的特例 二 无约束优化的梯度下降法对于无约束优化问题minf x 1 x x1 x2 xn T Rn如果f x 可微 根据古典分析的方法 可利用 f x 0 2 求驻点 然后再利用Hessian矩阵 2f x 来判定这些驻点是否极小值点 从而求出无约束优化问题 1 的最优解 但是 用古典分析的方法求解无约束优化问题 1 实际上是行不通的 这是由于 1 实际应用中相当数量的函数f x 不具有解析性 故非线性方程组 f x 0无法形成 2 即使形成了方程组 f x 0 由于它是一个n元非线性方程组 因而求它的解与解决原问题一样地困难 3 即使求得了 f x 0的解x 但由于最优性条件不被满足或者难于验证 因此仍无法确定x 是否为 1 的解 例如 有些曲面有许多甚至无穷多极大值和极小值 则无法验证最优性条件 鉴于上述种种原因 对于 1 的求解 通常采用一些比较切合实际 行之有效的数值算法 最常用的是迭代算法 搜索算法 迭代算法的基本思想是 从一个选定的初始点x0 Rn出发 按照某一特定的迭代规则产生一个点列 xk 使得当 xk 是有穷点列时 其最后一个点是 1 的最优解 当 xk 是无穷点列时 它有极限点 并且其极限点是 1 的最优解 设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 的方法不同 使用最广泛的一类是下降算法 它每迭代一次都是目标函数值有所下降 即f xk 1 f xk 在下降算法中 1 搜索方向pk有多种选择方式 不同的选择形成不同的下降算法 如梯度下降法 也叫最速下降法 共轭梯度法 牛顿法 阻尼牛顿法 拟牛顿法等 但无论哪种下降法 pk的选择都有一个一般的原则 既要使它尽可能地指向极小值点 又不至于花费太大的使计算代价 2 步长的选择也有多种不同方式 最常用的方式是寻找最优步长 即求单变量极值问题的最优解 k R 梯度下降法 最速下降法 早在1847年 法国数学家Cauchy就曾提出这样的问题 从任一给定点x0 Rn出发 沿着哪个方向f x 的函数值下降最快 这个问题从理论上已经得到解决 就是沿着在该点的负梯度方向 f x 的函数值下降最快 这就是梯度下降法的理论依据 梯度下降法的迭代步骤1 给定初始点x0 Rn 允许误差 0 并令k 0 2 计算pk f xk 3 检验是否满足收敛性判别准则 pk 若满足判别准则 则停止迭代 得到点x xk 否则进行4 4 单变量极值问题的最优解 k R 5 令xk 1 xk kpk k k 1返回2 例用梯度下降法求解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 再求解单变量极值问题 得 0 5 18 于是x1 x0 0p0 1 9 4 9 T 2 计算得p1 f x1 4x11 2x12 x11 1 9 x12 4 9 4 9 8 9 T所以 故再求解单变量极值问题 得 1 5 12 于是x2 x1 1p1 2 27 2 27 T 3 计算得p2 f x2 8 27 4 27 如此继续下去 直到满足收敛准则为止 该问题的最优解为x 0 1 T f x 0 如图所示 梯度下降法是求解无约束优化问题的最基本的算法 它在最优化方法中占有重要地位 梯度下降法的优点是计算量小 存储变量少 对初始点要求不高 缺点是 f x 仅仅反映了函数在点x处的局部性质 对局部来说是最速的下降方向 但对整体求解过程并不一定使函数值下降的最快 另外 梯度下降法收敛速度慢 特别是在极小值点附近 梯度下降法适用于寻优过程的前期迭代或作为间插步骤 当接近极值点时宜选用其它收敛快的算法 在MATLAB上实现的几个例子 属于解析型的算法有 梯度法 又称最速下降法 这是早期的解析法 收敛速度较慢 牛顿法 收敛速度快 但不稳定 计算也较困难 共轭梯度法 收敛较快 效果较好 变尺度法 这是一类效率较高的方法 等等 BP网络的训练函数 例一 利用三层BP神经网络来完成非线性函数的逼近任务 其中隐层神经元个数为五个 样本数据 例二利用三层BP神经网络来完成非线性函数的逼近任务 其中隐层神经元个数为五个 样本数据 些论文对BP神经网络的训练学习过程进行改进 用LM Levenberg Marquardt 算法对BP神经网络的训练学习进行改进 它是使用最广泛的非线性最小二乘算法 它是利用梯度求最小 大 值的算法 形象的说 属于 爬山 法的一种 它同时具有梯度法和牛顿法的优点 当 很小时 步长等于牛顿法步长 当 很大时 步长约等于梯度下降法的步长 这个 的变动有时候像阻尼运动一样 所以LM算法又叫阻尼最小二乘法 牛顿法的几何意义 x1 x2 牛顿法也称为切线法 基本思想 在极小点附近用二阶Taylor多项式近似目标函数 进而求出极小点的估计值 雅克比矩阵 雅克比矩阵的定义很广泛 只要是向量间微积分运算过程中所涉及的包含偏微粉的行列式都可以叫雅克比矩阵 如果说的更精确点的话 雅克比矩阵可以认为是两个向量空间中对应的映射关系 想要了解雅克比矩阵首先要了解两个向量空间的关系 及将初始向量空间的基矢量表示为末尾向量空间的基矢量的函数 然后通过求导既可以知道雅克比矩阵的具体形式了 基于蚁群算法神经网络中权值和阈值的初始化 仿真试验 收敛速度问题局部极小点问题逃离 避开局部极小点 修改W V的初值并不是总有效 逃离统计方法 Wasserman 1986 将Cauchy训练与BP算法结合起来 可以在保证训练速度不被降低的情况下 找到全局极小点 23 04 2020 57 网络瘫痪问题在训练中 权可能变得很大 这会使神经元的网络输入变得很大 从而又使得其激活函数的导函数在此点上的取值很小 根据相应式子 此时的训练步长会变得非常小 进而将导致训练速度降得非常低 最终导致网络停止收敛稳定性问题用修改量的综合实施权的修改连续变化的环境 它将变成无效的 步长问题BP网络的收敛是基于无穷小的权修改量步长太小 收敛就非常慢步长太大 可能会导致网络的瘫痪

温馨提示

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

评论

0/150

提交评论