基于MATLAB神经网络仿真 毕业论文.doc_第1页
基于MATLAB神经网络仿真 毕业论文.doc_第2页
基于MATLAB神经网络仿真 毕业论文.doc_第3页
基于MATLAB神经网络仿真 毕业论文.doc_第4页
基于MATLAB神经网络仿真 毕业论文.doc_第5页
免费预览已结束,剩余38页可下载查看

下载本文档

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

文档简介

第 1 页 装 订 线 基于 matlab 神经网络仿真 摘 要 随着人工神经网络的研究和应用越来越广泛,误差反向传播算法(bp 算法)的 提出,成功地解决了求解非线性连续函数的多层前馈神经网络权值调整问题,bp 神 经网络如今成为最广泛使用的网络,研究它对探索非线性复杂问题具有重要意义, 而且它具有广泛的应用前景。以 bp 神经网络为例,讨论了 bp 神经网络及几种改进 bp 神经网络性能的算法;通过 bp 学习算法的推导和分析得知 bp 网络是一种多层前 馈网络,采用最小均方差的学习方式,缺点是仅为有导师训练,训练时间长,易限 于局部极小;运用 matlab 来实现各种 bp 神经网络的实现的设计与训练,比较不同 bp 神经网络的性能,验证改进 bp 网络的优势,得出如何根据对象选取神经网络的 结论。 关键词: 人工神经网络、bp 神经网络、误差反向传播算法、matlab、仿真 第 2 页 装 订 线 abstract with the artificial neural network of research and application of more and more widely, the error back-propagation algorithm (bp algorithm) is proposed, successfully resolved the continuous function for solving nonlinear multi-layer feed-forward neural network weights adjustment, bp network has become now the most widely used networks, study to explore its complicated nonlinear problem has important significance, but also has broad application prospects. bp neural network is discussed and several improvements in the performance of bp neural network algorithm. bp learning algorithm through the derivation and analysis that the bp network is a multi-layer feedforward networks, the use of least-mean- variance approach to learning, there is only disadvantage is that the training instructors, training time, limited to local minimum easily. the use of matlab to achieve a variety of bp neural network to achieve the design and training, to compare the performance of bp neural network to verify the advantages of improving the bp network, how to draw the object selected in accordance with the conclusions of neural networks. key words: artificial neural network, bp neural networks, error back-propagation algorithm, matlab, simulation 第 3 页 装 订 线 目 录 1.绪论 5 1.1 引言 5 1.2 神经网络概述 5 121 神经网络起源 5 122 神经网络的发展历程 5 123 神经网络国内发展概况 6 124 神经网络研究现状 7 1.3 研究目的、方法和问题(bp 神经网络) 8 131 研究目的 8 132 研究方法 8 133 研究问题 8 2.bp 神经网络 10 2.1 bp 神经网络相关原理 .10 211 神经元非线性模型 .10 212 有教师监督学习 .10 213 神经元数学模型 .11 214 delta 学习规则 11 215 神经元激活函数 .12 216 bp 神经网络收敛准则 .12 2.2 bp 神经网络学习过程描述 .13 221 bp 神经网络计算模型建立 .13 222 bp 神经网络学习过程描述 .14 223 bp 神经网络方框图 .14 2.3 bp 神经网络学习方法 .14 231 bp 神经网络信号流程 .14 232 误差反向传播计算 .15 233 bp 神经网络算法描述 .18 2.4 影响因素分析 .19 241 权值初始值设置影响分析 .19 242 权值调整方法影响分析 .19 243 激活函数选择影响分析 .20 244 学习率 选择影响分析 20 245 输入输出归一化影响分析 .21 246 其他影响因素分析 .22 2.5 bp 学习算法的改进 .22 251 bp 学习算法的优缺点 .22 252 增加动量项 .23 253 弹性 bp 学习算法 23 254 自适应学习速率法 .24 255 共轭梯度法 .25 256 levenberg-marquardt 算法 25 第 4 页 装 订 线 3.bp 神经网络仿真 27 3.1 仿真平台 matlab.27 311 matlab 简介 .27 312 仿真平台的构建和策略 .27 3.2 仿真实验 .28 321 bp 神经网络 matlab 设计 28 322 各种 bp 学习算法 matlab 仿真 .29 323 各种算法仿真结果比较与分析 .32 324 调整初 始权值和阈值的仿真 .33 325 其他影响因素仿真 .35 4.bp 神经网络应用实例 37 4.1 实例概述 .37 4.2 网络设计 .37 4.3 网络训练 .38 4.4 网络测试 .39 4.5 实例总结 .40 5.总结与展望 .41 5.1 bp 神经网络研究总结 .41 5.2 神经网络研究展望 .42 致谢 .43 参考文献 .44 附录 .46 第 5 页 装 订 线 1.绪论 1.1 引言 随 着 计 算 机 的 问 世 与 发 展 , 人 们 设 法 了 解 人 的 大 脑 , 进 而 构 造 具 有 人 类 智 能 的 智 能 计 算 机 。 在 具 有 人 脑 逻 辑 推 理 能 力 延 伸 的 计 算 机 战 胜 人 类 棋 手 的 同 时 引 发 人 们 对 模 拟 人 脑 信 息 处 理 的 人 工 神 经 网 络 的 研 究 。 人 工 神 经 网 络 ( artificial neural networks, ann) ( 注 : 简 称 为 神 经 网 络 ) , 一 种 模 仿 动 物 神 经 网 络 行 为 特 征 , 进 行 分 布 式 并 行 信 息 处 理 的 算 法 数 学 模 型 。 这 种 网 络 依 靠 系 统 的 复 杂 程 度 , 通 过 调 整 内 部 大 量 节 点 之 间 相 互 连 接 的 关 系 , 从 而 达 到 处 理 信 息 的 目 的 。 人 工 神 经 网 络 具 有 自 学 习 和 自 适 应 的 能 力 , 可 以 通 过 预 先 提 供 的 一 批 相 互 对 应 的 输 入 输 出 数 据 , 分 析 掌 握 两 者 之 间 潜 在 的 规 律 , 最 终 根 据 这 些 规 律 , 用 新 的 输 入 数 据 来 推 算 输 出 结 果 , 这 种 学 习 分 析 的 过 程 被 称 为 “训 练 ”。 ( 引 自 环 球 科 学 2007 年 第 一 期 神 经 语 言 : 老 鼠 胡 须 下 的 秘 密 ) 1.2 神经网络概述 121 神经网络起源 早在 1890 年,美国心理学家 william james(1842-1910)出版了principles of psychology专著,本书研究了心理活动与大脑神经生理活动的关系,开创性提 出学习、联想记忆的基本原理。指出:“让我们假设所有后继推理的基础遵循这样 的规则:当两个基本的脑细胞曾经一起或相继被激活过,其中一个受刺激激活时会 将刺激传播到另一个” 。他还认为在大脑皮层上的任意一点的刺激量是其他所有发射 点进入该点刺激总和。1943 年,心理学家 w.s.mcculloch 和数理逻辑学家 w.a.pitts 建立了神经网络和数学模型,称为 m-p 模型。他们通过 m-p 模型提出了 神经元的形式化数学描述和网络结构方法,证明了单个神经元能执行逻辑功能,从 而开创了人工神经网络研究的时代。 122 神经网络的发展历程 1943 年,心理学家 w.s.mcculloch 和数理逻辑学家 w.pitts 建立了神经网络和数 学模型,称为 m-p 模型; 1949 年,心理学家 donald olding hebb 出版了organization of behavior , 在该书他首先提出了连接权训练算法,即如今人们称为的 hebb 算法; 1958 年,计算机科学家 frank rosenblatt,在一篇著名的文章中提出了一种具有 三层网络特性的“感知器” (perceptron)神经网络; 1960 年,电机工程师 bernard widrow 和 marcian hoff 发表了adaptive switching circuits文章,不仅把人工神经网络在计算机上仿真,而且用硬件电 第 6 页 装 订 线 路实现了它。因此 widrow-hoff 的学习训练算法(也称 (误差大小)算法或最小 均方(lms)算法)也应运而生; 1969 年,人工智能的创始人之一,mminsky 和 s.papert 经过数年研究,仔细分 析了以感知器为代表的神经网络系统的功能及局限后,出版了perceptron一书, 指出感知器不能解决高阶谓词问题; 1969 年,美国波士顿大学自适应系统中心的 s.grossberg 教授及其夫人 g.a.carpenter 提出了著名的自适应共振理论(adaptive resonance theory)模型; 1972 年,芬兰的 t.kohonen 教授提出了自组织映射(som)理论,并称其神经网 络结构为“associative memory”;与此同时,美国的神经生理学家和心理学家 j.anderson,提出了一个类似的神经网络“interactive memory” ; 1980 年,日本东京 nhk 广播科学研究实验室的福岛邦彦(kunihiko fukushima) , 发表了neocognitron ,开发了一些神经网络结构和训练算法,还有一系列的改进 的文章,新认知机在于视觉模式识别机制的模型; 1982 年,美国加州理工学院的优秀物理学家 john j.hopfield 博士发表一篇著名 的文章,吸收前人的研究成果,把各种结构和算法概括综合起来建立起新颖而有力 的 hopfield 网络; 1985 年,g.e.hinton 和 t.j.sejnowski 借助统计物理学概念和方法提出了波耳兹 曼模型,在学习中采用统计热力学模拟退火技术,保证整个系统趋于全局稳定点; 1986 年进行认知微观结构地研究,提出了并行分布处理的理论; 1987 年首届国际神经网络学术会议在美国加州圣地亚哥召开,成立了国际神经网 络学会(inns) ; 1987 年以来,神经网络理论、应用、实现和相关开发工具发展迅速,涉及神经生 理学、认知科学、心理学、数理科学、信息科学、计算机科学、微电子学、光学、 生物电子学等多学科交叉、综合的前沿科学。应用于各个领域,如自动控制领域、 处理组合优化问题、模式识别、图像处理、机器人控制、医疗等。可见人工神经网 络具有广泛的研究和应用前景;以下是 1987 年后的一些发展历程: 1988 年,broomhead lower 提出径向基函数网络(radial basis function,rbf) , 网络设计采用原理化方法,有坚实的数学基础; 1992-1998 年,vapnik 提出了支持向量机(support vector machine,svm) ,在 模式分类问题上能提供良好的泛化能力。 123 神经网络国内发展概况 1980 年,涂序言教授等出版了生物控制论一书, “神经系统控制论”一章系 统地介绍了神经元和神经网络的结构、功能和模型,是我国最早涉及神经网络的著 作;因此到 80 年代中期,我国学术界掀起了研究神经网络的热潮;1988 年北京大 学非线性研究中心举办了 beijing international workshop on neural networks: learning and recognition, a modern approach;1989 年召开可全国非正式的神 经网络会议,于 1990 年在北京召开了中国神经网络首届学术大会,第二年在南京召 第 7 页 装 订 线 开了第二届,并成立了中国神经网络学会;1992 年国际神经网络学会和 ieee 神经 网络委员会在北京召开神经网络的国际性会议;自此中国神经网络研究在国家研究 计划的支持和学术及工程人员的发展与应用下取得一系列丰硕成果。 124 神经网络研究现状 神经网络是可大规模并行处理和分布式信息存储,具有良好的自学习、自适应、 自组织性,以及很强的联想记忆和容错功能,可以充分逼近任意复杂的非线性关系, 可有很强的信息综合能力,能同时处理定量和定性信息,能很好的协调多种输入信 息关系,适用于处理复杂非线性和不确定对象。 目前的神经网络的研究中主要有以下几种类型:松耦合模型:符号机制的专 家系统和联接机制的神经网络通过一个中间媒介如数据文件进行通信;紧耦合模 型:其通信数据是直接的内部数据,具有很高的效率;转换模型:将专家系统知 识转换成神经网络,或把神经网络转换成专家系统知识,转换需要在两种机制之间, 确定结构上的一致性,目前主要问题还没有一种能够精确而完备的实现二者转换; 综合模型:将具有符号机制的逻辑功能和具有联接机制的自适应和容错性结合为 一个整体,共享数据结构和知识表示;混沌理论:是系统从有序突然变为无序状 态的一种演化理论,是对确定性系统中出现的内在“随机过程”形成的途径、机制 的研讨,从而与神经网络融合,达到取长补短的效果;模糊集理论:用语言和概 念代表脑的宏观功能,按照人为引入的隶属度,将模糊性的语言信息进行逻辑处理, 与神经网络结合,取长补短;遗传算法:模拟达尔文生物进化论的自然选择和遗 传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的 方法,从而与神经网络融合,达到取长补短的效果;混合神经网络:把神经网络 与混沌理论、模糊集理论和遗传算法相互结合的网络模型。 人工神经网络学习问题展望,目前主要有以下三种方法:基于搜索机制的学习 方法、基于规划的学习方法和构造性学习方法。如今也有其综合方法,各有特点。 其中基于搜索的方法,若不从根本上进行改变,很难克服其内在固有的缺点,如基 于局部最小的搜索算法,其中 bp 算法就有易限于局部极小的固有缺点;规划方法因 为其中有“优化的步骤” ,从理论上看其所得网络性能要比其他方法要好,但如何确 定核函数形式和参数问题一直是未能很好解决的问题,当数据规模极大会引起计算 量过大问题;构造性方法,因为进行了局部化,计算量要小,由于未进行全局优化, 故性能不及规划方法,不需要确定映射关系就没有了确定核函数的困难问题;如果 能够将三者相互结合,将规划方法中优化过程合理地引入到构造方法中,也许即可 克服规划方法计算量大的问题,核函数和参数确定问题,也可以克服构造性方法未 进行全局优化的缺点;这些将是值得研究的问题。随着更多数学方法的引入,如模 拟退火算法、商空间(即线性空间)理论、统计推断方法与启发式搜索技术及其结 合产物的引入,促进各种学习方法的改进,将有力的推进神经网络的进一步发展。 随着神经网络的广泛应用,具有以下研究趋势:增强对智能和机器的关系问题 的认识,发展神经计算与进化计算的理论与应用,扩大神经网络结构和神经元芯片 的作用,促进信息科学与生命科学的相互融合,进行与其他智能方法融合技术研究。 第 8 页 装 订 线 1.3 研究目的、方法和问题(bp 神经网络) 131 研究目的 在人工神经网络发展历史中,很长一段时间里没有找到隐含层的连接权值调整 问题的有效算法。直到误差反向传播算法(bp 神经网络算法)的提出,成功地解决 了求解非线性连续函数的多层前馈神经网络权值调整问题。目前,bp 神经网络已成 为广泛使用的网络,可用于语言综合、语言识别、自适应控制等。它是一种多层前 馈网络,采用最小均方差的学习方式,缺点是仅为有导师训练,训练时间长,易限 于局部极小。 鉴于神经网络的广泛应用,特别是 bp 神经网络的发展,对于神经网络(比如 bp 神经网络)的研究具有重要意义。研究的主要目的是:理解 bp 网络结构模型;学习 误差反向传播算法和 bp 神经网络的学习算法;分析关键因素,得出 bp 网络的优缺 点;综合各种因素并使用启发式方法对 bp 神经网络算法进行改进;应用数学软件 matlab 对 bp 神经网络标准算法和改进算法进行仿真编程;利用仿真结果和图表得 出各个算法适用条件;进而研究实际问题的 bp 神经网络构建和仿真。 132 研究方法 通过参考研究学习神经网络研究和工作者的著作和文章,理解神经网络,特别 是 bp 神经网络的结构模型和理论;利用现有的数学理论知识和方法,推导反向传播 算法计算;利用计算机程序设计理论编写 bp 神经网络学习算法的步骤和流程;分析 bp 标准算法关键因素,利用现有数学相关方法(如启发式方法,matlab 中几种典型 的 bp 神经网络算法:traingdm,增加动量法;trainrp,弹性 bp 算法; traingda,traingdx,自适应学习速率法;traincgf,共轭梯度法;trainbfg,拟 牛顿法;trainlm,levenberg-marquardt 算法)对 bp 神经网络算法改进和理论推 导;利用优秀数学软件 matlab 进行 bp 网络学习算法的仿真编程,分别建立 bp 神经 网络标准算法、改进算法的编程程序,利用 matlab 得出相关图表,分析其关键因素; 应用实例对 bp 神经网络的应用和仿真进行验证;通过自己的理解和学习得出自己对 神经网络(bp 神经网络)的思考。 133 研究问题 研究问题 1:bp 神经网络的学习过程,工作信号正向传播,误差信号反向传播。 得到如下图 1-1 示意模型:(多层前馈型网络) 第 9 页 装 订 线 输入层 隐含层 输出层 误 差 信 号 图 1.1 bp 神经网络示意模型 输 入 信 号 研究问题 2:bp 神经网络的不足,训练时间较长,有时完全不能训练,失败的 可能性也较大,易陷于局部极小而得不到全局最优,隐含节点个数难以确定,训练 过程有暂时遗忘的现象即学习新样本有遗忘旧样本的趋势。 研究问题 3:bp 神经网络学习算法的改进有(matlab 神经网络工具箱中):增 加动量法(traingdm)、弹性 bp 算法(trainrp) ,自适应学习速率法(traingdx)、共 轭梯度法 (traincgf)、拟牛顿法 (trainbfg)以及 levenberg-marquardt 算法 (trainlm)等。注:在 matlab r2007 版本中 traingdx 为动量及自适应 lrbp 的梯 度递减训练函数。 研究问题4:误差要求和网络复杂程度将影响bp各种算法的选择;比如拟牛顿法 需要hessian矩阵,不适用于复杂的大型网络,但对于中型网络其收敛效果仅次于lm 算法,且需要的内存也相对较小,但对于小型网络lm算法最好最快,仿真效果要好; 又如当误差要求比较高时,弹性bp算法和自适应学习速率法需要很长的训练时间, 在设定的训练步骤范围内不能达到期望误差。 研究问题 5:在实例的网络模型的建立和 matlab 仿真的过程中,发现没有确定 隐含层神经元数目的有效方法,隐含层神经元的数目直接影响分类精度,神经元数 目过多或过少都会使网络性能下降,一般只能由经验设定,再经过多次调试确定最 佳数目。其次网络的泛化能力与训练能力的矛盾,一般情况下,训练能力差时,预 测能力也差,并且一定程度上随训练能力地提高,泛化能力也提高。但这种趋势有 一个极限,当达到此极限时,随训练能力的提高,泛化能力反而下降,即出现所谓 “过拟合”现象。此时,网络学习了过多的样本细节,而不能反映样本内含的规律。 第 10 页 装 订 线 2.bp 神经网络 2.1 bp 神经网络相关原理 211 神经元非线性模型 f( ) k wk1 wk2 wki 固定输入 x0=+1 x1 x2 阈值 k k 激活函数 输出 yk 图 2.1 神经元非线性模型 加法器 xi 加法器,也称线性组合器,将求输入信号突触权值被神经元的相应突触加权和; 激活函数是用来限制神经元的振幅,主要有0,1或-1,+1; 阈值的作用是根据其为正或负,相应的增加或减低激活函数的网络输入。 注:这里的 k 为实例。模拟的是生物神经元的电位脉冲原理。 212 有教师监督学习 环境 教师 学习系统 实际响应 描述环境 状态向量 期望模式 输入模式 + - 误差信号 ek 图 2.2 有教师学习方框图 期望响应 第 11 页 装 订 线 有教师学习采用的是纠错规则,在网络的学习训练过程给神经网络一个期望模 式和输入模式,所期望的模式就是教师信号,因此可以将输入模式所得的结果与期 望模式的结果相比较,当不相符时,可以根据相关规则进行权值调整,比如上述的 delta 规则,直到满足一定误差 范围内,这将更接近期望模式结果。由此可见,在 执行具体任务之前必须经过学习,直到“学会”为止。 213 神经元数学模型 设在 n 时刻,神经元 i 到神经元 j 的信息传递,其输入信息为 xi(n),输出为 oj(n),则神经元 j 的数学表达式为 (式 2.1) 其中 是神经元 i 到 j 的突触连接权值ijw 是输入和输出间的突触时延 j 是神经元 j 的阈值 f 是神经元激活函数 如果 , ,又 =-1, = ( )可得:tijjjjw),.(21tixx),.(210jw0kb 。)xfotj 214 delta 学习规则 delta 学习规则,也称连续感知器学习规则,与离散感知器学习规则并行。其规 则的学习信号规定为: (式 2.2) 为了方便计算,定义神经元 j 的期望误差与实际输出之间的计算误差为 (式 2.3) 按照误差的负梯度修正权值,即: (式 2.4) (式 2.5) 其中 是学习率,00 常数,通常 a=1.7159.b=2/3。 因此,f(1)=1,f(-1)=-1,f(0)=ab=1.71592/3=1.1424,斜率接近单位 1,在 x=1 时 二阶导数最大。在误差反向传播计算中所用的是 s 型对数函数,同理可以使用 s 型 正切函数,并对其求导推导。 s 型对数函数不是奇函数,工作范围是0,1 。而双极性 s 型正切函数除了本 身符合连续可微的条件外,具有双极性输出,它常常被选用为要求输入是1 范围 的信号,关于它们的选择主要从函数自身的工作范围及其导数值的大小范围以及结 构简单和运算速度快等思想考虑。 由此可见,研究 bp 神经网络激活函数是今后研究的一个重要课题。 244 学习率 选择影响分析 首先,学习率是随时间改变的,为了方便,在反向传播算法计算过程中采用的 是不变的学习率。下面是理想学习率示意图和一些规则: xaexfx,0;1)( aeebaf bxbx12)tnh()( 迭代次数 n e(n) 收敛速率 图 2.8 理想学习率示意图 第 20 页 装 订 线 根据反向传播计算式得知,学习率 越大权值的变化就越大,则 bp 算法的学 习收 敛速度就越快,过大则引起网络的振荡,导致网络的不稳定以及性能低下,当超过 某一极值容易引起算法不稳定。相反学习率 小可以避免网络的振荡,但导致学习 收敛速度的下降。经过实践证明来说,输出单元的局向梯度比输入端大,为此输出 单元的 应小些;有较多输入端的神经元的 要比有较少的输入端的神经元的 小些;对于一个给定的神经元,其学习率应与神经元的突触连接的平方根成反比。 在 bp 改进算法中引入了动量法解决 的学习过程变化问题,增加网络的稳定 性,加快学习收敛速度,如 matlab 中使用动量及自适应 lrbp 的梯度递减训练函 数。此外有很多研究人员采用遗传算法和免疫算法 bp 神经网络的学习率进行优化 设计并简历数学模型,下面是一个简单的优化的学习率变化公式: 其中 n 为迭代次数,a 和 根据工程应用的复杂性和结构优化的模糊性,对不同的 系统和要求取不同的范围,一般情况下,1a50,0.00010.001。 (参考文 献 10) 245 输入输出归一化影响分析 在输入样本训练网络时,如果所有输入样本的输入信号都为正值或负值,则与 第一隐含层的神经元权值只能同时增加或减小,从而导致学习速度很慢。因此需要 对输入信号进行归一化处理,使得所有样本的输入信号均值接近零或者其标准方差 比较小。 归一化的问题旨在是归纳统一样本的统计分布性,改善其分布规律,具体是消 除均值,去相关性以及均方差均衡。归一化在0,1之间是统计的概率分布,归一化 在-1,+1之间是统计的坐标分布。网络的各个输入数据常常具有不同的物理意义和 不同的量纲,为此需要使网络训练一开始就给各训练输入向量以同等的身份地位。 bp 神经网络的神经元一般采用 sigmoid 激活函数,归一化可以防止输入信号数据绝 对值过大进入饱和区。另外,期望输出数据不进行归一化会导致数值大的分量绝对 误差大,数值小的绝对误差小,网络训练时只针对输出的总误差调整权值,因此在 总误差中所占份额少的输出分量相对误差较大。这些都将影响学习的速度。 处理的方法有,利用合理的变换等式将输入输出的数据变换为0,1或-1,+1(其 选择主要看激活函数的选择)之间的数据;当输入输出向量中某个分量的取值过于 密集时,由此可以将数据的点拉开一定距离,适当变换分布,改善分布规律。使用 nae 第 21 页 装 订 线 主分量分析法使训练样本的输入向量互不相关,去相关后的输入变量应调整其长度 使它们的方差近似相等,因此可以使网络中不同权值以大约相等的速度进行学习。 246 其他影响因素分析 关于能够改善 bp 神经网络性能和学习收敛速度的影响因素还有很多,比如输入 样本信息内容的选择问题、允许误差 的选择问题,从提示中学习的问题以及改进 误差函数等。 在输入样本信息选择问题上,为能在对权空间进行更多的搜索,需要以下两个 原则选择输入样本,使用训练误差最大的样本,使用的样本要与以前使用的有根本 区别。此外,在一个迭代过程给网络的训练样本分布是变形的,如果含有例外点或 错误标记的训练样本将会损坏输入空间更大区域的泛化能力,降低网络的性能。 允许误差 的选择也会影响学习的收敛速度和学习精度,我们一般采取一开始 将允许误差取大些,然后逐渐减少的做法,这样是对网络训练的宽容,也是因为网 络的训练往往很难达到期望的值,也是为了加快学习速度,也要参考具体问题所要 求的精度。 提示学习是利用现有的关于函数的先验知识(如函数的不变性、对成性以及其 他特性)来提高函数的逼近能力,这就需要从学习样本中提取有关输入输出函数的 信息,推断出能够逼近输入输出函数的函数,在学习中嵌入这样的提示,使用统计 分布的方法建立虚拟样本,也增加了网络的泛化能力,加快了学习速度。 改进误差函数,标准的误差函数采用的是(这也是为了方便计算) 随着学习次数的增加, 越来越小,使函数逼近速度减慢,这样对高度非线性 样本的逼近精度得不到保证,为此用绝对和相对逼近精度来描述次误差函数,即 其中 和 是常量系数。12 在样本学习初期,以绝对形式的误差函数来指导权值的修正;学习后期,以相对形 式函数误差为主:则 随着学习次数的增加而减少,则 随学习次数的增加而增加。12 有的学者提出采用熵类准则函数或分类启发准则(参见参考文献11) 。 2.5 bp 学习算法的改进 251 bp 学习算法的优缺点 bp 学习算法优点: bp 学习算法具有数学理论依据可靠,推导过程严谨,通用性好,解决了求解非 线性连续函数的多层前馈神经网络权值调整问题,具有实现任何复杂非线性映射的 功能,特别适合求解内部机制的复杂问题。它具有自学习、自组织、自适应性和很 jjjjydne2)(21)(jjyd221 )1(4)(4)( jjjjjjjj ydyne 第 22 页 装 订 线 强的信息综合能力,能够同时处理定量和定性信息,协调多种输入的关系并进行推 广概括,实行并行处理,适用于处理复杂非线性和不确定的对象。 bp 学习算法缺点: 基于梯度下降法及目标函数复杂,导致训练次数多,训练时间较长,收敛缓慢; 基于局部搜索的优化方法,导致有时完全不能训练,失败的可能性也较大,易陷于 局部极小而得不到全局最优;网络结构的选择尚无统一完整的理论指导,隐含节点 个数难以确定,而网络的结构直接影响网络的逼近能力及推广性质;训练过程有暂 时遗忘的现象即学习新样本有遗忘旧样本的趋势;学习复杂性问题,即网络容量的 可能性与可行性的关系问题,难以解决应用问题的实例规模和网络规模的矛盾问题; 还有诸如新加入训练样本的要求及对已学习成功网络的影响,网络泛化能力和训练 能力的极限问题等。 鉴于 bp 学习算法的优缺点,增强 bp 神经网络的性能和应用,目前主要有如下 几种改进方法。此外还有一些诸如增加遗忘因子、误差曲面陡度因子的方法,以及 将多种方法和相关数学原理相结合的方法(具体请参考相关文献) 。 252 增加动量项 在前面提到学习率的变化会影响网络的性能,为此在权值调整公式中增加一个 动量项,达到微调权值修正量防止振荡的效果。这样通过动量法不仅考虑了误差在 梯度上的作用,而且考虑了误差曲面上变化的方向。 其中 是动量因子,一般有 (0,1)动量项反应了以前的调整经验,对下一 时刻的调整起到一定阻尼作用。因此可以减小振荡的趋势,促使权值的调节向着误 差曲面的底部的平均方向变化,降低了网络对误差曲面在局部细节的敏感性,在一 定程度上缓解局部极小问题,但是难以避免收敛缓慢问题。 253 弹性 bp 学习算法 bp 学习算法常用 sigmoid 函数,即 其特点是可以把无限的输入映射到有限的输出,如果函数的输入很大或很小的时候, 函数的斜率接近于零,这样采用梯度下降法使用sigmoid函数的网络就带来一个问题: 梯度幅度的不利影响,即尽管权值和阚值离其最佳值相差甚远,但此时梯度的幅度 非常小,导致权值和阈值的修正量也很小,使得训练时间变得很长。所以在权值修 正的时候仅仅用偏导的符号,而其幅值不影响权值的修正,即权值的修正取决于与 幅值无关的修正值。当连续两次迭代的梯度方向相同时,可将权值和阈值的修正值 乘以一个增量因子。使其修正值增加;当连续两次迭代的梯度方向相反时,可将权 值和阈值的修正值乘以一个减量因子,使其修正值减小;当梯度为零时,权值和阈 值的修正值保持不变;当权值的修正发生振荡时,其修正值将会减小。如果权值在 )()1()()( nwnynwijijij xexf1)( 第 23 页 装 订 线 相同的梯度上连续被修正,则其幅度必将增加,从而克服了梯度幅度的不利影响, 即 (当连续两次迭代的梯度方向相同时) (当连续两次迭代的梯度方向相反时) (当局向梯度g(n)为零时) 其中 是第n次迭代的权值或阈值的幅度修正值, 为增量因子, 为减量因)(x inckdeck 子,sign(g(n)代表局向梯度g(n)的符号函数。 254 自适应学习速率法 在bp学习算法中,网络权值调整取决于学习率和局向梯度,首先要说明的是学 习率是随时间改变的,只是在上面的反向传播算法推导过程采用的是不变的值。在 自适应的学习速率法中学习率的调整规则有很多种办法,目的是为了把学习率在整 个训练过程得到合理的调节。 第一种方法是将动量因子和学习率同时调整,其中动量因子的调整倍率要大些。 基本思想:当前误差与前一次误差比较,如果误差出现反弹或持平,说明学习率过 大,那么将学习率降到原来的60% ,然后再按5% 的速度递增;如果误差持续下降, 学习率继续递增;当误差再出现反弹或持平时,再将学习率下调40%;这样反复跳 跃以刺激收敛速度,同时这种跳跃还可以避免寻优搜索陷入局部极小值。 (误差反弹或持平) (误差持续下降) 第二种方法是设一个初始学习率,若在一批权值调整后总误差升高,则本次的 调整无效,并且令 ;若总误差下降,则本次调整有效,并)1()1(n 且令 。)1(n 通过学习率的自适应调整,使学习过程中从误差曲面中找到合适的学习率,在 平坦区域加速,在凹处减速,避免出现振荡导致的迭代次数增加,加快收敛速度。 如果将增加动量法和自适应学习速率法结合起来,既可抑制网络陷入局部极小,又 加快学习。但都是基于梯度下降法,它们只利用了目标函数对网络权值和阈值的一 阶导数信息。因此,对于复杂问题还存在收敛速度缓慢的问题。 255 共轭梯度法 在基本的bp学习算法中,相邻迭代的搜索方向是正交的,当接近极值时会发生 振荡。共轭梯度法是利用正交性构成的共轭搜索方向,使得在最速下降方向(误差 曲面中对权值向量调整是在最速下降的方向,与梯度向量方向相反)通过把过去的 梯度和现在某点的梯度信息线性组合起来(前一点的梯度乘以适当系数加到该点的 )()()(1nxkgsidecin)1()()(05.)(16)()()(1 nennwywnn ijijij ijijij 第 24 页 装 订 线 梯度)构造更好的搜索的方向,搜索目标函数极值,沿共轭方向达到全局最优,为 此这种无约束最优化方法能有效提高算法性能。 为了确保搜索方向的共轭性,初始搜索方向取负梯度方向,当由于误差积累使 得搜索方向变得非下降时,可以以负梯度方向重新开始搜索。bp算法改进如下: 其中 为共轭因子, 为共轭方向(设w是nn的正定矩阵,如果存在两个)(n)(dir 方向dir 1和dir 2使得dir 1w dir2=0,则这两个方向关于w共轭) , 为当前梯度,n为)(g 迭代次数。最后一个式子是基于共轭方向的权值修正。 上述式子在初始时 如此迭代而已。在试验中得知在高维函数或向量的训练将会达到更好的效果。请参 考3.2.3仿真结果比较与分析。 256 levenberg-marquardt 算法 l-m算法(也称阻尼最小二乘法)较上面基于梯度下降法的算法要快的多,但需 要更多的内存存储雅可比(jacobian)矩阵,对于中等规模的网络是一种很好的选 择,对于大型网络可以将雅可比矩阵分为多个小矩阵的方法,减少了内存却增加了 学习时间。权值调整量为: 其中 为误差向量,j为网络误差对权值偏导的雅可比矩阵,i是单位矩阵, 为阻je 尼因子( 是自适应调整的,使得该方法在gauss-newton法( 时)和梯度下 0 降法( 时)之间光滑变化) ,n为学习步长。 分析:l-m算法根据迭代的结果动态地调整阻尼因子,即动态地调整迭代的收敛方向, 可使每次的迭代误差函数值都有所下降。它是gauss-newton法和梯度下降法的结合, 收敛速度较快。但l-m算法在计算过程中有雅可比矩阵会产生大量的中间结果,因此, 需要较大的内存空间。在matlab神经网络工具箱中,该算法被作为默认的训练函数。 在上面的分析可以得出,该算法的基本思想是使其每次迭代不再沿着单一的负 梯度方向,而是允许误差沿着恶化的方向进行搜索,同时通过在和gauss-newton法 )()()()()1( )1()()( wgwnnndirggijij ijt dir(n)g(0)dir(n+1) 图 2.9 共轭梯度向量示意 图 )1()(1)2( 0)0()(wijgdir gdirwiij )()()() 1nejinjnwjttij 第 25 页 装 订 线 和梯度下降法之间自适应来优化网络权值,使网络能够有效的收敛,大大提高了网 络的收敛速度和泛化能力。具体迭代步骤如下: 将所有输入送到网络并计算出网络输出,用误差函数计算出所有的误差平方和 计算出误差对权值偏导的雅可比矩阵: 用w+w重复计算误差平方和(如果新的和小于中计算的和,则用除以 (1) ,并有w+w转;否则用乘以,转;当误差平方和减小到某一 目标误差时,算法即被认为收敛) 注:从2.5.2至2.5.6参考大量学术论文及文献,由于参考的文献众多,在这里就不 一一指明,但大都附在论文后面的参考文献中,在此对参考文献的作者表示感谢和 歉意。 mmwnenewweewmnj )()()( )2()2()( 11)( 2111 niilme2)()()()()()( jinjnwjttij 第 26 页 装 订 线 3.bp 神经网络仿真 3.1 仿真平台 matlab 311 matlab 简介 matlab 是 matrit laboratory 的英文缩写,中文意思是矩阵实验室,是美国 mathworks 公司出品的商业数学软件,它的内核是采用 c 语言编写,是一种以矩阵 为基本数据元素,面向科学计算与工程计算的可视化软件。matlab 可以进行矩阵运 算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主 要应用于工程计算、控制设计、信号处理与通讯、图像处理、鲁棒控制、信号检测、 金融建模设计与分析等领域。在新的版本中也加入了对 c,fortran,c+ ,java 的 支持。可以直接调用,用户也可以将自己编写的实用程序导入到 matlab 函数库中方 便自己以后调用,此外许多的 matlab 爱好者都编写了一些经典的程序,用户可以直 接进行下载就可以用。 312 仿真平台的构建和策略 由于 matlab 的诸多优点,bp 神经网络的仿真采用 matlab 数学软件,安装在单 机 windows xp 系统中,所使用的 matlab 版本为 r2007b。应用 matlab 中神经网络 工具箱函数使用 matlab 自身语言进行编程。 仿真的具体步骤为:确定信息的表达方式:将实际问题抽象成神经网络所能 接受的数据形式;确定网络结构模型,本仿真将选取输入层,一个隐含层和输出 层的 bp 网络模型;选择网络参数:如神经元数,隐含层数等;确定训练模式, 选择训练算法,确定训练步数,指定训练目标误差等;网络测试:选择

温馨提示

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

最新文档

评论

0/150

提交评论