【课件】5.第6章BP神经网络

上传人:NU****AN 文档编号:127244086 上传时间:2020-03-31 格式:PPT 页数:41 大小:1.18MB
返回 下载 相关 举报
【课件】5.第6章BP神经网络_第1页
第1页 / 共41页
【课件】5.第6章BP神经网络_第2页
第2页 / 共41页
【课件】5.第6章BP神经网络_第3页
第3页 / 共41页
【课件】5.第6章BP神经网络_第4页
第4页 / 共41页
【课件】5.第6章BP神经网络_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《【课件】5.第6章BP神经网络》由会员分享,可在线阅读,更多相关《【课件】5.第6章BP神经网络(41页珍藏版)》请在金锄头文库上搜索。

1、第6章BP神经网络 编者 Outline 1 BP神经网络的结构2 BP网络的学习算法3 设计BP网络的方法4 BP神经网络的局限性5 BP网络相关函数详解6 BP神经网络应用实例 1 BP神经网络的结构 BP神经网络是包含多个隐含层的网络 具备处理线性不可分问题的能力 误差反向传播算法 ErrorBackPropagtion BP 解决了多层神经网络的学习问题 是一种多层前向网络 又叫多层感知器 BP网络是前向神经网络的核心部分 也是整个人工神经网络体系中的精华 广泛应用于分类识别 逼近 回归 压缩等领域 在实际应用中 大约80 的神经网络模型采取了BP网络或BP网络的变化形式 1 BP神经

2、网络的结构 网络由多层构成 层与层之间全连接 同一层之间的神经元无连接 包含一个多多个隐层 可以实现复杂的映射关系 1 BP神经网络的结构 BP网络的传递函数必须可微 BP网络一般使用Sigmoid函数或线性函数作为传递函数 Sigmoid函数是光滑 可微的函数 在分类时它比线性函数更精确 容错性较好 将输入从负无穷到正无穷的范围映射到0 1或 1 1区间内 具有非线性的放大功能 Log SigmoidTan Sigmoid 1 BP神经网络的结构 误差反向传播 误差信号反向传播 修正权值时 网络根据误差从后向前逐层进行修正 反馈神经网络 输出层的输出值又连接到输入神经元作为下一次计算的输入

3、如此循环迭代 直到网络的输出值进入稳定状态为止 在本书后面的章节中会专门介绍反馈神经网络 包括Hopfield网络 Elman网络等 BP神经网络属于多层前向网络 工作信号始终正向流动 没有反馈结构 BP网络采用误差反向传播算法 Back PropagationAlgorithm 进行学习 在BP网络中 数据从输入层经隐含层逐层向后传播 训练网络权值时 则沿着减少误差的方向 从输出层经过中间各层逐层向前修正网络的连接权值 2 BP网络的学习算法 BP学习算法的原理与LMS算法比较类似 属于最速下降法 最速下降法 最速下降法可以求某指标 目标函数 的极小值 若将目标函数取为均方误差 就得到了LM

4、S算法 对于实值函数 如果在某点处有定义且可微 则函数在该点处沿着梯度相反的方向下降最快 因此 使用梯度下降法时 应首先计算函数在某点处的梯度 再沿着梯度的反方向以一定的步长调整自变量的值 当步长足够小时 反复迭代 求得函数最小值 2 BP网络的学习算法 最速下降法实例 求函数的最小值 根据梯度值可以再函数中画出一系列的等值线或等值面 在等值线或等值面上函数值相等 梯度下降法相当于沿着垂直于等值线方向向最小值所在位置移动 2 BP网络的学习算法 1 目标函数必须可微 2 如果最小值附近比较平坦 算法会在最小值附近停留很久 收敛缓慢 之 字形下降 3 对于包含多个极小值的函数 所获得的结果依赖初

5、始值 算法有可能陷入局部极小值点 而没有达到全局最小值点 BP神经网络来说 由于传递函数都是可微的 因此能满足最速下降法的使用条件 2 BP网络的学习算法 最速下降BP法 隐含层传递函数为Sigmoid函数 输出层传递函数为线性函数 1 工作信号正向传播2 误差信号反向传播 权值调整量 学习率 局部梯度 上一层输出信号 2 BP网络的学习算法 当输出层传递函数为线性函数时 输出层与隐含层之间权值调整的规则类似于线性神经网络的权值调整规则 BP网络的复杂之处在于 隐含层与隐含层之间 隐含层与输入层之间调整权值时 局部梯度的计算需要用到上一步计算的结果 前一层的局部梯度是后一层局部梯度的加权和 因

6、此 BP网络学习权值时只能从后向前依次计算 串行方式 在线方式 网络每获得一个新样本 就计算一次误差并更新权值 直到样本输入完毕 随机输入样本 不容易陷入局部最优陷阱 批量方式 离线方式 网络获得所有的训练样本 计算所有样本均方误差的和作为总误差 容易并行化 速度快 2 BP网络的学习算法 动量BP法 在标准BP算法的权值更新阶段引入动量因子 使权值修正值具有一定惯性 本次权值的更新方向和幅度不但与本次计算所得的梯度有关 还与上一次更新的方向和幅度有关 1 如果前后两次计算所得的梯度方向相同 得到的权值较大 可以加速收敛过程 2 如果前后两次计算所得梯度方向相反 则说明两个位置之间可能存在一个

7、极小值 可以得到一个较小的步长 更容易找到最小值点 而不会陷入来回振荡 2 BP网络的学习算法 学习率可变的BP算法 当误差以减小的方式趋于目标时 说明修正方向是正确的 可以增加学习率 当误差增加超过一定范围时 说明前一步修正进行地不正确 应减小步长 并撤销前一步修正过程 拟牛顿法 牛顿法具有收敛快的优点 但需要计算误差性能函数的二阶导数 计算较为复杂 拟牛顿法只需要知道目标函数的梯度 通过测量梯度的变化进行迭代 收敛速度大大优于最速下降法 拟牛顿法有DFP方法 BFGS方法 SR1方法和Broyden族方法 3 设计BP网络的方法 1 网络层数 对于大部分应用场合 单个隐含层即可满足需要2

8、输入层节点数 输入层节点数取决于输入向量的维数 如果输入的是的图像 则输入向量应为图像中所有的像素形成的4096维向量 如果待解决的问题是二元函数拟合 则输入向量应为二维向量 3 隐含层节点数 较多的隐含层节点数可以带来更好的性能 但可能导致训练时间过长 经验公式 BP网络的设计主要包括网络层数 输入层节点数 隐含层节点数 输出层节点数及传输函数 训练方法 训练参数的设置等几个方面 样本数 输入层结点数 3 设计BP网络的方法 输出层神经元的个数同样需要根据从实际问题中得到的抽象模型来确定 在模式分类问题中 如果共有n种类别 则输出可以采用n个神经元 也可以将节点个数设计为个 表示最小的不小于

9、的整数 由于输出共有4种情况 因此采用二维输出即可覆盖整个输出空间 00 01 10和11分别表示一种类别 输出层神经元个数 传递函数的选择 一般隐含层使用Sigmoid函数 而输出层使用线性函数 如果输出层也采用Sigmoid函数 输出值将会被限制在0 1或 1 1之间 3 设计BP网络的方法 训练方法的选择 使用LM算法收敛速度最快 均方误差也较小 LM算法对于模式识别相关问题的处理能力较弱 且需要较大的存储空间模式识别问题 使用RPROP算法能收到较好的效果SCG算法对于模式识别和函数逼近问题都有较好的性能表现 初始权值的确定 通常将初始权值定义为较小的非零随机值 经验值为 权值输入端连

10、接的神经元个数 3 设计BP网络的方法 确定以上参数后 将训练数据进行归一化处理 并输入网络中进行学习 若网络成功收敛 即可得到所需的神经网络 4 BP神经网络的局限性 BP网络具有实现任何复杂非线性映射的能力 特别适合求解内部机制复杂的问题 但BP网络也具有一些难以克服的局限性 1 需要的参数较多 且参数的选择没有有效的方法 隐含层结点个数 2 容易陷入局部最优 3 样本依赖性 如果样本集合代表性差 矛盾样本多 存在冗余样本 网络就很难达到预期的性能 4 初始权重敏感性 训练的第一步是给定一个较小的随机初始权重 由于权重是随机给定的 BP网络往往具有不可重现性 5 BP网络相关函数详解 5

11、BP网络相关函数详解 logsig Log Sigmoid传输函数Log Sigmoid函数的特点是 范围的数据被映射到区间 可以使用下面的代码将神经网络节点的传输函数定义为Log Sigmoid函数 net layers i transferFcn logsig 5 BP网络相关函数详解 tansig Tan Sigmoid传输函数tansig是双曲正切Sigmoid函数 调用形式与logsig函数相同 取值范围 x 4 1 4 y tansig x Tag Sigmoid函数 plot x y r title Tan sig函数 xlabel x ylabel y gridon 5 BP网

12、络相关函数详解 dlogsig dtansig Sigmoid函数的导数 x 4 1 4 y logsig x logsig函数 dy dlogsig x y logsig函数的导数 subplot 211 plot x y title logsig subplot 212 plot x dy title dlogsig 5 BP网络相关函数详解 newff 创建一个BP网络 新版语法net newff P T S P R Q1矩阵 表示创建的神经网络中 输入层有R个神经元 每行对应一个神经元输入数据的典型值 实际应用中常取其最大最小值 T SN Q2矩阵 表示创建的网络有SN个输出层节点 每

13、行是输出值的典型值S 标量或向量 用于指定隐含层神经元个数 若隐含层多于一层 则写成行向量的形式 旧版语法格式net newff P N TF BTF P表示输入向量的典型值 N为各层神经元的个数 TF为表示传输函数的细胞数组 BTF为训练函数 5 BP网络相关函数详解 旧版newff默认训练函数为traingdx 学习率自适应并附加动量因子的最速下降法 新版默认训练函数为trainlm 新版速度更快 但更占用内存新版newff将输入的60 用于训练 20 用于检验 20 用于验证 采用了提前终止的策略 防止过拟合的情况发生 对于同一个问题 往往会出现新版最终训练误差大于旧版newff的情况

14、用newff逼近二次函数 新版的函数误差比旧版函数大example6 3 m 5 BP网络相关函数详解 feedforwardnet 创建一个BP网络feedforwardnet是新版神经网络工具箱中替代newff的函数feedforwardnet hiddenSizes trainFcn hiddenSizes为隐含层的神经元节点个数 如果有多个隐含层 则hiddenSizes是一个行向量 缺省值为10 trainFcn为训练函数 缺省值为 trainlm x t simplefit dataset MATLAB自带数据 x t均为1 94向量 net feedforwardnet view

15、 net net train net x t view net y net x perf perform net y t 5 BP网络相关函数详解 newcf 级联的前向神经网络在新版中使用cascadeforwardnet函数代替 5 BP网络相关函数详解 net newcf P T S1S2 S N 1 P R Q1矩阵 每行对应一个神经元输入数据的典型值 T SN Q2矩阵 表示创建的网络有SN个输出层节点 每行是输出值的典型值 Si 表示隐含层神经元个数 若隐含层多于一层 则写成行向量的形式 与newff比较类似 5 BP网络相关函数详解 用newff和newcf对一段数据进行拟合 数

16、据输入为向量输出为 是一段折线 新版替代函数 cascadeforwardnet f2 cascadeforwardnet 3 5 view f2 rng 2 P 012345678910 网络输入 T 01234321234 期望输出 ff newff P T 20 建立一个BP网络 包含一个20个节点的隐含层 ff trainParam epochs 50 ff train ff P T 训练 Y1 sim ff P 仿真 cf newcf P T 20 用newcf建立前向网络 cf trainParam epochs 50 cf train cf P T 训练 Y2 sim cf P 仿真 plot P T o 绘图 holdon plot P Y1 m plot P Y2 k title newff newcf legend 原始数据 newff结果 newcf结果 0 6 BP神经网络应用实例 1 基于BP网络的性别识别 以班级中男生女生的身高 体重为输入 经过一定数量的样本训练后 可以较好地识别出新样本的性别 男生172人 女生88人 部分数据 6 BP神经网络应用实例

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号