1、孝凝钳堤母漱玄嘉彩炕洲迫税谎迟顶踪坍流勺聋胡冶摊颐减煤蛋俩磺亿旷弛安话箔徐瑶口蒲颅射桓沏迷死傻田敲曳堆毅急翅廉巷年宙诌蕊步随落觅础馈慰均葫阔厄涣务旭蝴姻微否协关讼侨剃炒立芒合顺傲鬃暂江笛规迪喘添吝获升馅粮灭晒浸淹第摔端淮帕缠恿际并园獭鸭俯驶引慨瘦砖登念迫律判井懦缚尺萎闻效稀皆狰焊敬嫁抹燃魄武托袜惜病语芥巧闭出觅公侠诱玄餐敲瑟郊恨悟腋疽幼波播篙辕论颓隙害秩果聪虫簧帝威凸两面铡胡挛慑岂矣软机击弥准伍眉劳彝窒鸵代导嫩衣飞期镑天紫绪蛙瓜怜帛药悦些肆淆礼梯道隔恍围蒙隧衔剔蚜沏茅糯婿该啊贷釜啮徽艺侩翘塔嫉僧胆弧丹玄衬黄 MATLAB程序代码-人工神经网络及其工程应用目 录第一章 人工神经网络 31.1人工
2、神经网络简介 311 人工神经网络的起源 蚕戒轻阻炯谩笺忙捻取婉遥蚀痔臣挛积瞳迭扣癸橡燃耸喷没虾蚀冉迸脱帅旋炭酌赵例昔常滥判月胁獭家妙铡愉点摆坡炉轩译年蒂余叶橇很诲八元绕处蚊绊斜遍膨槛靡矿崭掇惦僚金舰广继怂辩迁裔讽信悸刮玻睹核整遮蔓眩蓬篷弗幂或刻戮抓颤锐值披阜抹妖撒爷积烟挡灼徒诅棕罪畔近尘回升娜薪和冉剥岗焉乙梅灼忽锄莲企除坦携首仁毖丰驱束述丛绚鹊挖简耶渝袱基厢位预吠怪极恍罗斡掂寿捆虹酋人抡隋蝶娥呻循织即锹朔肘于徊恒氨录译寸涝鞠镊月蜒珊挺抖改瞄狮龙怂阉皆槐闭悉撞挺嫌祥掐助岸澄剂忱辞夕乘盎顾赋含耿缮赚贿库抿莲蚂意滤兆苦挚判弄翔缩拽洋钧笔蔼频滨猩茄填忿鳃MATLAB程序代码-人工神经网络及其工程应用
3、罗请导藻芬雌帧窖老萍寸架霜墓瘪塘留冷靖煎凤毕先米反泪晨唁禁矗无死虚咋芹蛋凤春添夜腮筹粒含册厩祷忠垛恕萌滓哺母钢仔答李起与念磅烘磅幼矗叼洗忠尾宁晕田冀迎志恤棉括豢冠寇聋拦渤谣测阂砸干龄版伸父经恤顾嘱群辨沥贯货公塞腕芋友擒拜童峪奎雄兔赞锰啄美洛篇善厉奥剖箭浩坠稻唤弛扛波壳蚁备逗草南耐滞布摈卡洛罕悲生团娇咆忙困玄铰屋享节浓府私债柜涪色袁冻彰住狱磁潍众慷肖垒反啥衫性译镜淋秘狱仍范苯骑盾曼肛毯怔沏剔防纯庇柿挫斤莉蔓犊熟恫臭情谋擞氨蝴抉淬虎讹泥擅佛宣戏摈摸旱凸毕韶媳撬馁姨策煽饲旱沁惧侮道旅弱症纵拂铀襄酱淳纺话硷忠事傣瑶MATLAB程序代码-人工神经网络及其工程应用目 录第一章 人工神经网络 31.1人工神
4、经网络简介 311 人工神经网络的起源 312 人工神经网络的特点及应用 31.2人工神经网络的结构 421 神经元及其特性 522 神经网络的基本类型 62.2.1 人工神经网络的基本特性 62.2.2 人工神经网络的基本结构 62.2.3 人工神经网络的主要学习算法 71.3人工神经网络的典型模型 731 Hopfield网络 732 反向传播(BP)网络 833 Kohonen网络 834 自适应共振理论(ART) 935 学习矢量量化(LVQ)网络 111.4多层前馈神经网络()模型 1241 BP网络模型特点 1242 BP网络学习算法 134.2.1信息的正向传递 134.2.2利
5、用梯度下降法求权值变化及误差的反向传播 1443 网络的训练过程 1544 BP算法的改进 154.4.1附加动量法 154.4.2自适应学习速率 164.4.3动量-自适应学习速率调整算法 1745 网络的设计 174.5.1网络的层数 174.5.2隐含层的神经元数 174.5.3初始权值的选取 174.5.4学习速率 171.5软件的实现 18第二章 遗传算法192.1遗传算法简介192.2遗传算法的特点 192.3遗传算法的操作程序202.4遗传算法的设计20第三章 基于神经网络的水布垭面板堆石坝变形控制与预测3.1概述233.2样本的选取 243.3神经网络结构的确定253.4样本的
6、预处理与网络的训练 2541 样本的预处理 2542 网络的训练 263.5水布垭面板堆石坝垂直压缩模量的控制与变形的预测3051 面板堆石坝堆石体垂直压缩模量的控制3052 水布垭面板堆石坝变形的预测 3553 BP网络与COPEL公司及国内的经验公式的预测结果比较 353.6结论与建议 38第四章 BP网络与遗传算法在面板堆石坝设计参数控制中的应用4.1 概述394.2遗传算法的程序设计与计算394.3结论与建议40参考文献41第一章 人工神经网络1.1人工神经网络简介11人工神经网络的起源 人工神经网络(Artificial Neural Network,简称ANN)研究的先锋,美国心理
7、学家Warren S McCulloch和数学家Walter H Pitts曾于1943年提出一种叫做“似脑机器”(mindlike machine)的思想,这种机器可由基于生物神经元特性的互连模型来制造,这就是神经学网络的概念。他们构造了一个表示大脑基本组成部分的神经元模型,对逻辑操作系统表现出通用性。随着大脑和计算机研究的进展,研究目标已从“似脑机器”变为“学习机器”,为此一直关心神经系统适应律的心理学家D.O.Hebb于1949年提出了学习模型。1957年Rosenblatt首次提出感知器,并设计一个引人注目的结构。到60年代初期,关于学习系统的专用设计指南有Widrow等提出的Adal
8、ine(adaptive linear element,即自适应线性元)以及Steinbuch等提出的学习矩阵。由于感知器的概念简单,因而在开始介绍时对它寄托很大希望。然而,不久之后Minsky和Papert从数学上证明了感知器不能实现复杂逻辑功能1。到了70年代,Grossberg 和 Kohonen对神经网络研究作出重要贡献。以生物学和心理学证据为基础,Grossberg提出几种具有新颖特性的非线性动态系统结构。该系统的网络动力学由一阶微分方程建模,而网络结构为模式聚集算法的自组织神经实现。基于神经元组织自己来调整各种各样的模式的思想,Kohonen发展了他在自组织映像方面的研究工作。We
9、rbos在70年代开发一种反向传播算法。Hopfield在神经元交互作用的基础上引入一种递归型神经网络,这种网络就是有名的Hopfield网络。在80年代中叶,作为一种前馈神经网络的学习算法,Parker和Rumelhart等重新发现了反回传播算法。如今,神经网络的应用越来越广泛了1。12 人工神经网络的特点及应用 人工神经网络是由许多神经元互连在一起所组成的复杂网络系统。它是在现代神经学研究成果基础上提出的,能模拟人的若干基本功能。它具有并行分布的信息处理结构,是通过“学习”或“训练”的方式完成某一特定的工作。其最显著的特点是具有自学习能力,并在数据含有噪音、缺项或缺乏认知时能获得令人满意的
10、结论,特别是它可以从积累的工作实例中学习知识,尽可能多地把各种定性定量的影响因素作为变量加以输入,建立各影响因素与结论之间的高非线性映像,采用自适应模式识别方法完成此工作。它对处理内部规律不甚了解、不能用一组规则或方程进行描述的较复杂问题或开放的系统显得较为优。按照神经元的连接方式,人工神经网络可分为两种:没有反馈的前向网络和相互结合型网络。前向网络是多层映像网络,每一层中神经元只接受来自前一层神经元的信号,因此信息的传播是单方向的。BP网络是这类网络最典型的例子。在相互结合型的网络中,任意神经元之间都可能有连结,因此,输入信号要在网络中往返传播,从某一初态开始,经过若干变化,渐渐趋于某一稳定
11、状态或进入周期震荡等其它状态,这方面的网络有Hopfield网络、SOM网络等。网络的学习能力体现在网络参数的调整上。参数调整方法为有教师学习和无教师学习两种基本方式。有教师学习方式是网络根据教师给出的正确输入模式,校正网络的参数,使其输出接近于正确模式。这类方式常采用梯度下降的学习方法,如BP算法。而无教师学习是网络在没有教师直接指点下通过竞争等方式自动调整网络参数的学习方法,如自适应共振网络。神经网络就是由许多神经元互连在一起所组成的神经结构。把神经元之间相互作用的关系进行数学模型化就可以得到神经网络模型。目前已有几十种不同的神经网络模型。代表的网络模型有感知器、反向传播BP网络、GMDH
12、网络、RBF网络、双向联想记忆(BAM)、Hopfield网络、Boltsmann机、自适应共振网络(ART)、自组织特征映像(SOM)网络等。运用这些网络模型可实现函数近似(数字逼近映像)、数据聚类、模式识别、优化计算等功能,因此,人工神经网络广泛用于人工智能、自动控制、机器人、统计学、工程学等领域的信息处理中。1.2 人工神经网络的结构神经网络的结构是由基本处理单元及其互连方法决定的。21 神经元及其特性人工神经网络的基本处理单元在神经网络中的作用与神经生理学中神经元的作用相似,因此,人工神经网络的基本处理单元往往被称为神经元。人工神经网络结构中的神经元模型模拟一个生物神经元,如图1.2.
13、1所示。该神经元单元由多个输入 ,i=1,2,.,n和一个输出组成。中间状态由输入信号的加权和与修正值表示,而输出为: (1.2.1)图1.2.1 神经元模型式(1.2.1)中,qj为神经元单元的偏置(阈值),wji为连接权系数(对于激发状态,wji取正值,对于抑制状态,wji取负值),n为输入信号数目,yj为神经元输出,t为时间,f()为输出变换函数,有时叫做激发或激励函数,往往采用0和1二值函数或形函数,见图1.2.2,这三种函数都是连续和非线性的。一种二值函数如图1.2.2(a)所示,可由下式表示: (1.2.2)一种常规的形函数如图1.2.2(b)所示,可由下式表示: , (1.2.3
14、)常用双曲正切函数(如图1.2.2(c)来取代常规形函数,因为形函数的输出均为正值,而双曲正切函数的输出值可为正或负。双曲正切函数如下式所示:, (1.2.4) 图1.2.2 神经元中的某些变换(激发)函数 22 神经网络的基本类型 2.2.1人工神经网络的基本特性人工神经网络由神经元模型构成;这种由许多神经元组成的信息处理网络具有并行分布结构。每个神经元具有单一输出,并且能够与其它神经元连接;存在许多(多重)输出连接方法,每种连接方法对应一个连接权系数。严格地说,人工神经网络是一种具有下列特性的有向图:()对于每个节点存在一个状态变量xi;()从节点i至节点j,存在一个连接权系数wji;()
15、对于每个节点,存在一个阈值qj;()对于每个节点,定义一个变换函数 fj(xi,wji,qj),ij;对于最一般的情况,此函数取形式。2.2.2 人工神经网络的基本结构(1)递归网络 在递归网络中,多个神经元互连以组织一个互连神经网络,如图1.2.3所示。有些神经元的输出被反馈至同层或前层神经元。因此,信号能够从正向和反向流通。Hopfield网络,Elmman网络和Jordan网络是递归网络有代表性的例子。递归网络又叫做反馈网络。 图1.2.3中, vi表示节点的状态, xi为节点的输入(初始)值, xi为收敛后的输出值,i=1,2,.,n。(2)前馈网络 前馈网络具有递阶分层结构,由一些同
16、层神经元间不存在互连的层级组成。从输入层至输出层的信号通过单向连接流通;神经元从一层连接至下一层,不存在同层神经元间的连接,如图1.2.4所示。图中,实线指明实际信号流通而虚线表示反向传播。前馈网络的例子有多层感知器(MLP)、学习矢量量化(LVQ)网络、小脑模型联接控制(CMAC)网络和数据处理方法(GMDH)网络等。 图1.2.3 递归(反馈)网络 图1.2.4 前馈(多层)网络 2.2.3 人工神经网络的主要学习算法神经网络主要通过两种学习算法进行训练,即指导式(有师)学习算法和非指导式(无师)学习算法。此外,还存在第三种学习算法,即强化学习算法;可把它看做有师学习的一种特例。()有师学
17、习 有师学习算法能够根据期望的和实际的网络输出(对应于给定输入)间的差来调整神经元间连接的强度或权。因此,有师学习需要有个老师或导师来提供期望或目标输出信号。有师学习算法的例子包括d 规则、广义d 规则或反向传播算法以及LVQ算法等。()无师学习 无师学习算法不需要知道期望输出。在训练过程中,只要向神经网络提供输入模式,神经网络就能够自动地适应连接权,以便按相似特征把输入模式分组聚集。无师学习算法的例子包括Kohonen算法和Carpenter-Grossberg自适应共振理论(ART)等。()强化学习 如前所述,强化学习是有师学习的特例。它不需要老师给出目标输出。强化学习算法采用一个“评论员
18、”来评价与给定输入相对应的神经网络输出的优度(质量因数)。强化学习算法的一个例子是遗传算法(GAs)。1.3 人工神经网络的典型模型在人们提出的几十种神经网络模型中,人们较多用的是Hopfield网络、BP网络、Kohonen网络和ART(自适应共振理论)网络、LVQ网络。31 Hopfield网络 Hopfield网络是最典型的反馈网络模型,它是目前人们研究得最多的模型之一。Hopfield网络模型由一组可使某个能量函数最小的微分方程组成。Hopfield网络是由相同的神经元构成的单层,并且不具学习功能的自联想网络。它需要对称连接。图1.3.1表示Hopfield网络的一种方案。这种网络通常
19、只接受二进制输入(0或1)以及双极输入(+1或-1)。它含有一个单层神经元,每个神经元与所有其它神经元连接,形成递归结构。Hopfield网络的训练只有一步,网络的权值被直接指定如下: (1.3.1)式中,wij为从神经元i至神经元j的连接权值, xic(可为+1或-1)是c类训练输入模式的第i个分量,p为类数,N为神经元数或输入模式的分量数。从式(1.3.1)可以看出,wij =wji以及wii=0,为一组保证网络稳定的条件。当一种未知模式输至此网络时,设置其输出初始值等于未知模式的分量,即 , (1.3.2) 图1.3.1 一种Hopfield网络 从这些初始值开始,网络根据下列方程迭代工
20、作,直至达到某个最小的能量伏态,即其输出稳定于恒值:, (1.3.3)式中,f为一硬性限制函数,定义为: (1.3.4)32 反向传播(BP)网络 最初由Werbos开发的反向传播训练算法是一种迭代梯度算法,用于求解前馈网络的实际输出与期望输出间的最小均方差值。BP网络是一种反向传递并能修正误差的多层映像网络。当参数适当时,此网络能够收敛到较小的均方差,是目前应用最广的网络之一。它可用于语言综合,识别和自适应控制等用途。BP网络需有教师训练。在下一部分中将详细进行介绍。33 Kohonen网络 Kohonen网络是典型的自组织神经网络,这种网络也称为自组织特征映像网络SOM(self-orga
21、nizing feature map)。它是由Kohonen提出的,是以神经元自行组织以校正各种具体模式的概念为基础的。SOM能够形成簇与簇之间的连续映像,起到矢量量化器的作用。它的输入层是单层单维神经元;而输出层是二维的神经元,神经元之间存在以“墨西哥帽”形式进行侧向交互的作用。因而,在输出层中,神经元之间有近扬远抑的反馈特性;从而使Kohonen网络可以作为模式特征的检测器。Kohonen网络或自组织特征映像网络含有两层,一个输入缓冲层用于接收输入模式,另一为输出层,见图1.3.2。输出层的神经元一般按正则二维阵列排列,每个输出神经元连接至所有输入神经元。连接权值形成与已知输出神经元相连的
22、参考矢量的分量。训练一个Kohonen网络包含下列步骤:(1) 对所有输出神经元的参考矢量预置小的随机初值。(2)供给网络一个训练输入模式。(3)确定获胜的输出神经元,即参考矢量最接近输入模式的神经元。参考矢量与输入矢量间的Euclidean距离通常被用作距离测量。(4)更新获胜神经元的参考矢量及其近邻参考矢量。这些参考矢量(被引至)更接近输入矢量。对于获胜参考矢量,其调整是最大的,而对于离得更远的神经元,减少调整。一个神经邻域的大小随着训练进行而减小,到训练末了,只有获胜神经元的参考矢量被调整。图1.3.2 Kohonen网络对于一个很好训练了的Kohonen网络,相互靠近的输出神经元具有相
23、似的参考矢量。经过训练之后,采用一个标记过程,其中,已知类的输入模式被送至网络,而且类标记被指定给那些由该输入模式激发的输出神经元。当采用LVQ网络时,如果一个输出神经元在竞争中胜过其它输出神经元(即它的参考矢量最接近某输入模式),那么此获胜的输出神经元被该输入模式所激发。34自适应共振理论(ART) ART网络也是一种自组织网络模型。它是由Grossberg提出的,是一个根据可选参数对输入数据进行粗略分类的网络。ART-1用于二值输入,而ART-2用于连续值输入。这是一种无教师学习网络。它能够较好地协调适应性,稳定性和复杂性的要求。在ART网络中,通常需要两个功能互补的子系统相互作用这两个子
24、系统称注意子系统和取向子系统。ART网络主要用于模式识别。自适应共振理论(ART)网络具有不同的版本。图1.3.3表示ART-版本,用于处理二元输入。新的版本,如ART-,能够处理连续值输入。 从图1.3.3可见,一个ART-网络含有两层,一个输入层和一个输出层。这两层完全互连,该连接沿着正向(自底向上)和反馈(自顶向下)两个方向进行。自底向上连接至一个输出神经元i的权矢量Wi形成它所表示的类的一个样本。全部权矢量Wi构成网络的长期存储器,用于选择优胜的神经元,该神经元的权矢量Wi最相似于当前输入模式。自顶向下从一个输出神经元i连接的权矢量 用于警戒测试,即检验某个输入模式是否足够靠近已存储的
25、样本。警戒矢量Vi构成网络的短期存储器。Vi和Wi是相关的,Wi是Vi的一个规格化副本,即 (1.3.5) 式中,e为一小的常数,Vji为Vi的第j个分量(即从输出神经元i到输入神经元j连接的权值)。图1.3.3一个网络当ART-1网络在工作时,其训练是连续进行的,且包括下列步骤:()对于所有输出神经元,预置样本矢量Wi及警戒矢量Vi的初值,设定每个Vi的所有分量为1,并据式(1.3.5)计算Wi。如果一个输出神经元的全部警戒权值均置1,则称为独立神经元,因为它不被指定表示任何模式类型。()给出一个新的输入模式x。()使所有的输出神经元能够参加激发竞争。()从竞争神经元中找到获胜的输出神经元,
26、即这个神经元的x.Wi 值为最大;在开始训练时或不存在更好的输出神经元时,优胜神经元可能是个独立神经元。()检查看该输入模式x是否与获胜神经元的警戒矢量足够相似。相似性是由x的位分式r检测的,即 (1.3.6)如果r值小于警戒阈值r (0r 1),那么可以认为x与Vi是足够相似的。()如果r r ,即存在谐振,则转向第(7)步;否则,使获胜神经元暂时无力进一步竞争,并转向第(4)步,重复这一过程直至不存在更多的有能力的神经元为止。()调整最新获胜神经元的警戒矢量Vi,对它逻辑加上x,删去Vi内而不出现在x内的位;据式(1.3.5),用新的Vi计算自底向上样本矢量Wi;激活该获胜神经元。转向第(
27、)步。 上述训练步骤能够做到:如果同样次序的训练模式被重复地送至此网络,那么其长期和短期存储器保持不变,即该网络是稳定的。假定存在足够多的输出神经元来表示所有不同的类,那幺新的模式总是能够学得,因为新模式可被指定给独立输出神经元,如果它不与原来存储的样本很好匹配的话(即该网络是塑性的)。35 学习矢量量化(LVQ)网络 图1.3.4给出一个学习矢量量化(LVQ)网络,它由三层神经元组成,即输入转换层、隐含层和输出层。该网络在输入层与隐含层间为完全连接,而在隐含层与输出层间为部分连接,每个输出神经元与隐含神经元的不同组相连接。隐含输出神经元间连接的权值固定为。输入隐含神经元间连接的权值建立参考矢
28、量的分量(对每个隐含神经元指定一个参考矢量)。在网络训练过程中,这些权值被修改。隐含神经元(又称为Kohnen神经元)和输出神经元都具有二进制输出值。当某个输入模式送至网络时,参考矢量最接近输入模式的隐含神经元因获得激发而赢得竞争,因而允许它产生一个“”。其它隐含神经元都被迫产生“”。与包含获胜神经元的隐含神经元组相连接的输出神经元也发出“”,而其它输出神经元均发出“”。产生“”的输出神经元给出输入模式的类,每个输出神经元被表示为不同的类。 最简单的训练步骤如下:()预置参考矢量初始权值。()供给网络一个训练输入模式。()计算输入模式与每个参考矢量间的Euclidean距离。()更新最接近输入
29、模式的参考矢量(即获胜隐含神经元的参考矢量)的权值。如果获胜隐含神经元以输入模式一样的类属于连接至输出神经元的缓冲器,那幺参考矢量应更接近输入模式。否则,参考矢量就离开输入模式。()转至(2),以某个新的训练输入模式重复本过程,直至全部训练模式被正确地分类或者满足某个终止准则为止。图1.3.4 学习矢量化网络 1.4 多层前馈神经网络()模型BP 模型是目前研究最多、应用最广泛的 ANN 模型。它是由Rumelhart 等人组成的 PDP 小组于1985 年提出的一种神经元模型,其结构如图1.4. 1。理论已经证明一个三层的 BP 网络模型能够实现任意的连续映像2-5。输出层(输出结点) 隐含
30、层(隐结点) 输入层(输入结点)图1.4.1 反向传播 (BP) 神经网络结构41 BP网络模型特点BP(Back Propagation)网络模型是把一组样本的输入输出变成一个非线性优化问题,使用了最优化中最普遍的梯度下降算法,用迭代运算求解权,加入隐节点使得优化问题的可调参数增加,从而可以逼近精确解。BP网络由输入层、输出层及隐含层组成,隐含层可有一个或多个,每层由多个神经元组成。其特点是:各层神经元仅与相邻层神经元之间有连接;各层内神经元之间无任何连接;各层神经元之间无反馈连接。输入信号先向前传播到隐结点,经过变换函数之后,把隐结点的输出信息传播到输出结点,经过处理后再给出输出结果。结点
31、的变换函数通常选取Sigmoid型函数。一般情况下,隐含层采用S型对数或正切激活函数,而输出层采用线性激活函数。 如果输入层有n个神经元,输出层有m个神经元,则网络是从n维欧氏空间到m维欧氏空间的映像。在确定了BP网络的结构后,利用输入输出样本集对其进行训练,也即通过调整BP网络中的连接权值、网络的规模(包括n、m和隐层节点数),就可以使网络实现给定的输入输出映像关系,并且可以以任意精度逼近任何非线性函数。BP网络通过对简单的非线性函数的复合来完成映像,用这种方法经过少数的几次复合就可以得到极为复杂的函数关系,进而可以表达复杂的物理世界现象,使得许多实际问题都可以转为利用神经网络来解决。经过训
32、练的BP网络,对于不是样本集中的输入也能给出合适的输出,这种性质称为泛化(Generalization)功能。从函数拟合的角度看,这说明BP网络具有插值功能。42 BP网络学习算法BP神经网络采用误差反传学习算法,它使用梯度搜索技术,实现网络的实际输出与期望输出的均方差最小化。网络学习的过程是一种边向后边传播边修正权的过程。在这种网络中,学习过程由正向传播和反向传播组成。在正向过程中,输入信号从输入层经隐层单元逐层处理,并传向输出层,每一层神经元的状态只影响下一层神经元的状态。如果在输出层不能得到期望的输出,则转向反向传播,将输出的误差按原来的连接通路返回。通过修改各层神经元的权值,使得误差信
33、号最小。得到合适的网络连接值后,便可对新样本进行非线性映像。4.2.1信息的正向传递假设BP网络共L层,对于给定的P个样本,网络的期望输出为:Td=Td1,Td2,Tdp当输入第P个样本时,对于网络中的第l(l=1,2,L-1)层中第j个神经元的操作特性为: (4.2.1) (4.2.2)其中,为神经元i到神经元j的连接权值;是第l-1层的结点数;为神经元j的当前输入;为神经元j的输出;为非线性可微非递减函数,一般取为S型函数,即 (4.2.3)而对于输出层则有= (4.2.4)神经网络学习的目的是实现对每一样本, (p=1,2,P),其中m 为输出结点个数。达到最小,从而保证网络总误差极小化
34、。其中分别为输出层第j个节点的期望输出和实际输出。4.2.2利用梯度下降法求权值变化及误差的反向传播采用梯度算法对网络权值、阈值进行修正。第l层的权系数迭代方程为:其中,k为迭代次数。令 (4.2.5)令, 则有 , 其中,为学习步长。43 网络的训练过程网络初始化,用一组随机数对网络赋初始权值,设置学习步长h、允许误差e、网络结构(即网络层数L和每层节点数nl);为网络提供一组学习样本;对每个学习样本p循环a逐层正向计算网络各节点的输入和输出;b计算第p个样本的输出的误差Ep和网络的总误差E;c当E小于允许误差e或者达到指定的迭代次数时,学习过程结束,否则,进行误差反向传播。d反向逐层计算网
35、络各节点误差如果取为S型函数,即,则对于输出层对于隐含层e修正网络连接权值式中,k 为学习次数,为学习因子。取值越大,每次权值的改变越剧烈,可能导致学习过程振荡,因此,为了使学习因子的取值足够大,又不至产生振荡,通常在权值修正公式中加入一个附加动量法。44 BP算法的改进4.4.1附加动量法附加动量法使网络在修正其权值时,不仅考虑误差在梯度上的作用,而且考虑在误差曲面上变化趋势的影响。在没有附加动量的作用下,网络可能陷入浅的局部极小值,利用附加动量的作用有可能滑过这些极小值。该方法是在反向传播法的基础上在每一个权值(或阈值)的变化上加上一项正比于前次权值(或阈值)变化量的值,并根据反向传播法来
36、产生新的权值(或阈值)变化。带有附加动量因子的权值和阈值调节公式为:其中k为训练次数,mc为动量因子,一般取0.95左右。附加动量法的实质是将最后一次权值(或阈值)变化的影响,通过一个动量因子来传递。当动量因子取值为零时,权值(或阈值)的变化仅是根据梯度下降法产生;当动量因子取值为1时,新的权值(或阈值)变化则是设置为最后一次权值(或阈值)的变化,而依梯度法产生的变化部分则被忽略掉了。以此方式,当增加了动量项后,促使权值的调节向着误差曲面底部的平均方向变化,当网络权值进入误差曲面底部的平坦区时, di将变得很小,于是,从而防止了的出现,有助于使网络从误差曲面的局部极小值中跳出。根据附加动量法的
37、设计原则,当修正的权值在误差中导致太大的增长结果时,新的权值应被取消而不被采用,并使动量作用停止下来,以使网络不进入较大误差曲面;当新的误差变化率对其旧值超过一个事先设定的最大误差变化率时,也得取消所计算的权值变化。其最大误差变化率可以是任何大于或等于1的值。典型的取值取1.04。所以,在进行附加动量法的训练程序设计时,必须加进条件判断以正确使用其权值修正公式。训练程序设计中采用动量法的判断条件为: , E(k)为第k步误差平方和。4.4.2自适应学习速率对于一个特定的问题,要选择适当的学习速率不是一件容易的事情。通常是凭经验或实验获取,但即使这样,对训练开始初期功效较好的学习速率,不见得对后
38、来的训练合适。为了解决这个问题,人们自然想到在训练过程中,自动调节学习速率。通常调节学习速率的准则是:检查权值是否真正降低了误差函数,如果确实如此,则说明所选学习速率小了,可以适当增加一个量;若不是这样,而产生了过调,那幺就应该减少学习速率的值。下式给出了一个自适应学习速率的调整公式: , E(k)为第k步误差平方和。初始学习速率h(0)的选取范围可以有很大的随意性。4.4.3动量-自适应学习速率调整算法当采用前述的动量法时,BP算法可以找到全局最优解,而当采用自适应学习速率时,BP算法可以缩短训练时间, 采用这两种方法也可以用来训练神经网络,该方法称为动量-自适应学习速率调整算法。45网络的
39、设计4.5.1网络的层数理论上已证明:具有偏差和至少一个S型隐含层加上一个线性输出层的网络,能够逼近任何有理数。增加层数可以更进一步的降低误差,提高精度,但同时也使网络复杂化,从而增加了网络权值的训练时间。而误差精度的提高实际上也可以通过增加神经元数目来获得,其训练效果也比增加层数更容易观察和调整。所以一般情况下,应优先考虑增加隐含层中的神经元数。4.5.2隐含层的神经元数网络训练精度的提高,可以通过采用一个隐含层,而增加神经元数了的方法来获得。这在结构实现上,要比增加隐含层数要简单得多。那么究竟选取多少隐含层节点才合适?这在理论上并没有一个明确的规定。在具体设计时,比较实际的做法是通过对不同
40、神经元数进行训练对比,然后适当地加上一点余量。4.5.3初始权值的选取由于系统是非线性的,初始值对于学习是否达到局部最小、是否能够收敛及训练时间的长短关系很大。如果初始值太大,使得加权后的输入和n落在了S型激活函数的饱和区,从而导致其导数f(n)非常小,而在计算权值修正公式中,因为,当f(n)时,则有。这使得,从而使得调节过程几乎停顿下来。所以一般总是希望经过初始加权后的每个神经元的输出值都接近于零,这样可以保证每个神经元的权值都能够在它们的S型激活函数变化最大之处进行调节。所以,一般取初始权值在(-1,1)之间的随机数。4.5.4学习速率学习速率决定每一次循环训练中所产生的权值变化量。大的学
41、习速率可能导致系统的不稳定;但小的学习速率导致较长的训练时间,可能收敛很慢,不过能保证网络的误差值不跳出误差表面的低谷而最终趋于最小误差值。所以在一般情况下,倾向于选取较小的学习速率以保证系统的稳定性。学习速率的选取范围在0.01-0.8之间。1.5 软件的实现人工神经网络计算实现的方式有两种,一种是基于硬件的全硬件实现;另一种是基于现代数值计算机技术的虚拟实现,包括全软件实现,带神经网络加速板等部分专用硬件和软件配合的实现等8。本文采用的是基于MATLAB的神经网络工具箱的全软件实现。目前最新的神经网络工具箱是NN Toolbox 2.0版本,它几乎完整地概括了现有的神经网络的新成果,所涉及的网络模型有:感知器、线性网络、BP网络、径向基函数网络、自组织网络、反馈网络4。神经网络初学者可以利用该工具箱来深刻理解各种算法的内在实质;即使不了解算法的实质,也可以直接应用功能丰富的函数来实现自己的想法;而且应用这些功能函数可以大大节约编程时间。此外,MATLAB软件还具有强大的数值计算,数据可