第4A章误差反传算法及BP网络.ppt_第1页
第4A章误差反传算法及BP网络.ppt_第2页
第4A章误差反传算法及BP网络.ppt_第3页
第4A章误差反传算法及BP网络.ppt_第4页
第4A章误差反传算法及BP网络.ppt_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

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

文档简介

人工神经网络及应用 主讲何东健 第4章误差反传算法及BP网络 第四章误差反传播算法与BP网络 反向传播网络 Back PropagationNetwork BP网络 是将W H学习规则一般化 对非线性可微函数进行权值训练的多层网络 BP网络用途 1 函数逼近 用输入矢量和输出矢量训练网络逼近一个函数 2 模式识别 用特定的输出矢量将它与输入矢量联系起来 3 分类 把输入矢量以所定义的合适方式进行分类 4 数据压缩 减少输出矢量维数以便传输或存储 实际应用中 80 90 的人工神经网络模型是采用BP网络或它的变化形式 是前向网络的核心部分 体现了人工神经网络最精华的部分 4 1误差反传算法有隐层的多层感知器能提高网络的分类能力 但权值调整算法没有解决 1986 Rumelhart和McCelland提出具有非线性连续变换函数的多层感知器的BP算法 实现了多层感知器的设想 多层感知器多采用BP算法 所以 通常将其称为BP网络 首先学习基于BP算法的多层感知器模型 4 1 1BP网络模型与结构应用最多的是具有单隐层的BP网络 一个具有r个输入和一个隐含层的神经网络模型结构如图所示 MatlabHelp中常见表示 BP网络的另外一种表示 输入向量为 隐层输出向量为 输出层输出向量 期望输出向量 输入到隐层间权 隐层到输出间权 x0 1是为隐层神经元引入阈值而设置的 y0 1是为输出层神经元引入阈值而设置的 Vj 为隐层第j个神经元对应的权向量 Wk 输出层第k个神经元对应的权向量 2 1 1 i j k x0 Vij Wjk yj Ok Dk x1 x2 0 5 0 8 1 0 50 8 V 0 30 20 5 0 50 10 20 8 0 10 6 0 3 0 2 0 5 W 0 10 30 6 0 20 40 30 7 0 2 y0 1 y 1y1y2y3 y VX 0 30 20 5 0 50 10 20 8 0 10 6 1 0 50 8 0 60 160 22 O WY 0 10 30 6 0 20 40 30 7 0 2 10 60 160 22 0 332 0 122 BP网络与前面介绍过的模型除了是多层网络之外 其主要差别也表现在激活函数上 1 BP网络的激活函数必须是处处可微的 所以它就不能采用二值型的阈值函数 0 1 或符号函数 1 1 BP网络经常使用的是S型的对数或正切激活函数和线性函数 变换函数为S型激活函数 logsig 为 双极性 双曲正切 S型激活函数 tansig f x 连续可导 一阶导数为 f x f x 1 f x 导数f x 1 f x 2 2 对于多层网络 这种激活函数所划分的区域不再是线性划分 而是由一个非线性的超平面组成的区域 它是比较柔和 光滑的任意界面 因而它的分类比线性划分精确 合理 这种网络的容错性较好 2 另一重要特点 由于激活函数是连续可微的 它可以严格利用梯度法进行推算 它的权值修正的解析式十分明确 其算法被称为误差反向传播法 也简称BP算法 3 非线性放大系数功能 S型函数可以把从负无穷大到正无穷大的输入信号 变换成 1到1之间输出 对较大的输入信号 放大系数较小 而对较小的输入信号 放大系数则较大 所以采用S型激活函数可以去处理和逼近非线性的输入输出关系 只有当希望对网络的输出进行限制 如限制在0和1之间 则输出层用S型激活函数 一般 隐含层用S型激活函数 输出层用线性激活函数 和教材中的不同 教材均为S型函数 n f S函数的非线性放大功能 BP算法的基本思想 学习过程由信息的正向传递与误差的反向传播两个过程组成 1 正向传递 输入样本从输入经隐含层逐层计算传向输出层 若输出层的实际输出和期望输出不符 则计算输出层的误差值 然后转向反向传播过程 2 误差的反向传播 是将输出误差以某种形式通过隐层向输入层逐层反传 并将误差分摊给各层所有单元 从而获得各层单元的误差信号 此误差做为修正该单元的依据 信号正向传递和误差反向传播反复进行 权值不断得到调整的过程 就是网络的学习 训练过程 当训练达到规定误差或一定训练次数 则结束训练 4 1 2BP学习算法 以三层BP网络为例介绍BP学习算法 可推广到多层情况 1 网络误差与权值调整当网络输出与期望输出不等时 存在输出误差E 2 2 2 2 1 1 由上式 网络输入误差是各层权值wjk vij的函数 因此调整权值可改变误差E 显然 调整权值的原则是使误差不断地减小 因此应使权值的调整量与误差的梯度下降成正比 即 式中负号表示梯度下降 常数 0 1 学习速率 BP算法属于 学习规则类 这类算法常被称为误差的梯度下降 GradientDescent 算法 2 算法推导3层BP网络权值具体调整公式推导 输出层 j 0 1 m k 1 2 l 隐含层 i 0 1 2 n j 1 2 m i j k xi Vij Wjk yj Ok Dk 对输出层 对隐含层 对输出 隐层定义一个误差信号 可将权值W调整式改写为 可将权值V调整式改写为 推导 对于输出层 可展开为 Ok 对于隐含层 可展开为 网络误差对各层输出的偏导 对于输出层 可得 对于隐层 利用右式得 则 三层感知器的BP学习算法权值调整计算公式为 若有h个隐层 按顺序各隐层节点数分别记为m1 m2 mh 各隐层输出分别记为y1 y2 yh 各层权值矩阵分别记为w1 w2 w 则各层权值调整计算公式为 输出层 第h隐层 则第一层权值调整 可见 BP学习算法中 各层权值调整公式形式上都是一样的 均由3个因素决定 学习率 本层输出的误差信号 本层输入信号y 或x 其中输出层误差信号同网络的期望输出与实际输出之差有关 直接反映了输出误差 各隐层的误差信号与前面各层的误差信号都有关 是从输出层开始逐层反传过来的 说明 在输出层 E是多个ok的函数 但只有一个ok与wjk有关 各ok之间相互独立 故有 在隐层E是多个ok的函数 针对某一个vij 对应一个yi yi与所有ok有关 故 3 BP算法的信号流向误差反向传播过程实际上是通过计算输出层的误差ek 然后将其与输出层激活函数的一阶导数f2 相乘来求得 ko 由于隐含层中没有直接给出目标矢量 所以利用输出层的 ko进行误差反向传递来求出隐含层权值的变化量 Wjk 然后计算并同样通过将ej与该层激活函数的一阶导数f1 相乘 而求得 jy 以此求出前层权值的变化量 Vij 如果前面还有隐含层 沿用上述同样方法依此类推 一直将输出误差ek一层一层的反推算到第一层为止 下图给出了形象的解释 误差反向传播的图形解释 x i v i j w j1 e 1 e 2 2 e k w j2 w jk o 1 e j o 2 o k 4 1 3BP算法的程序实现前面导出的算法是标准BP算法 软件编程实现标准BP算法编程的步骤 1 初始化对权值矩阵W V赋随机数 将样本模式计数器p和训练次数计数器q置为1 误差E置0 学习率 设为0 1内的小数 网络训练后达到的精度Emin设为一个正的小数 2 输入训练样本对 计算各层输出用当前样本Xp dp为向量数组X D赋值 计算y和O中各分量 3 计算网络输出误差设共有P对训练样本 网络对于不同的样本具有不同的误差Ep可将全部样本输出误差的平方 EP 2进行累加再开方 作为总输出误差 也可用诸误差中的最大者Emax代表网络的总输出误差 实用中更多采用均方根误差作为网络的总误差 4 计算各层误差信号计算和 5 调整各层权值 计算W V中各分量 6 检查是否对所有样本完成一次轮训若p P 计数器p q增1 返回步骤 2 否则转步骤 7 7 检查网络总误差是否达到精度要求例如 当用ERME作为网络的总误差时 若满足ERME Emin 训练结束 否则E置0 p置1 返回步骤 2 标准BP算法采用 在线学习 每输入一个样本均回传误差并调整权值 另一方法是 批训练 在所有样本输入后 计算网络的总误差E总然后根据总误差计算各层的误差信号并调整权值 这种累积误差的批处理方式称为批 Batch 训练或周期 Epoch 训练 可以保证总误差向减小方向变化 收敛速度快 批训练流程如下图 4 1 4BP网络的主要能力BP网络有如下重要能力 1 非线性映射能力无需事先了解描述映射关系的数学方程 只要有足够的样本进行训练 便能完成非线性映射 实际问题 对某输入 输出系统已积累大量数据 但不知内部蕴涵的规律 无法数学描述 这一类问题 用BP网络有无可比拟的优势 2 泛化能力BP网络训练后将所提取的样本对中的非线性映射关系存储在权值矩阵中 在工作阶段 当向网络输入一个新数据时 网络也能完成由输入空间向输出空间的正确映射 这种能力称为BP的泛化能力 3 容错能力允许输入样本中带有较大的误差甚至个别错误 因为对权矩阵的调整过程是从大量的样本对中提取统计特性的过程 反映正确规律的知识来自全体样本 个别样本中的误差不能左右对权矩阵的调整 4 1 5BP算法的局限性BP算法总体不足 1 易形成局部极小而得不到全局最优 2 训练次数多 使得学习效率低 收敛速度慢 3 隐节点的选取缺乏理论指导 4 训练时学习新样本有遗忘旧样本的趋势 BP算法的局限性分析 1 存在平坦区域误差曲面上有些区域比较平坦 在这些区域中 误差的梯度变化很小 即使权值的调整量很大 误差仍然下降缓慢 造成这种情况的原因与各节点的净输入过大有关 以输出层为例 由误差梯度表达式知 误差梯度小 表明 ko接近0 由 ko dk ok ok 1 ok ko接近0有三种情况ok dk 误差对应某个谷点ok 0 误差E可以是任意值 但梯度很小ok 1 在误差曲面上出现平坦区由S曲线可以看出 当输入的绝对值 3 输出接近0或1 此时对权值变换不敏感 BP算法严格按梯度法 进入平坦区 dk ok很大 但误差梯度小 使的权值调整力度小 训练缓慢进行 需要增加迭代次数 3 3 2 存在多个极小点二维权空间的误差曲面像一片连绵起伏的山脉 其低凹部分就是误差函数的极小点 高维权空间的误差曲面 山势 会更加复杂 会有更多的极小点 多数极小点都是局部极小 且全局极小往往也不唯一 但其特点都是误差梯度为零 这一特点使以误差梯度为权值调整依据的BP算法无法辨别极小点的性质 因而训练经常陷入某个局部极小点而不能自拔 平坦区 多个极小点是BP固有缺点 根源 每一步都取局部最小 导致 训练次数增多 算法是否收敛无法预知 4 2反向传播算法的改进改进目标 1 加快训练速度 2 避免陷入局部极小值 3 其他能力 1 附加动量法作用 在网络可能陷入局部极小值的情况下 利用该算法可能滑过这些极小值 思想 修正权值时 不仅考虑误差在梯度上的作用 而且考虑在误差曲面上变化趋势的影响 方法 反向传播基础上 在每一个权值的变化上加上一项正比于前一次权值变化量的值 并根据反向传播法产生新的权值变化 权值调节公式 权值调节公式 式中 t为训练次数 为动量因子 值在0 1范围 通常取0 9左右 X 权值修正量 W t 上一次权值修正量 附加动量法的实质 实质是将最后一次权值变化的影响 通过一个动量因子来传递 当增加了动量项后 促使权值的调节向着误差曲面底部的平均方向变化 当网络权值进入误差曲面底部的平坦区时 将变得很小 于是 w t 1 w t 从而防止了 w 0的出现 有助于使网络从误差曲面的局部极小值中跳出 根据附加动量法的设计原则 需要考虑如下几个问题 1 当修正的权值导致太大的误差增长时 新的权值应不被采用 并使动量作用停止下来 以使网络不进入较大的误差曲面 2 当新的误差变化率相对旧值超过事先设定的最大误差变化率 典型值取1 04 时 也取消所计算的权值变化 在程序设计中 必须加入条件判断 以正确适用权值修正公式 函数traingdm m 可训练1至3层的带有附加动量因子的BP网络 单层网络使用函数traingdm m的情形 net TR Ac El traingdm net Pd Tl Ai Q TS VV TV net 神经网络 Pd 延迟的输入矢量 Tl 层目标矢量 Ai 初始输入延迟条件 Q 批的大小 TS 时间步长 VV 训练矢量结构的空矩阵 TV 测试矢量结构的空矩阵 返回参数 net 训练后的网络 TR 每一次训练的参数变换值 TR epoch 训练步数 TR perf 训练性能 TR vperf 检验性能 TR tperf 测试性能 Ac 最后一步的层输出 EI 最后一步的层误差 缺省参数 net trainParam epochs 10 最大训练次数net trainParam goal 0 目标误差net trainParam lr 0 01 学习率net trainParam max fail 5 最大失败次数net trainParam mc 0 9 动量因子net trainParam min grad 1e 10 最小梯度net trainParam show 25 多少步显示1次net trainParam time inf 最大训练时间 a 一维误差曲线图b 纯梯度法进行训练 附加动量法网络训练结果 mc 0 训练参数的选择对训练效果的影响是相当大的 如学习速率太大 将导致其误差值来回振荡 学习速率太小 则导致动量能量太小 从而使其只能跳出很浅的 坑 对于较大的 坑 或 谷 将无能为力 而从另一方面来看 其误差曲线 面 的形状与凹凸性是由问题的本身决定的 所以每个问题都是不相同的 这必然对学习速率的选择带来困难 一般情况下只能采用不同的学习速率进行对比尝试 典型的值取为0 05 采用动量法必须给予足够的训练次数 以使其训练结果为最后稳定到最小值时的结果 而不是得到一个正好摆动到较大误差值时的网络权值 动量法缺点 1 初始值要求 初始值必须使其值在误差曲面上的位置误差下降方向与误差最小值的运动方向一致 如果初始误差点的斜率下降方向与通向最小值的方向背道而驰 则附加动量法失效 训练结果将同样落入局部极小值而不能自拔 初始值选得太靠近局部极小值时也不行 所以建议多用几个初始值先粗略训练几次以找到合适的初始位置 2 学习速率不能太小 比如对于本例 选择lr 0 01 网络则没有足够的能量跳过低 谷 2 自适应速率学习算法对特定的问题 要选择适当的学习速率不是一件容易的事情 通常是凭经验或实验获取 即使这样 对训练开始初期功效较好的学习速率 不见得对后来的训练合适 为解决这一问题 自然会想到在训练中自动调整学习速率 调节准则 检查权值的修正值是否真正降低了误差函数 若是 则说明所选取的学习速率值小了 可以对其增加一个量 若不是 则产生了过调 那么就应该减小学习速率的值 下式给出了一种自适应学习速率的调整公式 设训练次数为k inc dec为 的增加量和减小量 1 ifSSE k 1 SSE k 1 04then 0 动量因子为0 2 ifSSE k 1 SSE k then k 1 k dec即如果误差增大 则学习速率减小一个量 inc可取1 04 1 2 dec可取0 7 0 9MATLAB函数 traingda net tr Ac El traingda net Pd Tl Ai Q TS VV TV net trainParam epochs10net trainParam goal0net trainParam lr0 01net trainParam lr inc1 05 学习率增加比率net trainParam lr dec0 7 学习率减小比率net trainParam max fail5net trainParam max perf inc1 04 最大误差增加net trainParam min grad1e 10net trainParam show25net trainParam timeinf 3 引入陡度因子平坦区域的原因 神经元输出进入了变换函数的饱和区 解决思路 在调整进入平坦区后 设法压缩神经元的净输入 使其输出退出变换函数的饱和区 就可改变误差函数的形状 从而使调整脱离平坦区 实现方法 在原变换函数中引入一个陡度因子 当 E接近零而dk ok仍较大时 可判断已进入平坦区 此时令 1 当退出平坦区后 再令 1 从图可以看出 当 1时 netk坐标压缩了 倍 神经元的变换函数曲线的敏感区段变长 从而可使绝对值较大的netk退出饱和值 当 1时 变换函数恢复原状 对较小的netk具有较高的灵敏度 该方法对于提高BP算法的收敛速度十分有效 4 误差函数的改进前面定义的误差函数是一个二次函数 当Ok趋向1时 E趋向一个常数 即处于E的平坦区 从而造成了不能完全训练的麻痹现象 所以当一个网络的误差曲面存在着平坦区时 可以选用别的误差函数f tk ok 来代替 tk ok 2的形式 只要其函数在tk ok时能够达到最小值即可 包穆 Baum 等人于1988年提出一种误差函数为 该式同样满足当tk ak时 E 0 不过 当ak 1时 该式发散 所以能够克服麻痹现象 如果采用双曲正切函数来作为激活函数 即取 与常规的误差函数的情况 ij f n tk ak 相比较 其中的f n 项消失了 这样 当n增大 进入激活函数的平坦区 使f n 0时 不会产生不能完全训练的麻痹现象 但由于失去了f n 对 W的控制作用 过大的 W又有可能导致网络过调或振荡 为了解决这个问题 1989年 范尔曼 S Fahlman 提出一种折衷的方案 即取 k f n 0 1 tk ak 该式一方面恢复了f n 的某些影响 另一方面当 n 变大时 仍能保持 k有一定的大小 从而避免了麻痹现象的发生 6 双极性S型压缩函数法另一种改进训练性能的简单方法为双极性S型压缩函数反向传播法 一般对数S型压缩函数的输出动态范围为 0 1 这不是最佳的 因为从权值调节公式可知 权值的变化也正比于前一层的输出 而因其中一半是趋向0的一边 这必然引起权值调节量的减少或不调节 从而加长了训练时间 为了解决这个问题 可将输入范围变为1 2 同时也使S型函数输出范围也变为 1 2 即由 采用此方法 收敛时间平均可以减少30 50 当然 若采用此方法来训练网络 其训练程序需要设计者自己编写一部分 4 3BP神经网络设计基础尽管神经网络的研究与应用已经取得巨大的成功 但是在网络的开发设计方面至今还没有一套完善的理论作为指导 主要设计方法 在充分了解待解决问题的基础上将经验与试探相结合 通过多次改进性试验 最终选出一个较好的设计方案 掌握了几种神经网络的结构和算法 并不能直接应用 用神经网络解决问题不是那么简单 本节介绍BP网络开发设计中常用的基本方法与实用技术 数据准备等内容的设计原则与方法也适合于其他网络 4 3 1网络信息容量与训练样本数BP网络分类能力与网络信息容量相关 如用网络的权值和阈值总数nw表征网络信息容量 研究表明 训练样本数P与给定的训练误差 之间应满足以下匹配关系P nw 上式表明网络的信息容量与训练样本数之间存在着合理匹配关系 实际训练样本数难以满足以上要求 对于确定的样本数 网络参数太少则不足以表达样本中蕴涵的全部规律 而网络参数太多则由于样本信息少而得不到充分训练 因此 当实际问题不能提供较多的训练样本时 必需设法减少样本维数 从而降低nw 4 3 2训练样本集的准备数据准备包括原始数据的收集 数据分析 变量选择和数据预处理等 1 输入输出量的选择输出量 代表系统实现的功能目标 其选择确定相对容易一些 例如系统的性能指标 分类问题的类别归属 或非线性函数的函数值等 输入量 选择 1 对输出影响大且能检测或提取的变量 2 各输入变量之间互不相关或相关性很小 基本原则 如果对某个变量是否适合作网络输入没有把握 可分别训练含有和不含有该输入的两个网络 对其效果进行对比 输入 输出量性质分为两类 数值变量 数值变量的值是数值确定的连续量或离散量 语言变量 语言变量是用自然语言表示的概念 例如 颜色 性别 规模等等都是语言变量 其语言值可分别取为红 绿 蓝 男 女 大 中 小等 当选用语言变量作为网络的输入或输出变量时 需将其语言值转换为离散的数值量 2 输入量的提取与表示输入量无法直接获得时 需要用信号处理与特征提取技术从原始数据中提取能反映其特征的若干特征参数作为网络的输入 几种典型的情况 1 文字符号输入字符识别中均以字符为输入的原始对象 BP网络的输入层不能直接接受字符输入 必需先对其进行编码 下面举一个简单的例子进行说明 例3 5识别英文字符C I T 将每个字符纳入3 3网格 用1 9表示网格的序号 设计一有9个分量的输入向量X 每一个分量的下标与网格的序号相对应 其取值为1或0 代表网格内字符笔迹的有无 则3个字符输入向量为 Xc 111100111 T XI 010010010 T和XT 111010010 T 对应C类 I类和T类 当字符较复杂或要区分的类型较多时 网格数也需增加 此外 对于有笔锋的字符 可用0 1之间的小数表达其充满网格的情况 从而反映字符笔画在不同位置的粗细情况 2 曲线输入识别各种设备输出的波形曲线 对于这类输入模式 常用的表示方法是提取波形在各区间分界点的值 以其作为网络输入向量的分量值 各输入分量的下标表示输入值在波形中的位置 因此分量的编号是严格有序的 例3 6控制系统过渡过程曲线 将该过程按一定的时间间隔采样 整个过渡过程共采得n个样本值 于是某输入向量可表示为P为网络要学习的曲线类型总数 采样周期的大小应满足香农采样定理的要求 周期越小 对输入曲线的表达也越精确 但要求网络输入层节点数也越多 采样区间的划分也可以采用不等分的方法 对于曲线变化较大的部分或能提供重要信息的部分 可以将区间分得较细 而对于曲线较平缓的部分 可将区间放宽 3 函数自变量输入一般当系统已有大量输入 输出数据对 建模的目的是提取其中隐含的映射规则 即函数关系 这类应用的输入表示比较简单 一般有几个影响参数就设几个分量 1个输入分量对应1个输入层节点 例3 7用多层前馈网实现环境舒适程度测量 利用多层前馈网进行多传感器数据融合 得出舒适程度的综合结果 属多自变量函数的建模问题 变量 温度 湿度 风向和风速等作为输入量 这样网络的输入向量应有4个分量 各代表1个影响参数 输出为1个 舒适度 4 图像输入当对物体的图像进行识别时 很少直接将每个像素点的灰度值作为网络的输入 像素数太多 根据识别的具体目的从图像中提取一些有用的特征参数 再根据这些参数对输入的贡献进行筛选 特征优选 这种特征提取属于图像分析的范畴 例3 8天然皮革的外观效果分类在真皮服装的制作中 要求做一件成衣所用的数张皮料外观效果一致 应用图像分析技术从皮革图像中提取了6个特征参数 其中3个参数描述其纹理特征 另外3个描述其颜色特征 6个输入分量便可描述其视觉特征 3 输出量的表示输出量 期望输出数值类的输出量 可直接用数值量来表示 但由于网络实际输出只能是0 1或 1 1 输出层为S型函数 之间的数 所以需要将期望输出进行尺度变换处理 下面介绍几种语言变量的表示方法 1 n中取1 表示法分类问题的输出变量多用语言变量类型 如质量可分为优 良 中 差4个类别 n中取1 是令输出向量的分量数等于类别数 输入样本被判为哪一类 对应的输出分量取1 其余n 1个分量全取0 当分类的类别数不是太多时经常采用 优 1000良 0100中 0010差 0001 2 n 1 表示法上述方法中没有用到编码全为0的情况 如果用n 1个全为0的输出向量表示某个类别 则可以节省一个输出节点 如上面提到的4个类别也可以用000 001 010和100表示 特别是当输出只有两种可能时 只用一个二进制数便可以表达清楚 如用0和1代表性别的男和女 考察结果的合格与不合格 性能的好和差等等 上述问题也可以用 00 01 10 11表示4类 3 数值表示法渐进式的分类 可以将语言值转化为二值之间的数值表示 例如质量 差 0 0 较差 0 25 中等 0 5 教好 075 好 1 0 4 输入输出数据的预处理 1 尺度变换尺度变换也称归一化或标准化 是通过变换处理将网络的输入 输出限制在 0 1 或 1 1 区间内 为什么进行尺度变换 输入数据有不同的物理意义和不同的量纲 BP网采用S变换函数 变换后可防止因净输入的绝对值过大而使神经元输出饱和 使权值调整进入的平坦区 S函数的输出在0 1或 1 1之间 期望输出数据不进行变换 必使数值大的绝对误差大 数值小的分量绝对误差小 网络训练时只针对输出的总误差调整权值 其结果是在总误差中占份额小的输出分量相对误差较大 尺度变换后可解决该问题 将输入输出数据变换为 0 1 区间的值常用以下变换式将输入输出数据变换为 1 1 区间的值常用以下变换式xmin xmid xman 数据变换范围的最小值 中间值和最大值 2 分布变换尺度变换是一种线性变换 当样本的分布不合理时 线性变换只能统一样本数据的变化范围 而不能改变其分布规律 适于网络训练的样本分布应比较均匀 相应的样本分布曲线应比较平坦 当样本分布不理想时 最常用的变换是对数变换 其他常用的还有平方根 立方根等 由于变换是非线性的 其结果不仅压缩了数据变化的范围 而且改善了其分布规律 5 训练集的设计网络的性能与训练用的样本密切相关 样本规模 样本质量两个问题 1 训练样本数的确定A 训练样本数越多 训练结果越能正确反映其内在规律 但样本收集受到客观条件的限制 B 当样本数多到一定程度时 网络的精度很难再提高 输入 输出非线性映射关系越复杂 样本中含的噪声越大 样本数就应越多 而且网络的规模也越大 经验规则 训练样本数是网络连接权总数的5 10倍 如3 5 3网络 38个连接权 样本数为190 380个 2 样本的选择与组织A 样本一定要有代表性 样本的选择要注意样本类别的均衡 尽量使每个类别的样本数量大致相等 即使是同一类样本也要照顾样本的多样性与均匀性 B 要注意将不同类别的样本交叉输入 或从训练集中随机选择输入样本 因为同类样本太集中会使网络训练时倾向于只建立与其匹配的映射关系 当另一类样本集中输入时 权值的调整又转向新的映射关系而将前面的训练结果否定 当各类样本轮流集中输入时 网络的训练会出现振荡使训练时间延长 4 3 3初始权值的设计初始权值决定训练从误差曲面的哪一点开始 故初始化方法对缩短网络的训练时间至关重要 变换函数关于零点对称 如果节点的净输入在零点附近 则其输出均处在变换函数的中点 远离两个饱和区 且其变化最灵敏 必使网络的学习速度较快 为使节点的初始净输入在零点附近 两种办法 1 使初始权值足够小 2 使初始值为 1和 1的权值数相等 隐层权值可采用第一种办法 输出层可采用第二种办法 f a 4 3 4BP网络结构设计BP结构设计 设几个隐层和每个隐层设几个隐节点的问题 无通用性理论指导 凭经验 1 隐层数的设计理论证明 具有单隐层的感知器可以映射所有连续函数 只有当学习不连续函数 如锯齿波等 时 才需要两个隐层 所以 BP网络最多只需2个隐层 先考虑设一个隐层 当一个隐层的隐节点数很多仍不能改善网络性能时 才考虑再增加一个隐层 经验表明 两个隐层时 如在第一个隐层设置较多的隐节点而第二个隐层设置较少的隐节点 则有利于改善多层前馈网的性能 2 隐节点数的设计隐节点数量太少 网络从样本中获取的信息能力就差 不足以概括样本规律 隐节点数量过多 又可能把样本中噪声等也学会记牢 从而出现所谓 过度吻合 问题 反而降低了泛化能力 此外隐节点数太多还会增加训练时间 设置多少个隐节点取决于训练样本数的多少 样本噪声的大小以及样本中蕴涵规律的复杂程度 试凑法 可先设置较少的

温馨提示

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

评论

0/150

提交评论