首页 BP神经网络算法

BP神经网络算法

举报
开通vip

BP神经网络算法免费毕业论文 http://www.51tike.com BP神经网络算法 摘 要 人工神经网络,是由大量处理单元(神经元)组成的非线性大规模自适应动力系统。它具有自组织,自适应和自学习能力,以及具有非线性、非局域性,非定常性和非凸性等特点。它是在现代神经科学研究成果的基础上提出的,试图通过模拟大脑神经网络处理,记忆信息的方式设计一种新的机器使之具有人脑那样的信息处理能力。 作...

BP神经网络算法
免费毕业论文 http://www.51tike.com BP神经网络算法 摘 要 人工神经网络,是由大量处理单元(神经元)组成的非线性大规模自适应动力系统。它具有自组织,自适应和自学习能力,以及具有非线性、非局域性,非定常性和非凸性等特点。它是在现代神经科学研究成果的基础上提出的,试图通过模拟大脑神经网络处理,记忆信息的方式设计一种新的机器使之具有人脑那样的信息处理能力。 作为人工智能的重要组成部分,人工神经网络有较大的应用潜力。本文阐述了神经网络的发展、现状及其原理,介绍了神经网络在航空航天业、国防工业、制造业等诸多方面的应用。BP神经网络是目前应用较多的一种神经网络结构。它能以任意精度逼近任意非线性函数,而且具有良好的逼近性能,并且结构简单,是一种性能优良的神经网络。 本文阐述了BP神经网络的基本原理,详细 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 BP算法、动量BP算法以及学习率可变的BP算法等几种流行的BP神经网络学习算法,详细的介绍了这几种算法的优缺点,并给出了各种算法的仿真程序,通过仿真结果对各种算法进行比较后有针对性的提出了BP算法的一种改进——变梯度BP算法。对于改进的BP算法,本文不仅从理论方面对其进行了深入的分析,还介绍了该算法的详细思路和具体过程,将算法训练后的BP神经网络运用到函数逼近中去。仿真结果表明,这种改进方案确实能够改善算法在训练过程中的收敛特性,而且提高收敛速度,取得令人满意的逼近效果。 关键词: 人工智能;BP神经网络;变梯度法;改进 Abstract Artificial neural network, by the large number of processing units (neurons) composed of large-scale adaptive nonlinear dynamic systems. It is self-organization, adaptive and self-learning ability, as well as non-linear, non-local, non-steady and non-convex and so on. It is in modern neuroscience research on the basis of the results, trying to simulate the brain network processing, memory about the means to design a new machine so that it is the human brain, as the information processing capability. As an important component of artificial intelligence, artificial neural networks have greater potential applications. This paper describes the development of a neural network, the status quo and its principles, introduced a neural network in the aerospace industry, defense industry, manufacturing and many other aspects of the application. BP neural network is more of a neural network structure. Approaching it with any precision arbitrary nonlinear function, but also has a good approximation performance, and simple structure, is a good performance of neural networks. In this paper, BP neural network the basic principles, detailed analysis of the standard BP algorithm, momentum BP algorithm and the variable rate of learning, such as BP algorithm several popular BP neural network learning algorithm, described in detail the advantages and disadvantages of these different algorithms And gives a variety of algorithm simulation program, through the simulation results of the various algorithms to compare targeted after BP made an improved algorithm - BP change gradient algorithm. BP to improve the algorithm, the paper not only from the theoretical aspects of their in-depth analysis, also described the algorithm is detailed ideas and specific process, method of training to use BP neural network to function approximation. The simulation results show that this improvement programme is to improve the training algorithm in the process of convergence characteristics, and improve the convergence rate, a satisfactory approximation. Keywords: Artificial intelligence; BP neural network; change gradient method; improve 目 录 1第一章 绪论 11.1人工神经网络的发展史 31.2人工神经网络的应用 7第二章 人工神经网络的基本原理及模型 72.1神经网络构成的基本原理 72.1.1人工神经元模式 72.1.2连接权值 82.1.3神经网络状态 82.1.4神经网络的输出 82.2神经网络的结构 102.3神经网络的特点 112.4神经网络的学习方式 112.5几种典型的神经网络 15第三章 BP神经网络算法的改进及其仿真研究 153.1 BP算法的数学描述 183.2 BP网络学习算法 183.2.1标准BP算法 203.2.2动量BP算法 213.2.3学习率可变的BP算法 223.3 BP算法的缺陷 233.4 BP算法的一种改进——变梯度BP算法 233.4.1共轭梯度法 243.4.2改进共轭梯度法 263.5 BP网络应用实例 263.5.1一般BP算法及其改进算法训练过程的不同 273.5.2 BP神经网络的函数逼近 28结束语 29参考文献 30致 谢 31附 录 第一章 绪论 1.1人工神经网络的发展史 早在20世纪初,人们就已经发现人脑的工作方式与现在的计算机是不同的。人脑是由极大量基本单元(称之为神经元)经过复杂的相互连接而成的一种高度复杂的、非线性的、并行处理的信息处理系统。 人工神经网络(artificial neural network,ANN),是借鉴人脑的结构和特点,通过大量简单处理单元(神经元或节点)互连组成的大规模并行分布式信息处理和非线性动力学系统。它具有巨量并行性、结构可变性、高度非线性、自学习性和自组织性等特点。因此,它能解决常规信息处理方法难以解决或无法解决的问题,尤其是那些属于思维(形象思维)、推理及意识方面的问题。 从人脑的生理结构出发来研究人的智能行为,模拟人脑信息处理的过程,即人工神经网络的研究,自20世纪40年代以来,它的发展经历了一条由兴起、萧条和兴盛三个阶段构成的曲折道路[1][2][3]。 早在1943年精神病学家和神经解剖学家McCulloch与数学家Pitts在数学生物物理学会刊《Bulletin of Mathematical Biophysics》上发表文章,总结了生物神经元的一些基本生理特征,提出了形式神经元的数学描述与结构,即MP模型。他们的神经元模型假定遵循一种所谓“有或无”(all-or-none)规则。如果如此简单的神经元数目足够多和适当设置突触连接并且同步操作,McCulloch和Pitts证明这样构成的网络原则上可以计算任何可计算函数。这是一个有重大意义的结果,有了它就标志着神经网络和人工智能学科的诞生。 1949年生理学家D.O.Hebb出版了《The Organization of Behavior》(行为组织学)一书。该书第一次鲜明提出了神经元连接强度的Hebb规则。他认为学习过程是在突触上发生的,突触的联系强度随其前后神经元的活动而变化。根据这一假设提出的学习规则为神经网络的学习算法奠定了基础,使神经网络的研究进入了一个重要的发展阶段。 1954年Minsky在Princeton大学撰写了“神经网络”的博士论文,题目是《Theory of Neural-Analog Reinforcement Systems and Its Application tothe Brain-Model Problem》。1961年Minsky发表了早期关于人工智能(AI)的优秀论文“Steps Toward Artificial Intelligence”,论文的后半部包含了当今神经网络的大部分内容。1967年Minsky出版了《Computation:Finite andInfinite Machines》一书,它是第一本以书的形式扩展了McCulloch和Pitts1943年的结果,并把他们置于自动机理论和计算理论的背景中。 1958年,计算机科学家Rosenblatt提出感知机(Perceptron),首次把神经网络理论付诸工程实现。这是一种学习和自组织的心理学模型,它基本上符合神经生物学的知识,模型的学习环境是有噪声的,网络构造中存在随机连接,这是符合动物学习的自然环境。当时,人们对神经网络的研究过于乐观,认为只要将这种神经元互连成一个网络,就可以解决人脑思维的模型问题。 但是,随之而来的Minsky和Papert(1969)所著的《Perceptron》一书,利用数学证明单层感知器所能计算的根本局限,提出感知器的处理能力有限,甚至连XOR这样的问题也不能解决,并在多层感知器的总结章中,论述了单层感知器的所有局限性在多层感知器中是不可能被全部克服的。当时人工智能的以功能模拟为目标的另一分支出现了转机,产生了以知识信息处理为基础的知识工程(Knowledge Engineering),给人工智能从实验室走向实用带来了希望。同时,微电子技术的发展,使传统的计算机的处理能力有很大提高,数字计算机的发展使当时科学界普遍认为它能解决一切问题,包括模式识别、机器人控制等。因而不必去寻找新的计算理论与实现方法。而且,当时的工艺水平还未能达到制作实用的具有足够规模的神经网络,用分离的电子管即使是晶体管所制作的神经网络也只能作示教星的表演。这些因素的共同作用,促使人们降低了对神经网络研究的热情,从而使神经网络进入萧条时期。 但在其间,一些人工神经网络的先驱仍然致力于这一研究,美国波士顿大学的Grossberg提出了自适应共谐振理论(ART网),芬兰的Kohonen提出了自组织映射(SOM),Amari致力于神经网络数学理论的研究,这些都为神经网络的进一步研究与发展奠定了基础。 1982年,美国加州工学院Hopfield提出Hopfield神经网络模型,开创了神经网络用于联想记忆和优化计算的新途径,有力地推动了神经网络的发展。1985年,Hinton和Sejnowsky等人提出了Boltzmann模型,首次采用了多层网络的学习算法,在学习中采用统计热力学模拟退火技术,保证整个系统趋于全局稳定点。1986年Remelhart和McClelland等人提出了并行分布处理的理论,同时,Werbos和Parker独立发展了多层网络的BP算法,这是目前最普遍的网络,广泛用于实际问题求解。 神经网络的发展已到了一个新时期,它涉及的范围正在不断扩大,其应用渗透到各个领域。在连接主义模式下,进化与学习结合的思想正在迅速发展,神经计算、进化计算正成为其发展的一个重要方向。1994年廖晓昕对细胞神经网络建立了新的数学理论与基础,得出了一系列结果,如平衡态的全局稳定性、区域稳定性、周期解的存在性和吸引性等,使该领域取得了新的进展。P.Werbos通过混沌、独立子系统的数学技术来理解人的认知过程,建立新的神经信息处理模型和框架。日本学者Amari.S将微分流形和信息集合应用于人工神经网络的研究,探索系统化的新的神经信息处理理论基础,为人工神经网络的理论研究开辟了条崭新的途径。神经网络理论有极强的数学性质和生物学特征,尤其是在神经科学、心理学和认识科学等方面提出了一些重大问题,是向神经网络理论研究的新挑战,也是它发展的机会。21世纪神经网络理论日益变得更加外向,不断产生具有重要意义的概念和方法,推进神经网络向更高阶段发展。 如今,神经网络的应用,已渗透到模式识别、图像处理、非线性优化、语音处理、自然语言理解、自动目标识别、机器人、专家系统等各个领域,并取得了令人瞩目的成果。神经网络理论也已成为涉及神经生理科学、认识科学、数理科学、心理学、信息科学、计算机科学、微电子学、光学、生物电子学等多学科的新兴的、综合性的前沿学科。 从众多应用研究领域取得的丰硕成果来看,人工神经网络的发展具有强大的生命力。当前存在的问题是智能水平还不高,许多应用方面的要求还不能得到很好的满足;网络分析与综合的一些理论性问题(如稳定性、收敛性的分析,网络的结构综合等)还未得到很好的解决。随着人们对大脑信息处理机理认知的深化,以及人工神经网络智能水平的提高,人工神经网络必将在科学技术领域发挥更大的作用。 1.2人工神经网络的应用 人工神经网络的应用领域极其广泛,1988年《DARPA神经网络研究报告》列举了不同领域神经网络的应用实例,见表1·1。从表中可以看出,神经网络在人工智能、自动控制、计算机科学、信息处理、机器人、模式识别等方面都有重要的应用实例。随着人工神经网络技术的发展,其用途日益广泛,应用领域也在不断拓展,已在各工程领域中得到广泛的应用[4]。 表1·1 神经网络应用实例 应用领域 应用实例 航空航天业 高性能飞机自动驾驶仪、飞行航线模拟、飞行器控制系统、自动驾驶仪增强器、飞机构件模拟、飞机构件故障 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 等 汽车业 汽车自动驾驶系统、保单行为分析 银行业 支票和其他文档读取、信用卡 申请书 入党申请书下载入党申请书 下载入党申请书范文下载下载入党申请书民事再审申请书免费下载 评估 信用卡行为检查 用于辨认与遗失的信用卡相关的不寻常的信用卡行为 国防工业 武器制导、目标跟踪与识别、脸部识别、新型传感器、声纳、雷达、图像处理与数据压缩、特征提取与噪声抑制、信号/图像识别 电子业 编码序列预测、集成电路芯片版图设计、过程控制芯片故障检测、机器人视觉、语音合成非线性建模 娱乐业 动画、特效、市场预测 金融业 房地产估价、贷款指导、抵押审查、集团债务评估、信用曲线分析、有价证券交易程序、集团财政分析、货币价格预测 工业 预测熔炉产生的气体和其他工业过程,以取代复杂而昂贵的仪器设备 保险业 政策应用评估,产出最优化 制造业 制造业过程控制、产品设计与分析、过程与机器诊断、实时微粒识别、可视化质量检测系统、焊接质量分析、纸质预测、计算机芯片质量分析、化学产品设计分析、机器保养分析、工程投标、经营与管理、化学处理系统的动态建模等 医药 乳腺癌细胞分析,EEG和ECG分析,假体设计,移植时间最优化,降低医疗费用支出,提高医疗质量 石油天然气 勘探 机器人技术 行走路线控制、铲车机器人、操纵控制器、视觉系统等 语音 语音识别、语音压缩、元音分类、文本-语音合成等 有价证券 市场分析、自动债券评级、股票交易咨询系统等 电信业 图像与数据压缩、自动信息服务、实时语言 翻译 阿房宫赋翻译下载德汉翻译pdf阿房宫赋翻译下载阿房宫赋翻译下载翻译理论.doc 、用户付费处理系统等 交通 卡车刹车诊断系统、车辆调度、行程安排系统等 神经网络比较擅长的应用领域如下: (1) 模式识别 神经网络经过训练可有效的提取信号、语言、图像、雷达、声纳等感知模式的特征,并能解决现有启发模式识别系统不能很好解决的不变量测量、自适应、抽象或概括等问题。这方面的主要应用有:图形、符号、手写体及语音识别,雷达及声纳等目标识别,药物构效关系等化学模式信息辨认,机器人视觉、听觉,各种最近相邻模式聚类及识别分类,遥感、医学图像分析,计算机视觉、计算机输入装置等。神经网络可应用于模式识别的各个环节:特征提聚、聚类分析、边缘检测、信号增强、噪音抑制、数据压缩以及各种变换、分类判决等。模式识别是人工神经网络特别适宜求解的一类问题,神经网络模式识别技术在各领域中的广泛应用是神经网络技术发展的一个重要侧面。 (2) 人工智能 专家系统是人工智能领域研究时间最长,应用最成功的技术,但人们在应用专家系统解决诸如语音识别、图像处理和机器人控制等这类似于人脑的形象思维的问题时,却遇到很大的困难。神经网络的问世为人工智能开辟了一条崭新的途径,成为人工智能研究领域中的后起之秀,它具有的自学习能力是传统专家系统望尘莫及的。神经网络技术能对不完整信息进行补全,根据已学会的知识和处理问题的经验对复杂问题作出合理的判断决策,给出较满意的解答,或对未来过程作出有效的预测和估计,从而使之在人工智能领域获得广泛的应用。这个方面的主要应用有:自然语言处理、市场分析、预测估值、系统诊断、事故检查、密码破译、语言翻译、逻辑推理、知识表达、智能机器人、模糊评判等。 (3) 控制工程 神经网络在诸如机器人运动控制、工业生产中的过程控制等复杂控制问题方面有独到之处。较之基于传统数学计算机的离散控制方式,神经网络更适宜于组成快速实施自适应控制系统。这方面的主要应用有:多变量自适应控制、变结构优化控制、并行分布控制、智能及鲁棒控制等。 (4) 优化计算和联想控制 由于并行、分布式的计算结构,神经网络在求解诸如组合优化(NP完备问题)、费心性优化等一系列问题上表现出高速的集体计算能力。在VLSI自动排版、高速通信开关控制、航班分配、货物调度、路径选择、组合编码、排序、系统规划、交通管理以及图论中各类问题的计算等方面得到了成功应用。 联想记忆的作用是用一个不完整的模糊的信息联想出储存在记忆中的某个完整、清晰的模式来。如何提高模式储存量和联想质量仍是神经网络的热点之一。目前在这方面的应用又内容寻址器、人脸识别器、知识数据库等。 (5) 信号处理 神经网络的自学习和自适应能力使其成为对各类信号进行多用途加工处理的一种天然工具,主要用于解决信号处理中的自适应和非线性问题。包括自适应均衡、自适应滤波、回拨抵消、自适应波束形成、自适应编码等自适应问题和各种非线性问题,如非线性区域的模式分类、系统辨识和高维非线性系统的检测、估计等问题,还可对病态问题进行求解。神经网络在弱信号检测、通信、自适应滤波等方面的应用尤其引人注目,并已在许多行业得到应用。 虽然神经网络在许多领域内都有成功的应用实例,但神经网络也不是尽善尽美的。目前,神经网络的理论研究和实际用途都在进一步探索之中,相信随着人工神经网络研究的进一步深入,其应用领域会更广,用途会更大。 第二章 人工神经网络的基本原理及模型 2.1神经网络构成的基本原理[3][5][6] 2.1.1人工神经元模式 神经网络是由大量简单处理单元组成,通过可变权值连接而成的并行分布式 图2·1神经元的一般描述 系统。神经元是人工神经网络的基本处理单元,它是一个多输入-单输出的非线性器件,其结构如图2·1所示。 图中,xi为输入信号,wij表示从第i个神经元到第j个神经元的连接权值,θj为第j个神经元的阈值。设sj为外部输入信号,yj为输出信号,在上述模型中第j个神经元的变换可描述为 (2·1) 这里采用的非线性函数f(x)可以是阶跃函数、分段函数及Sigmoid型函数。 2.1.2连接权值 人工神经网络的处理单元间相互连接,所有的连接构成一有向图。每一连接对应于一个实数,称为连接权值,或称为权重。权值的集合可看作是长期记忆。我们可以用权矩阵W来表示网络中的连接模式,W中的元素是wij。连接权值的类型一般分为激发和抑制形式,正的权值表示激发连接,相反,负的权值表示抑制连接。连接权值的连接方式是人工神经网络的特征描述。 2.1.3神经网络状态 在时刻t,每一个神经元都有一个实数值,称之为神经元状态,也叫做神经元的激励值,用xi表示神经元uj的状态,用X(t)表示神经网络的状态空间。在各种不同的神经网络类型中,状态空间可以作各种不同的假设。状态空间可能是续的,也可能是离散的;可能是有界的,也可能是无界的;可能在一个实数区间上取值,也可能取有限值;最常见的情形是取二值,即0和1两种状态,或-1和1两种状态,亦或是取连续实数值。 2.1.4神经网络的输出 对于每一个神经元,都有一个输出,并通过连接权值将输出传送给其相连的处理单元,输出信号直接依赖于处理单元的状态或激励值。这种依赖性通过输出变换函数fj对于处理单元uj的作用来表示。假如我们用zj(t)来定义t时刻神经元的ui输出那么 zj(t)=fj(xj(t)) (2·2) 或写成向量的形式 Z(t)=f(X(t)) (2·3) 这里,Z(t)是神经网络的输出向量,f定义为状态向量与每一个分量的对应函数。一般是在区间(0,1)上的有界函数。 人工神经网络模型,按它的网络性能分类,可以分成确定性的、随机性的、连续型的和离散型的网络。Hopfield网络模型就存在离散和连续两类。确定性是相对于随机性而言,当网络状态按概率分布变化就呈现了随机性。Boltzmann机就是这种类型的人工神经网络模型,该神经元取0和1两种状态,每个神经元状态的转换是一随机函数。 2.2神经网络的结构 除单元特性外,网络的拓扑结构也是NN的一个重要特性,按网络的拓扑结构分类,人工神经网络可分成3类[2][6]: (1)相互连接的网络 相互连接的网络中任意神经元之间都可能有连接,信息在神经元之间可以反复传递,造成网络状态的不断变化。系统整体从某一初始状态开始,经过不断的变化过程,最后进入某一平衡状态、周期振荡或其他状态。 (2)分层前馈型网络 分层前馈网络的神经元分层排列,并将其分为输入层、隐含层和输出层。各神经元接受前一层的输入,并输出给下一层,没有反馈(如图2·2·1所示)。节点分为两类,即输入单元和计算单元,每一计算单元可有任意多个输入,但只有一个输出(它可以耦合到任意多个其他节点作为其输入)。前馈型网络可分为不同的层,每一层的神经元只接收前一层神经元的输入,输入层接收外界的输入模式。输入模式经过各层神经元的响应处理变为输出层的输出。最常用的前馈神经网络就是BP神经网络(Backpropagation Neural Network)和RBF径向基函数网络(Radial Basis Function Neural Network)。 SHAPE \* MERGEFORMAT 图2·2·1具有一个隐层的前馈型网络 (3)反馈分层网络 如图2·2·2所示,该网络是在分层前馈网络基础上,将网络的输出反馈到网络的输入,反馈可以将全部输出反馈,也可以将部分输出反馈。所有节点都是计算单元,同时也可接受输入,并向外界输出。最典型的反馈神经网络就是Hopfield神经网络。 ANN的工作过程主要分为两个阶段,一个阶段是学习期,此时各计算单元状态不变,各连线上的权值通过学习来修改。第二阶段是工作期,此时连接权值固定,计算单元状态变化,以达到某种稳定状态。 SHAPE \* MERGEFORMAT 图2·2·2单层全连接反馈型网络 从作用效果来看,前馈型网络主要是函数映射,可用于模式识别和函数逼近。按对能量函数的所有极小点的利用情况,可将反馈型网络分为两类:一类是能量函数的所有极小点都起作用,主要用作各种联想存储器;另一类只利用全局极小点,它主要用于求解优化问题。 2.3神经网络的特点 神经网络的主要特点是: (1) 分布式储存信息。其信息的储存分布在不同的位置,神经网络是用大量神经元之间的连接及对各连接权值的分布来表示特定的信息,从而使网络在局部网络受损或输入信号因各种原因发生部分畸变时,仍然能够保证网络的正确输出,提高网络的容错性和鲁棒性。 (2) 并行协同处理信息。神经网络中的每个神经元都可根据接收到的信息进行独立的运算和处理,并输出结果,同一层中的各个神经元的输出结果可被同时计算出来,然后传输给下一层做进一步处理,这体现了神经网络并行运算的特点,这一特点使网络具有非常强的实时性。虽然单个神经元的结构极其简单,功能有限,但大量神经元构成的网络系统所能实现的行为是极其丰富多彩的。 (3) 信息处理与储存合二为一。神经网络的每个神经元都兼有信息处理和储存功能,神经元之间连接强度的变化,既反应了对信息的记忆,同时又与神经元对激励的响应以其反映了对信息的处理。 (4) 对信息的处理具有自组织、自学习的特点,便于联想、综合和推广。神经网络的神经元之间的连接强度用权值大小来表示,这些神经元之间的连接强度会不断增加,从而提高神经元对这些样本特征的反应灵敏度。 2.4神经网络的学习方式 一个神经网络仅仅具有拓扑结构还不能具有任何智能特性。必须有一套完整的学习、工作规则与之配合。人工神经网络的工作过程可分为以下两个阶段:第一个阶段是学习期,此时各计算单元状态不变,各连线上的权值通过学习来修改;第二阶段是工作期,此时各连接权固定,计算单元状态变化,以达到某种稳定状态。 神经网络中信息处理、传递是由网络结构的连接权实现的,而连接权值的大小则是通过在一定拓扑结构固定的条件下,遵循一定的原则,按照一定的方式,应用一定的学习算法训练得到的。 通过向环境学习获取知识并改进自身性能是神经网络的一个重要特点。在一般情况下,性能的改善是按某种预定的度量通过调节自身参数(如权值)随时间逐步达到的。对神经网络学习算法的研究是神经网络研究中最核心的部分。对于不同结构的神经网络,人们都研究出许多的学习算法和它们相对应。 神经网络的学习过程一般来说就是对神经网络权值调整的过程,数据网络能够根据样本模式逐渐调整权值,使得神经网络具有卓越的学习、记忆和处理信息的能力。 神经网络的学习方法有两大类[5][6][7]:有导师学习和无导师学习。对于有导师学习,神经网络的输出和希望的输出进行比较,然后根据两者之间的差的函数(如差的平方和)来调整网络的权值,最终使其函数达到最小。对于无导师学习,当输入的样本模式进入神经网络后,网络按照预先设定的规则(如竞争规则)自动调整权值,使网络最终具有模式分类等功能。 神经网络学习算法中最著名的是针对BP网络的误差反向传播学习算法,也就是梯度算法。它属于有导师学习,其原理就是从误差平方和对网络权值的梯度方向来修改网络的权值,从而使BP网络较快达到所希望的学习效果。当然,BP网络的梯度算法还存在一些问题,如易陷入局部极小点和收敛速度慢等。因此,人们对梯度算法的改进方案研究也成为热点问题。 2.5几种典型的神经网络 神经元的激活函数不同、拓扑结构不同、网络的学习算法、构成神经网络的方式不同,则神经网络对信息处理的方法和能力亦不同。下面介绍几种典型的神经网络。 (1)多层前向神经网络(Multilayer Feedforward NN or MFNN) 多层前向神经网络是目前应用较多的一种神经网络结构。它是由输入层、若干隐含层、输出层构成。各层神经元之间无连接。神经元以不同的非减函数,如Sigmoid函数、反正切函数、双曲函数等为激活函数。 多层前向神经网络结构如图2·5所示。 多层前向神经网络本质上是一种多输入、多输出的非线性映射。 Cybenko(1988,1989),Funahashi(1989),HechetNiesen(1989),Carroll&Dickinson(1989)等学者均对MFNN具有对人以连续函数的逼近能力予以系统的证明。其结论是,在一个相当宽的范围内,MFNN具有以任意精度逼近任意非线性连续函数的能力。在Funahashi(1989)的证明中,隐节点函数限定为有界单调递增连续函数。Hornik等人(1989)和陈天平发现,有界性是必要的,单调递增的限制条件并非必要。对网络的泛化机制和改进措施进行了系统的分析,指出最简单拓扑结构不仅有利于硬件的实现,也有利于网络泛化功能的改善,证明了MFNN仅用一个隐含层就可以逼近任意连续的非线性函数。MFNN这一特点使其在信号处理、非线性油画及系统辨识、非线性控制等领域具有广泛的应用前景。 SHAPE \* MERGEFORMAT 图2·5前向神经网络结构图 (2)径向基函数网络(Radial Basis Function Neural Network,RBFNN) 径向基函数网络RBFNN是一种特殊的神经网络,它是由Moody和Darken(1988,1989)基于大脑皮层中存在局部、重叠的感受域这一特性提出的。RBFNN网络与MFNN网络结构上十分相似。RBFNN实际上可以看作只有一个隐层的MFNN,其主要区别是RBFNN的激活函数为径向基函数。 但输出的RBFNN网络模型为 (2·4) 其中,wi为第i个隐节点与输出节点之间的连接权,ci为第i个隐节点的中心,为感受域(敏感域)。 同MFNN一样,理论上RBF网络也具有广泛的非线性适应能力。 (3)Hopfield神经网络(Hopfield Neural Network,HNN) Hopfield神经网络是美国物理学家J.J.Hopfield于1982年首先提出的。它主要用于模拟生物神经网络的记忆机理。Hopfield神经网络是一种全连接型的神经网络。对于每一个神经元来说,自己的输出信号通过其它神经元又反馈到自己,所以Hopfield神经网络是一种反馈型神经网络。 Hopfield神经网络有离散型(DHNN)和连续型(CHNN)两种。 Hopfield神经网络状态的演变过程是一个非线性动力学系统,可以用一组非线性差分方程(对于DHNN)或微分方程(对于CHNN)来描述。系统的稳定性可用所谓的“能量函数”(即李雅普诺夫获哈密顿函数)进行分析。在满足一定条件下,某种“能量函数”的能量在网络运行过程中不断减小,最后趋于稳定的平衡状态。 目前,人工神经网络常利用渐进稳定点来解决某些问题。例如,如果把系统的稳定点视为一个记忆的话,那么从初态朝这个稳定点的演变过程就是寻找该记忆的过程。初态可以认为是给定的有关该记忆的部分信息。这就是联想记忆的过程。如果把系统的稳定点视为一个能量函数的极小点,而把能量函数视为一个求解该优化问题的过程。由此可见,Hopfield网络的演变过程是一种计算联想记忆或求解优化问题的过程。实际上它的解并不需要真的去计算,而只要构成这种反馈神经网络,适当地设计其连接权和输入就可以达到这个目的。 (4)小波网络(Wavelet Neural Network) 由Zhang等人最先提出的小波网络(Wavelet Neural Network),是以近年来出现的小波分析为理论依据,是小波变换的一种实现方式。小波网络实际上是一种局部基函数网络,结构与RBF网络相类似,所不同的是它的基函数是由小波函数按分辨尺度伸缩与空间位置平移构成。所谓小波函数,就是由基函数经平移、伸缩形成的一簇函数,表示为 (2·5) 其中,a,b分别表示伸缩、平移系数。 其输出 (2·6) 其中,X=[x1,...xi,...]为输入向量,ai,bi为第i输入所对应的伸缩、平移参数。 第三章 BP神经网络算法的改进及其仿真研究 随着控制领域中不断出现新的控制思路和手段,人工神经网络作为一种新型的信息获取、描述和处理方式,正在引起过程控制届的注意。神经网络具有能够逼近任意非线性函数关系的能力和比较方便的学习手段,因此,它可以用来作为一种复杂工业过程建模的新型方法[7]。本文针对常用BP算法收敛速度慢,易陷入局部极小等缺点,对以往BP算法的各种改进进行了深入的分析和探讨。同时,借鉴Fletcher-Reeves线性搜索方法[8],探讨了基于Fletcher-Reeves方法的改进共轭梯度法。并对各种算法进行仿真和比较,实验结果表明,本文提出的改进共轭梯度方法可以有效提高网络的收敛速度,同时避免网络陷入局部极小点,达到全局最优。 3.1 BP算法的数学描述 1986年Rumelhart,Hinton和Williams完整而简明地提出一种ANN的误差反向传播训练算法(简称BP算法),系统地解决了多层网络中隐含单元连接权的学习问题,由此算法构成的网络我们称为BP网络。BP网络是前向反馈网络的一种,也是当前应用最为广泛的一种网络。 误差反传算法的主要思想是把学习过程分为两个阶段:第一阶段(正向传播过程),给出输入信息通过输入层经隐含层处理并计算每个单元的实际输出值;第二阶段(反向过程),若在输出层未能得到期望的输出值,则逐层递归地计算实际输出与期望输出之差值(即误差),以便根据此差值调节权值,具体来说,就是可对每一权重计算出接收单元的误差值与发送单元的激活值的积。 基于BP算法的多层前馈型网络的结构如图3·1所示。 这种网络不仅有输入层节点,输出层节点,而且有一层或多层隐含节点。对于输入信息,首先向前传播到隐含层的节点上,经过各单元的激活函数(又称作用函数、转换函数)运算后,把隐含节点的输出信息传播到输出节点,最后给出输出结果。网络的学习过程由正向和反向传播两部分组成。在正向传播过程中,每一层的神经元的状态只影响下一层神经元网络。如果输出层不能得到期望输出,就是实际输出值与期望输出值之间有误差,那么转向反向传播过程,将误差信号沿原来的连接通路返回,通过修改各层神经元的权值,逐次地向输入层传播去进行计算,再经过正向传播过程,这两个过程的反复运用,使得误差信号最小。实际上,误差达到人们所希望的要求时,网络的学习过程就结束。 SHAPE \* MERGEFORMAT 图3·1基于BP算法的多层前馈型网络的结构 BP算法是在导师指导下,适合于多层神经元网络的一种学习,它是建立在梯度下降法的基础上的。理论证明,含有一个隐含层的BP网络可以实现以任意精度近似任何连续非线性函数[9]。 设含有共L层和n个节点的一个任意网络,每层单元只接受前一层的输出信息并输出给下一层各单元,各节点(有时称为单元)的特性为Sigmoid型(它是连续可微的,不同于感知器中的线性阈值函数,因为它是不连续的)。为简单起见,认为网络只有一个输出y。设给定N个样本(xk,yk)(k=1,2,...,N),任一节点i的输出为 i,对某一个输入为xk,网络的输出为yk,节点i的输出为 ik,现在研究第l层的第j个单元,当输入第k 个样本时,节点j的输入为 (3·1) (3·2) 其中 表示l-1层,输入第k个样本时,第j个单元节点的输出。 采用的误差函数为 (3·3) 其中 为单元j的实际输出。总误差为 (3·4) 定义 于是 (3·5) 下面分两种情况来讨论: (1)若节点j为输出单元,则 (3·6) (2)若节点j不是输出单元,则 (3·7) 式中 是送到下一层(l+1)层的输入,计算 要从(l+1)层算回来。 在(l+1)层第m个单元时 (3·8) 将式(3·8)代入式(3·7)中,则得 (3·9) 总结上述结果,有 (3·10) 因此,反向传播算法的步骤可概括如下: (1)选定权系数初值; (2)重复下述过程,直到误差指标满足精度要求,即: :精度 (对k=1到N 正向过程计算:计算每层单元的 , 和 ,k=2,...,N。 反向过程:对各层(l=L-1到2),对每层各单元,计算 。 (修正权值 (3·11) (3)结束。 这里,训练样本的呈现顺序从一个回合到另一个回合必须是随机的。动量和学习率参数随着训练迭代次数的增加而调整(通常是减少的)。 3.2 BP网络学习算法 标准的BP算法是基于梯度下降法,通过计算目标函数对网络权值和阈值进行修正的。改进算法大多是在标准梯度下降法的基础上发展起来的,它们只用到目标函数对权值和阈值的一阶导数(梯度)信息。 3.2.1标准BP算法 在标准BP算法中,设k为迭代次数,则每一层权值和阈值的修正按下式进行 (3·12) 式中:x(k)为第k次迭代各层次之间的连接权向量或阈值向量。 为第k 次迭代的神经网络输出误差对各权值或阈值的梯度向量。负号表示梯度的反方向,即梯度的速度下降方向。 为学习速率,在训练时是一个常数。在MATLAB神经网络工具箱中,其默认值是0.01,可以通过改变训练参数进行设置。 Ek为第k次迭代的网络输出的总误差性能函数,在MATLAB神经网络工具箱中,BP网络误差性能函数的默认值为均方误差MSE(mean square error),以二层BP网络为例,只有一个输入样本时,有 (3·13) (3·14) 下面我们用一个具体实例来说明 例3·1已知某系统输出y与输入x的部分对应关系如表3·1所示。设计一BP神经网络,完成y=f(x)的曲线拟合。 表3·1 函数y=f(x)的部分对应关系 x -1 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 y -0.832-0.423 -0.024 0.344 1.282 3.456 4.02 3.232 2.102 1.504 x 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 y 0.248 1.242 2.344 3.262 2.052 3.456 4.02 3.232 2.102 1.504 以隐层节点数为15的单输入和单输出两层BP网络来实现其曲线拟和,其仿真图如下 图3·2·1 标准BP算法的误差性能曲线仿真结果 从仿真结果可以看出,权值和阈值的修正是在所有样本输入后,计算总的误差后 进行的,这样标准BP算法的收敛速度比较慢。 3.2.2动量BP算法 它的实质就是改变学习率η来提高网络性能,其网络连接权的迭代关系式由 传统BP算法 变为 (3·15) 其中,动量项 。 为动量因子, 。动量项的作用在于记忆上一时刻的连接权的变化方向(即变化量的值),这样就可以用较大的学习速率系数η以提高学习速度。附加动量项利用其“惯性效应”来抑制网络训练中可能出现的振荡,起到了缓冲平滑的作用。 此外,附加动量项还有利于脱离平坦区。如果网络的训练已进入了误差曲面 的平坦区域,那么误差将变化很小,于是 近似于 ,而平均的 将变为 (3·16) 为了便于比较我们就以例3·1为例,用动量BP算法进行仿真,其结果如图3·2·2所示: 由仿真结果可知,与传统BP算法的连接权修正量关系式(3·14)比较,可见添加附加动量项后,式中的系数增大为 ,从而有利于加快脱离饱和区。 图3·2·2 动量BP算法的误差性能曲线仿真结果 3.2.3学习率可变的BP算法[9][10] 该方法被认为是一种最简单最有效的方法。在BP算法中,连接权的调整决定于学习速率和梯度,但是,在基本BP算法中,学习速率是不变的。实际上学习速率对收敛速度的影响也很大,通过对它的在线调整,可以大大提高收敛速度。 学习速率的调整原则上是使它在每一步保持尽可能大的值,而又不致使学习过程失去稳定性。学习速率可以根据误差变化的信息和误差函数对连接权梯度变化的信息进行启发式调整,也可以根据误差函数对学习速率的梯度直接进行调整。 对于批处理可以根据总误差变化的信息进行启发式调整,其规则是: (1)若总误差E减小,则学习率增加。 (2)若总误差E增加,则学习率减小。当新误差与老误差之比超过一定值(例如1.04),则学习率快速下降(例如将实际值乘以因子b=0.7). 上述规则可用如下迭代方程来描述: (3·17) 其中参数的典型值为:a=1.05,b=0.7,k=1.04。上述方法可以在学习过程的每一步进行学习率的调整。 我们仍以例3·1为例,用学习率可变BP算法进行仿真,其结果如下 图3·2·3 学习率可变BP算法的误差性能曲线仿真结果 3.3 BP算法的缺陷 基于BP算法的神经网络从运行过程中的信息流向来看,它是前馈型网络。这种网络仅提供许多具有简单处理能力的神经元的复合作用使网络具有复杂的非线性映射能力而没有反馈,因此它不属于一个非线性动力学系统,而只是一个非线性映射。尽管如此,由于它理论上的完整性和应用的广泛性,所以它仍然有重要的意义,但它也存在着不少问题[11][12][13]。 (1)BP算法按照均方误差的梯度下降方向收敛,但均方误差的梯度曲线存在不少局部和全局最小点,这就使得神经网络易陷入局部极小(local minima); (2)BP学习算法的收敛速度很慢,可能会浪费大量时间; (3)网络的隐含节点数的选取尚缺少统一而完整的理论指导(即没有很好的解析式来表示); (4)已学习好的网络的泛化能力较差。 针对这些问题,需对基本BP算法做必要的改进,以加快收敛速度,达到最优化。 3.4 BP算法的一种改进——变梯度BP算法[14] BP网络采用的是基本BP算法,即负梯度算法,这种算法沿网络性能函数的负梯度方向调整权值和阈值。但是算法中相邻迭代的搜索方向正交,当接近极值时会发生“锯齿”形的振荡。虽然这是减低网络性能函数值的最快方法,但它存在收敛速度慢和易陷入局部极小的缺点。本文在此探讨通过变换梯度来加快网络训练的收敛速度的共轭梯度算法,利用这种算法改善收敛速度与收敛性能。 3.4.1共轭梯度法 与梯度下降法不同,基于数值优化的算法不仅利用了目标函数的一阶导数信息,而且往往利用了目标函数的二阶导数信息。它可以统一描述为 (3·18) 其中,X(k)为网络的所有权值和阈值组成的向量,S(X(k))为由X各分量组成的向量空间的搜索方向,a(k)为在S(X(k))方向上使达到极小的步长。这样,网络权值的寻优便可分为以下两步: (1)首先确定当前迭代的最佳搜索方向; (2)在此方向上寻求最优迭代步长。 共轭梯度法力图避免梯度下降法收敛速度较慢和计算复杂的缺点,第一步沿负梯度方向进行搜索,然后再沿当前搜索的共轭方向进行搜索,从而可以迅速达到最优值。 共轭梯度法比大多数常规的梯度法收敛快,并且只需增加很少的存储量和计算量。对于权值很多的网络,采用共轭梯度法不失为一种较好的选择。 共轭梯度法是重要的无约束最优化方法。其基本思想就是使得最速下降方向具有共轭性,并据此搜索目标函数极值,从而提高算法的有效性和可靠性。图3·4·1中g(k)即为共轭梯度矢量。它的方向矢量不是预先给定的,而是在现行的负梯度与前一个方向矢量的线性组合的方向上进行的。梯度g(k)被定义为f(x)对x的微分,即 。但是该方法中的方向矢量的共轭性仅依赖于负梯度的初始方向,所以在解点附近很可能失去共轭方向的优点,因此这种算法的缺点在于算法不是全局最优的。 图3·4·1共轭方向矢量示意图 根据Fletcher-Reeves处理非二次问题的思想——在算法实施过程中,每n步做一次纯最速下降步骤,并以此作为一个间插步骤,因为其它步骤不使目标函数增加,因此能保证算法的全局收敛性。所谓间插步骤就是在某种算法进行过程中插入一步其它算法,大多是不规则的但又是频繁的(如最速下降法),以保证整个复合过程的收敛性。间插步骤的唯一要求是使它们不增加下降函数的值。基于以上思想,提出共轭梯度的改进算法。 3.4.2改进共轭梯度法[15] 改进共轭梯度算法在不增加算法复杂性的前提下可以提高收敛速度,并且可以沿共轭方向达到全局最优即全局极值点。它要求在算法进行过程中使用线性搜索,本文采用Fletcher-Reeves线性搜索方法,以保证算法的收敛速度。 梯度矢量g(x)与方向矢量d(0),d(1),...,d(k-1)构成的子空间正交,每迭代一次,子空间的维数加1,学习速率 每次迭代时沿搜索方向d(k)发生变化,其大小取决于Fletcher-Reeves线性搜索的结果。 如果共轭梯度法在第k+1次的学习速率 使得目标函数值增加,即当由于误差积累使某步的搜索方向变为非下降方向时,根据全局收敛定理,目标函数在整个迭代过程中必须连续递减,因此,将k+1次学习速率 置0,这时实施一步间插步骤,即令梯度g(k-1)=g(k),方向矢量d(k-1)=d(k),共轭梯度法重新开始。此时,相当于对共轭梯度法实施一次速下降步骤,迭代完毕,所得结果收敛于全局极小点。 将改进共轭梯度法应用于BP网络的算法如下: (1)选取初始点w(0)和初始搜索方向d(0)=-g(0);
本文档为【BP神经网络算法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_895306
暂无简介~
格式:doc
大小:481KB
软件:Word
页数:38
分类:理学
上传时间:2013-03-04
浏览量:88