版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊安徽工業(yè)大學(xué)管理科學(xué)與工程學(xué)院基于MATLAB神經(jīng)網(wǎng)絡(luò)仿真共45頁(yè)第68頁(yè)摘要 隨著人工神經(jīng)網(wǎng)絡(luò)的研究和應(yīng)用越來(lái)越廣泛,誤差反向傳播算法(BP算法)的提出,成功地解決了求解非線性連續(xù)函數(shù)的多層前饋神經(jīng)網(wǎng)絡(luò)權(quán)值調(diào)整問(wèn)題,BP神經(jīng)網(wǎng)絡(luò)如今成為最廣泛使用的網(wǎng)絡(luò),研究它對(duì)探索非線性復(fù)雜問(wèn)題具有重要意義,而且它具有廣泛的應(yīng)用前景。以BP神經(jīng)網(wǎng)絡(luò)為例,討論了BP神經(jīng)網(wǎng)絡(luò)及幾種改進(jìn)BP神經(jīng)網(wǎng)絡(luò)性能的算法;通過(guò)BP學(xué)習(xí)算法的推導(dǎo)和分析得知BP網(wǎng)絡(luò)是一種多層前饋網(wǎng)絡(luò),采用最小均方差的學(xué)習(xí)方式,缺點(diǎn)是僅為有導(dǎo)師訓(xùn)練,訓(xùn)練時(shí)間長(zhǎng),易限于局部極小;運(yùn)用MATLAB來(lái)實(shí)現(xiàn)各種BP神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)的設(shè)計(jì)與訓(xùn)練,比較不同BP神經(jīng)網(wǎng)絡(luò)的性能,驗(yàn)證改進(jìn)BP網(wǎng)絡(luò)的優(yōu)勢(shì),得出如何根據(jù)對(duì)象選取神經(jīng)網(wǎng)絡(luò)的結(jié)論。關(guān)鍵詞:人工神經(jīng)網(wǎng)絡(luò)、BP神經(jīng)網(wǎng)絡(luò)、誤差反向傳播算法、MATLAB、仿真
Abstract Withtheartificialneuralnetworkofresearchandapplicationofmoreandmorewidely,theerrorback-propagationalgorithm(BPalgorithm)isproposed,successfullyresolvedthecontinuousfunctionforsolvingnonlinearmulti-layerfeed-forwardneuralnetworkweightsadjustment,BPnetworkhasbecomenowthemostwidelyusednetworks,Studytoexploreitscomplicatednonlinearproblemhasimportantsignificance,butalsohasbroadapplicationprospects.BPneuralnetworkisdiscussedandseveralimprovementsintheperformanceofBPneuralnetworkalgorithm.BPlearningalgorithmthroughthederivationandanalysisthattheBPnetworkisamulti-layerfeedforwardnetworks,theuseofleast-mean-varianceapproachtolearning,thereisonlydisadvantageisthatthetraininginstructors,trainingtime,limitedtolocalminimumeasily.TheuseofMATLABtoachieveavarietyofBPneuralnetworktoachievethedesignandtraining,tocomparetheperformanceofBPneuralnetworktoverifytheadvantagesofimprovingtheBPnetwork,howtodrawtheobjectselectedinaccordancewiththeconclusionsofneuralnetworks.Keywords:Artificialneuralnetwork,BPneuralnetworks,errorback-propagationalgorithm,MATLAB,simulation
目錄1.緒論 51.1引言 51.2神經(jīng)網(wǎng)絡(luò)概述 51.2.1神經(jīng)網(wǎng)絡(luò)起源 51.2.2神經(jīng)網(wǎng)絡(luò)的發(fā)展歷程 51.2.3神經(jīng)網(wǎng)絡(luò)國(guó)內(nèi)發(fā)展概況 61.2.4神經(jīng)網(wǎng)絡(luò)研究現(xiàn)狀 71.3研究目的、方法和問(wèn)題(BP神經(jīng)網(wǎng)絡(luò)) 81.3.1研究目的 81.3.2研究方法 81.3.3研究問(wèn)題 82.BP神經(jīng)網(wǎng)絡(luò) 102.1BP神經(jīng)網(wǎng)絡(luò)相關(guān)原理 102.1.1神經(jīng)元非線性模型 102.1.2有教師監(jiān)督學(xué)習(xí) 102.1.3神經(jīng)元數(shù)學(xué)模型 112.1.4Delta學(xué)習(xí)規(guī)則 112.1.5神經(jīng)元激活函數(shù) 122.1.6BP神經(jīng)網(wǎng)絡(luò)收斂準(zhǔn)則 122.2BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過(guò)程描述 132.2.1BP神經(jīng)網(wǎng)絡(luò)計(jì)算模型建立 132.2.2BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過(guò)程描述 142.2.3BP神經(jīng)網(wǎng)絡(luò)方框圖 142.3BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)方法 142.3.1BP神經(jīng)網(wǎng)絡(luò)信號(hào)流程 142.3.2誤差反向傳播計(jì)算 152.3.3BP神經(jīng)網(wǎng)絡(luò)算法描述 182.4影響因素分析 192.4.1權(quán)值初始值設(shè)置影響分析 192.4.2權(quán)值調(diào)整方法影響分析 192.4.3激活函數(shù)選擇影響分析 202.4.4學(xué)習(xí)率η選擇影響分析 202.4.5輸入輸出歸一化影響分析 212.4.6其他影響因素分析 222.5BP學(xué)習(xí)算法的改進(jìn) 222.5.1BP學(xué)習(xí)算法的優(yōu)缺點(diǎn) 222.5.2增加動(dòng)量項(xiàng) 232.5.3彈性BP學(xué)習(xí)算法 232.5.4自適應(yīng)學(xué)習(xí)速率法 242.5.5共軛梯度法 252.5.6Levenberg-Marquardt算法 253.BP神經(jīng)網(wǎng)絡(luò)仿真 273.1仿真平臺(tái)MATLAB 273.1.1MATLAB簡(jiǎn)介 273.1.2仿真平臺(tái)的構(gòu)建和策略 273.2仿真實(shí)驗(yàn) 283.2.1BP神經(jīng)網(wǎng)絡(luò)MATLAB設(shè)計(jì) 283.2.2各種BP學(xué)習(xí)算法MATLAB仿真 293.2.3各種算法仿真結(jié)果比較與分析 323.2.4調(diào)整初始權(quán)值和閾值的仿真 333.2.5其他影響因素仿真 354.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例 374.1實(shí)例概述 374.2網(wǎng)絡(luò)設(shè)計(jì) 374.3網(wǎng)絡(luò)訓(xùn)練 384.4網(wǎng)絡(luò)測(cè)試 394.5實(shí)例總結(jié) 405.總結(jié)與展望 415.1BP神經(jīng)網(wǎng)絡(luò)研究總結(jié) 415.2神經(jīng)網(wǎng)絡(luò)研究展望 42致謝 43參考文獻(xiàn) 44附錄 46
1.緒論1.1引言 隨著計(jì)算機(jī)的問(wèn)世與發(fā)展,人們?cè)O(shè)法了解人的大腦,進(jìn)而構(gòu)造具有人類(lèi)智能的智能計(jì)算機(jī)。在具有人腦邏輯推理能力延伸的計(jì)算機(jī)戰(zhàn)勝人類(lèi)棋手的同時(shí)引發(fā)人們對(duì)模擬人腦信息處理的人工神經(jīng)網(wǎng)絡(luò)的研究。 人工神經(jīng)網(wǎng)絡(luò)(ArtificialNeuralNetworks,ANN)(注:簡(jiǎn)稱(chēng)為神經(jīng)網(wǎng)絡(luò)),一種模仿動(dòng)物神經(jīng)網(wǎng)絡(luò)行為特征,進(jìn)行分布式并行信息處理的算法數(shù)學(xué)模型。這種網(wǎng)絡(luò)依靠系統(tǒng)的復(fù)雜程度,通過(guò)調(diào)整內(nèi)部大量節(jié)點(diǎn)之間相互連接的關(guān)系,從而達(dá)到處理信息的目的。人工神經(jīng)網(wǎng)絡(luò)具有自學(xué)習(xí)和自適應(yīng)的能力,可以通過(guò)預(yù)先提供的一批相互對(duì)應(yīng)的輸入-輸出數(shù)據(jù),分析掌握兩者之間潛在的規(guī)律,最終根據(jù)這些規(guī)律,用新的輸入數(shù)據(jù)來(lái)推算輸出結(jié)果,這種學(xué)習(xí)分析的過(guò)程被稱(chēng)為“訓(xùn)練”。(引自《環(huán)球科學(xué)》2007年第一期《神經(jīng)語(yǔ)言:老鼠胡須下的秘密》)1.2神經(jīng)網(wǎng)絡(luò)概述1.2.1神經(jīng)網(wǎng)絡(luò)起源 早在1890年,美國(guó)心理學(xué)家WilliamJames(1842-1910)出版了《PrinciplesofPsychology》專(zhuān)著,本書(shū)研究了心理活動(dòng)與大腦神經(jīng)生理活動(dòng)的關(guān)系,開(kāi)創(chuàng)性提出學(xué)習(xí)、聯(lián)想記憶的基本原理。指出:“讓我們假設(shè)所有后繼推理的基礎(chǔ)遵循這樣的規(guī)則:當(dāng)兩個(gè)基本的腦細(xì)胞曾經(jīng)一起或相繼被激活過(guò),其中一個(gè)受刺激激活時(shí)會(huì)將刺激傳播到另一個(gè)”。他還認(rèn)為在大腦皮層上的任意一點(diǎn)的刺激量是其他所有發(fā)射點(diǎn)進(jìn)入該點(diǎn)刺激總和。1943年,心理學(xué)家W.S.McCulloch和數(shù)理邏輯學(xué)家W.A.Pitts建立了神經(jīng)網(wǎng)絡(luò)和數(shù)學(xué)模型,稱(chēng)為M-P模型。他們通過(guò)M-P模型提出了神經(jīng)元的形式化數(shù)學(xué)描述和網(wǎng)絡(luò)結(jié)構(gòu)方法,證明了單個(gè)神經(jīng)元能執(zhí)行邏輯功能,從而開(kāi)創(chuàng)了人工神經(jīng)網(wǎng)絡(luò)研究的時(shí)代。1.2.2神經(jīng)網(wǎng)絡(luò)的發(fā)展歷程·1943年,心理學(xué)家W.S.McCulloch和數(shù)理邏輯學(xué)家W.Pitts建立了神經(jīng)網(wǎng)絡(luò)和數(shù)學(xué)模型,稱(chēng)為M-P模型;·1949年,心理學(xué)家DonaldOldingHebb出版了《OrganizationofBehavior》,在該書(shū)他首先提出了連接權(quán)訓(xùn)練算法,即如今人們稱(chēng)為的Hebb算法;·1958年,計(jì)算機(jī)科學(xué)家FrankRosenblatt,在一篇著名的文章中提出了一種具有三層網(wǎng)絡(luò)特性的“感知器”(perceptron)神經(jīng)網(wǎng)絡(luò);·1960年,電機(jī)工程師BernardWidrow和MarcianHoff發(fā)表了《AdaptiveSwitchingCircuits》文章,不僅把人工神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)上仿真,而且用硬件電路實(shí)現(xiàn)了它。因此Widrow-Hoff的學(xué)習(xí)訓(xùn)練算法(也稱(chēng)δ(誤差大小)算法或最小均方(LMS)算法)也應(yīng)運(yùn)而生;·1969年,人工智能的創(chuàng)始人之一,M.Minsky和S.Papert經(jīng)過(guò)數(shù)年研究,仔細(xì)分析了以感知器為代表的神經(jīng)網(wǎng)絡(luò)系統(tǒng)的功能及局限后,出版了《Perceptron》一書(shū),指出感知器不能解決高階謂詞問(wèn)題;·1969年,美國(guó)波士頓大學(xué)自適應(yīng)系統(tǒng)中心的S.Grossberg教授及其夫人G.A.Carpenter提出了著名的自適應(yīng)共振理論(adaptiveresonancetheory)模型;·1972年,芬蘭的T.Kohonen教授提出了自組織映射(SOM)理論,并稱(chēng)其神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為“associativememory”;與此同時(shí),美國(guó)的神經(jīng)生理學(xué)家和心理學(xué)家J.Anderson,提出了一個(gè)類(lèi)似的神經(jīng)網(wǎng)絡(luò)“interactivememory”;·1980年,日本東京NHK廣播科學(xué)研究實(shí)驗(yàn)室的福島邦彥(KunihikoFukushima),發(fā)表了《Neocognitron》,開(kāi)發(fā)了一些神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練算法,還有一系列的改進(jìn)的文章,新認(rèn)知機(jī)在于視覺(jué)模式識(shí)別機(jī)制的模型;·1982年,美國(guó)加州理工學(xué)院的優(yōu)秀物理學(xué)家JohnJ.Hopfield博士發(fā)表一篇著名的文章,吸收前人的研究成果,把各種結(jié)構(gòu)和算法概括綜合起來(lái)建立起新穎而有力的Hopfield網(wǎng)絡(luò);·1985年,G.E.Hinton和T.J.Sejnowski借助統(tǒng)計(jì)物理學(xué)概念和方法提出了波耳茲曼模型,在學(xué)習(xí)中采用統(tǒng)計(jì)熱力學(xué)模擬退火技術(shù),保證整個(gè)系統(tǒng)趨于全局穩(wěn)定點(diǎn);·1986年進(jìn)行認(rèn)知微觀結(jié)構(gòu)地研究,提出了并行分布處理的理論;·1987年首屆國(guó)際神經(jīng)網(wǎng)絡(luò)學(xué)術(shù)會(huì)議在美國(guó)加州圣地亞哥召開(kāi),成立了國(guó)際神經(jīng)網(wǎng)絡(luò)學(xué)會(huì)(INNS);·1987年以來(lái),神經(jīng)網(wǎng)絡(luò)理論、應(yīng)用、實(shí)現(xiàn)和相關(guān)開(kāi)發(fā)工具發(fā)展迅速,涉及神經(jīng)生理學(xué)、認(rèn)知科學(xué)、心理學(xué)、數(shù)理科學(xué)、信息科學(xué)、計(jì)算機(jī)科學(xué)、微電子學(xué)、光學(xué)、生物電子學(xué)等多學(xué)科交叉、綜合的前沿科學(xué)。應(yīng)用于各個(gè)領(lǐng)域,如自動(dòng)控制領(lǐng)域、處理組合優(yōu)化問(wèn)題、模式識(shí)別、圖像處理、機(jī)器人控制、醫(yī)療等??梢?jiàn)人工神經(jīng)網(wǎng)絡(luò)具有廣泛的研究和應(yīng)用前景;以下是1987年后的一些發(fā)展歷程:·1988年,BroomheadLower提出徑向基函數(shù)網(wǎng)絡(luò)(RadialBasisFunction,RBF),網(wǎng)絡(luò)設(shè)計(jì)采用原理化方法,有堅(jiān)實(shí)的數(shù)學(xué)基礎(chǔ);·1992-1998年,Vapnik提出了支持向量機(jī)(SupportVectorMachine,SVM),在模式分類(lèi)問(wèn)題上能提供良好的泛化能力。1.2.3神經(jīng)網(wǎng)絡(luò)國(guó)內(nèi)發(fā)展概況 1980年,涂序言教授等出版了《生物控制論》一書(shū),“神經(jīng)系統(tǒng)控制論”一章系統(tǒng)地介紹了神經(jīng)元和神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)、功能和模型,是我國(guó)最早涉及神經(jīng)網(wǎng)絡(luò)的著作;因此到80年代中期,我國(guó)學(xué)術(shù)界掀起了研究神經(jīng)網(wǎng)絡(luò)的熱潮;1988年北京大學(xué)非線性研究中心舉辦了BeijingInternationalWorkshoponNeuralNetworks:LearningandRecognition,aModernApproach;1989年召開(kāi)可全國(guó)非正式的神經(jīng)網(wǎng)絡(luò)會(huì)議,于1990年在北京召開(kāi)了中國(guó)神經(jīng)網(wǎng)絡(luò)首屆學(xué)術(shù)大會(huì),第二年在南京召開(kāi)了第二屆,并成立了中國(guó)神經(jīng)網(wǎng)絡(luò)學(xué)會(huì);1992年國(guó)際神經(jīng)網(wǎng)絡(luò)學(xué)會(huì)和IEEE神經(jīng)網(wǎng)絡(luò)委員會(huì)在北京召開(kāi)神經(jīng)網(wǎng)絡(luò)的國(guó)際性會(huì)議;自此中國(guó)神經(jīng)網(wǎng)絡(luò)研究在國(guó)家研究計(jì)劃的支持和學(xué)術(shù)及工程人員的發(fā)展與應(yīng)用下取得一系列豐碩成果。1.2.4神經(jīng)網(wǎng)絡(luò)研究現(xiàn)狀 神經(jīng)網(wǎng)絡(luò)是可大規(guī)模并行處理和分布式信息存儲(chǔ),具有良好的自學(xué)習(xí)、自適應(yīng)、自組織性,以及很強(qiáng)的聯(lián)想記憶和容錯(cuò)功能,可以充分逼近任意復(fù)雜的非線性關(guān)系,可有很強(qiáng)的信息綜合能力,能同時(shí)處理定量和定性信息,能很好的協(xié)調(diào)多種輸入信息關(guān)系,適用于處理復(fù)雜非線性和不確定對(duì)象。 目前的神經(jīng)網(wǎng)絡(luò)的研究中主要有以下幾種類(lèi)型:①松耦合模型:符號(hào)機(jī)制的專(zhuān)家系統(tǒng)和聯(lián)接機(jī)制的神經(jīng)網(wǎng)絡(luò)通過(guò)一個(gè)中間媒介如數(shù)據(jù)文件進(jìn)行通信;②緊耦合模型:其通信數(shù)據(jù)是直接的內(nèi)部數(shù)據(jù),具有很高的效率;③轉(zhuǎn)換模型:將專(zhuān)家系統(tǒng)知識(shí)轉(zhuǎn)換成神經(jīng)網(wǎng)絡(luò),或把神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換成專(zhuān)家系統(tǒng)知識(shí),轉(zhuǎn)換需要在兩種機(jī)制之間,確定結(jié)構(gòu)上的一致性,目前主要問(wèn)題還沒(méi)有一種能夠精確而完備的實(shí)現(xiàn)二者轉(zhuǎn)換;④綜合模型:將具有符號(hào)機(jī)制的邏輯功能和具有聯(lián)接機(jī)制的自適應(yīng)和容錯(cuò)性結(jié)合為一個(gè)整體,共享數(shù)據(jù)結(jié)構(gòu)和知識(shí)表示;⑤混沌理論:是系統(tǒng)從有序突然變?yōu)闊o(wú)序狀態(tài)的一種演化理論,是對(duì)確定性系統(tǒng)中出現(xiàn)的內(nèi)在“隨機(jī)過(guò)程”形成的途徑、機(jī)制的研討,從而與神經(jīng)網(wǎng)絡(luò)融合,達(dá)到取長(zhǎng)補(bǔ)短的效果;⑥模糊集理論:用語(yǔ)言和概念代表腦的宏觀功能,按照人為引入的隸屬度,將模糊性的語(yǔ)言信息進(jìn)行邏輯處理,與神經(jīng)網(wǎng)絡(luò)結(jié)合,取長(zhǎng)補(bǔ)短;⑦遺傳算法:模擬達(dá)爾文生物進(jìn)化論的自然選擇和遺傳學(xué)機(jī)理的生物進(jìn)化過(guò)程的計(jì)算模型,是一種通過(guò)模擬自然進(jìn)化過(guò)程搜索最優(yōu)解的方法,從而與神經(jīng)網(wǎng)絡(luò)融合,達(dá)到取長(zhǎng)補(bǔ)短的效果;⑧混合神經(jīng)網(wǎng)絡(luò):把神經(jīng)網(wǎng)絡(luò)與混沌理論、模糊集理論和遺傳算法相互結(jié)合的網(wǎng)絡(luò)模型。 人工神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)問(wèn)題展望,目前主要有以下三種方法:基于搜索機(jī)制的學(xué)習(xí)方法、基于規(guī)劃的學(xué)習(xí)方法和構(gòu)造性學(xué)習(xí)方法。如今也有其綜合方法,各有特點(diǎn)。其中基于搜索的方法,若不從根本上進(jìn)行改變,很難克服其內(nèi)在固有的缺點(diǎn),如基于局部最小的搜索算法,其中BP算法就有易限于局部極小的固有缺點(diǎn);規(guī)劃方法因?yàn)槠渲杏小皟?yōu)化的步驟”,從理論上看其所得網(wǎng)絡(luò)性能要比其他方法要好,但如何確定核函數(shù)形式和參數(shù)問(wèn)題一直是未能很好解決的問(wèn)題,當(dāng)數(shù)據(jù)規(guī)模極大會(huì)引起計(jì)算量過(guò)大問(wèn)題;構(gòu)造性方法,因?yàn)檫M(jìn)行了局部化,計(jì)算量要小,由于未進(jìn)行全局優(yōu)化,故性能不及規(guī)劃方法,不需要確定映射關(guān)系就沒(méi)有了確定核函數(shù)的困難問(wèn)題;如果能夠?qū)⑷呦嗷ソY(jié)合,將規(guī)劃方法中優(yōu)化過(guò)程合理地引入到構(gòu)造方法中,也許即可克服規(guī)劃方法計(jì)算量大的問(wèn)題,核函數(shù)和參數(shù)確定問(wèn)題,也可以克服構(gòu)造性方法未進(jìn)行全局優(yōu)化的缺點(diǎn);這些將是值得研究的問(wèn)題。隨著更多數(shù)學(xué)方法的引入,如模擬退火算法、商空間(即線性空間)理論、統(tǒng)計(jì)推斷方法與啟發(fā)式搜索技術(shù)及其結(jié)合產(chǎn)物的引入,促進(jìn)各種學(xué)習(xí)方法的改進(jìn),將有力的推進(jìn)神經(jīng)網(wǎng)絡(luò)的進(jìn)一步發(fā)展。 隨著神經(jīng)網(wǎng)絡(luò)的廣泛應(yīng)用,具有以下研究趨勢(shì):增強(qiáng)對(duì)智能和機(jī)器的關(guān)系問(wèn)題的認(rèn)識(shí),發(fā)展神經(jīng)計(jì)算與進(jìn)化計(jì)算的理論與應(yīng)用,擴(kuò)大神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和神經(jīng)元芯片的作用,促進(jìn)信息科學(xué)與生命科學(xué)的相互融合,進(jìn)行與其他智能方法融合技術(shù)研究。1.3研究目的、方法和問(wèn)題(BP神經(jīng)網(wǎng)絡(luò))1.3.1研究目的 在人工神經(jīng)網(wǎng)絡(luò)發(fā)展歷史中,很長(zhǎng)一段時(shí)間里沒(méi)有找到隱含層的連接權(quán)值調(diào)整問(wèn)題的有效算法。直到誤差反向傳播算法(BP神經(jīng)網(wǎng)絡(luò)算法)的提出,成功地解決了求解非線性連續(xù)函數(shù)的多層前饋神經(jīng)網(wǎng)絡(luò)權(quán)值調(diào)整問(wèn)題。目前,BP神經(jīng)網(wǎng)絡(luò)已成為廣泛使用的網(wǎng)絡(luò),可用于語(yǔ)言綜合、語(yǔ)言識(shí)別、自適應(yīng)控制等。它是一種多層前饋網(wǎng)絡(luò),采用最小均方差的學(xué)習(xí)方式,缺點(diǎn)是僅為有導(dǎo)師訓(xùn)練,訓(xùn)練時(shí)間長(zhǎng),易限于局部極小。 鑒于神經(jīng)網(wǎng)絡(luò)的廣泛應(yīng)用,特別是BP神經(jīng)網(wǎng)絡(luò)的發(fā)展,對(duì)于神經(jīng)網(wǎng)絡(luò)(比如BP神經(jīng)網(wǎng)絡(luò))的研究具有重要意義。研究的主要目的是:理解BP網(wǎng)絡(luò)結(jié)構(gòu)模型;學(xué)習(xí)誤差反向傳播算法和BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法;分析關(guān)鍵因素,得出BP網(wǎng)絡(luò)的優(yōu)缺點(diǎn);綜合各種因素并使用啟發(fā)式方法對(duì)BP神經(jīng)網(wǎng)絡(luò)算法進(jìn)行改進(jìn);應(yīng)用數(shù)學(xué)軟件MATLAB對(duì)BP神經(jīng)網(wǎng)絡(luò)標(biāo)準(zhǔn)算法和改進(jìn)算法進(jìn)行仿真編程;利用仿真結(jié)果和圖表得出各個(gè)算法適用條件;進(jìn)而研究實(shí)際問(wèn)題的BP神經(jīng)網(wǎng)絡(luò)構(gòu)建和仿真。1.3.2研究方法 通過(guò)參考研究學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)研究和工作者的著作和文章,理解神經(jīng)網(wǎng)絡(luò),特別是BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)模型和理論;利用現(xiàn)有的數(shù)學(xué)理論知識(shí)和方法,推導(dǎo)反向傳播算法計(jì)算;利用計(jì)算機(jī)程序設(shè)計(jì)理論編寫(xiě)B(tài)P神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法的步驟和流程;分析BP標(biāo)準(zhǔn)算法關(guān)鍵因素,利用現(xiàn)有數(shù)學(xué)相關(guān)方法(如啟發(fā)式方法,MATLAB中幾種典型的BP神經(jīng)網(wǎng)絡(luò)算法:traingdm,增加動(dòng)量法;trainrp,彈性BP算法;traingda,traingdx,自適應(yīng)學(xué)習(xí)速率法;traincgf,共軛梯度法;trainbfg,擬牛頓法;trainlm,Levenberg-Marquardt算法)對(duì)BP神經(jīng)網(wǎng)絡(luò)算法改進(jìn)和理論推導(dǎo);利用優(yōu)秀數(shù)學(xué)軟件MATLAB進(jìn)行BP網(wǎng)絡(luò)學(xué)習(xí)算法的仿真編程,分別建立BP神經(jīng)網(wǎng)絡(luò)標(biāo)準(zhǔn)算法、改進(jìn)算法的編程程序,利用MATLAB得出相關(guān)圖表,分析其關(guān)鍵因素;應(yīng)用實(shí)例對(duì)BP神經(jīng)網(wǎng)絡(luò)的應(yīng)用和仿真進(jìn)行驗(yàn)證;通過(guò)自己的理解和學(xué)習(xí)得出自己對(duì)神經(jīng)網(wǎng)絡(luò)(BP神經(jīng)網(wǎng)絡(luò))的思考。1.3.3研究問(wèn)題 研究問(wèn)題1:BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程,工作信號(hào)正向傳播,誤差信號(hào)反向傳播。得到如下圖1-1示意模型:(多層前饋型網(wǎng)絡(luò))
輸入層輸入層隱含層輸出層誤差信號(hào)圖1.1BP神經(jīng)網(wǎng)絡(luò)示意模型輸入信號(hào) 研究問(wèn)題2:BP神經(jīng)網(wǎng)絡(luò)的不足,訓(xùn)練時(shí)間較長(zhǎng),有時(shí)完全不能訓(xùn)練,失敗的可能性也較大,易陷于局部極小而得不到全局最優(yōu),隱含節(jié)點(diǎn)個(gè)數(shù)難以確定,訓(xùn)練過(guò)程有暫時(shí)遺忘的現(xiàn)象即學(xué)習(xí)新樣本有遺忘舊樣本的趨勢(shì)。 研究問(wèn)題3:BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法的改進(jìn)有(MATLAB神經(jīng)網(wǎng)絡(luò)工具箱中):增加動(dòng)量法(traingdm)、彈性BP算法(trainrp),自適應(yīng)學(xué)習(xí)速率法(traingdx)、共軛梯度法(traincgf)、擬牛頓法(trainbfg)以及Levenberg-Marquardt算法(trainlm)等。注:在MATLABR2007版本中traingdx為動(dòng)量及自適應(yīng)lrBP的梯度遞減訓(xùn)練函數(shù)。 研究問(wèn)題4:誤差要求和網(wǎng)絡(luò)復(fù)雜程度將影響B(tài)P各種算法的選擇;比如擬牛頓法需要Hessian矩陣,不適用于復(fù)雜的大型網(wǎng)絡(luò),但對(duì)于中型網(wǎng)絡(luò)其收斂效果僅次于LM算法,且需要的內(nèi)存也相對(duì)較小,但對(duì)于小型網(wǎng)絡(luò)LM算法最好最快,仿真效果要好;又如當(dāng)誤差要求比較高時(shí),彈性BP算法和自適應(yīng)學(xué)習(xí)速率法需要很長(zhǎng)的訓(xùn)練時(shí)間,在設(shè)定的訓(xùn)練步驟范圍內(nèi)不能達(dá)到期望誤差。 研究問(wèn)題5:在實(shí)例的網(wǎng)絡(luò)模型的建立和MATLAB仿真的過(guò)程中,發(fā)現(xiàn)沒(méi)有確定隱含層神經(jīng)元數(shù)目的有效方法,隱含層神經(jīng)元的數(shù)目直接影響分類(lèi)精度,神經(jīng)元數(shù)目過(guò)多或過(guò)少都會(huì)使網(wǎng)絡(luò)性能下降,一般只能由經(jīng)驗(yàn)設(shè)定,再經(jīng)過(guò)多次調(diào)試確定最佳數(shù)目。其次網(wǎng)絡(luò)的泛化能力與訓(xùn)練能力的矛盾,一般情況下,訓(xùn)練能力差時(shí),預(yù)測(cè)能力也差,并且一定程度上隨訓(xùn)練能力地提高,泛化能力也提高。但這種趨勢(shì)有一個(gè)極限,當(dāng)達(dá)到此極限時(shí),隨訓(xùn)練能力的提高,泛化能力反而下降,即出現(xiàn)所謂“過(guò)擬合”現(xiàn)象。此時(shí),網(wǎng)絡(luò)學(xué)習(xí)了過(guò)多的樣本細(xì)節(jié),而不能反映樣本內(nèi)含的規(guī)律。
2.BP神經(jīng)網(wǎng)絡(luò)2.1BP神經(jīng)網(wǎng)絡(luò)相關(guān)原理2.1.1神經(jīng)元非線性模型f(·)f(·)∑θkwk1wk2wkI固定輸入x0=+1x1x2閾值μkνk激活函數(shù)輸出yk圖2.1神經(jīng)元非線性模型加法器xI①加法器,也稱(chēng)線性組合器,將求輸入信號(hào)突觸權(quán)值被神經(jīng)元的相應(yīng)突觸加權(quán)和;②激活函數(shù)是用來(lái)限制神經(jīng)元的振幅,主要有[0,1]或[-1,+1];③閾值的作用是根據(jù)其為正或負(fù),相應(yīng)的增加或減低激活函數(shù)的網(wǎng)絡(luò)輸入。注:這里的K為實(shí)例。模擬的是生物神經(jīng)元的電位脈沖原理。環(huán)境教師學(xué)習(xí)系統(tǒng)實(shí)際響應(yīng)描述環(huán)境狀態(tài)向量期望模式輸入模式+-誤差信號(hào)環(huán)境教師學(xué)習(xí)系統(tǒng)實(shí)際響應(yīng)描述環(huán)境狀態(tài)向量期望模式輸入模式+-誤差信號(hào)ek圖2.2有教師學(xué)習(xí)方框圖期望響應(yīng) 有教師學(xué)習(xí)采用的是糾錯(cuò)規(guī)則,在網(wǎng)絡(luò)的學(xué)習(xí)訓(xùn)練過(guò)程給神經(jīng)網(wǎng)絡(luò)一個(gè)期望模式和輸入模式,所期望的模式就是教師信號(hào),因此可以將輸入模式所得的結(jié)果與期望模式的結(jié)果相比較,當(dāng)不相符時(shí),可以根據(jù)相關(guān)規(guī)則進(jìn)行權(quán)值調(diào)整,比如上述的Delta規(guī)則,直到滿足一定誤差范圍內(nèi),這將更接近期望模式結(jié)果。由此可見(jiàn),在執(zhí)行具體任務(wù)之前必須經(jīng)過(guò)學(xué)習(xí),直到“學(xué)會(huì)”為止。2.1.3神經(jīng)元數(shù)學(xué)模型 設(shè)在n時(shí)刻,神經(jīng)元i到神經(jīng)元j的信息傳遞,其輸入信息為xi(n),輸出為Oj(n),則神經(jīng)元j的數(shù)學(xué)表達(dá)式為(式2.1)其中是神經(jīng)元i到j(luò)的突觸連接權(quán)值 是輸入和輸出間的突觸時(shí)延 是神經(jīng)元j的閾值 是神經(jīng)元激活函數(shù)如果,,又=-1,=()可得:。2.1.4Delta學(xué)習(xí)規(guī)則 Delta學(xué)習(xí)規(guī)則,也稱(chēng)連續(xù)感知器學(xué)習(xí)規(guī)則,與離散感知器學(xué)習(xí)規(guī)則并行。其規(guī)則的學(xué)習(xí)信號(hào)規(guī)定為:(式2.2)為了方便計(jì)算,定義神經(jīng)元j的期望誤差與實(shí)際輸出之間的計(jì)算誤差為(式2.3)按照誤差的負(fù)梯度修正權(quán)值,即:(式2.4)(式2.5)其中是學(xué)習(xí)率,0<<1,在多層前饋網(wǎng)絡(luò)中,權(quán)值可以初始化為任意值。由式2.5可以看出Delta規(guī)則要求連續(xù)可導(dǎo)的激活函數(shù),如Sigmoid函數(shù)。綜合式2.1至式2.5得:(式2.6)其中式2.3中(包括和)為n學(xué)習(xí)時(shí)刻的計(jì)算誤差,Delta學(xué)習(xí)規(guī)則的學(xué)習(xí)信號(hào)也為在n時(shí)刻。2.1.5神經(jīng)元激活函數(shù)OO+1+1-1+1+1-1OOO(a)階躍閾值函數(shù)(b)符號(hào)閾值函數(shù)(c)S型對(duì)數(shù)函數(shù)(d)S型正切函數(shù)圖2.3神經(jīng)元激活函數(shù)圖形 在神經(jīng)元的激活函數(shù)中分為閾值激活函數(shù)(包括階躍型和符號(hào)型),線性激活函數(shù)(包括純線性型和分段線性型,在圖中未標(biāo)識(shí)),非線性激活函數(shù)(主要是S型函數(shù),分為S型對(duì)數(shù)函數(shù)和S型正切函數(shù),這兩種是BP神經(jīng)網(wǎng)絡(luò)主要使用的,即Sigmoid函數(shù)及其改進(jìn)),還有一種概率型激活函數(shù)(其神經(jīng)元狀態(tài)分布與熱力學(xué)的Boltzmann分布相似,故稱(chēng)這種模型為神經(jīng)網(wǎng)絡(luò)熱力學(xué)模型)。2.1.6BP神經(jīng)網(wǎng)絡(luò)收斂準(zhǔn)則 在實(shí)際問(wèn)題上,實(shí)際輸出往往很難達(dá)到期望輸出,因此需要一個(gè)準(zhǔn)則停止權(quán)值的調(diào)整,這就需要考慮關(guān)于誤差曲面的局部或全局最小的性質(zhì)。以下有兩種收斂準(zhǔn)則:Kramer&Sangiovanni-Vincentelli準(zhǔn)則: 當(dāng)梯度向量的歐幾里德范數(shù)達(dá)到一個(gè)充分小的梯度閾值時(shí),認(rèn)為反向傳播算法已經(jīng)收斂。注:歐幾里德(Euclidean)范數(shù)指得就是通常意義上的距離范數(shù), 比如SimonHaykin建議準(zhǔn)則: 當(dāng)每一個(gè)回合的均方差的變化的絕對(duì)速率足夠小時(shí),認(rèn)為反向傳播算法已經(jīng)收斂。分析:第一個(gè)準(zhǔn)則為了達(dá)到期望值,學(xué)習(xí)時(shí)間可能會(huì)很長(zhǎng),而第二個(gè)準(zhǔn)則則有可能過(guò)早的終止學(xué)習(xí)。然而都需要計(jì)算一個(gè)梯度或變化率。 然而根據(jù)網(wǎng)絡(luò)對(duì)輸入數(shù)據(jù)集合參數(shù)化的學(xué)習(xí)過(guò)程,我們可以通過(guò)網(wǎng)絡(luò)的泛化能力即預(yù)測(cè)能力判斷網(wǎng)絡(luò)的收斂,當(dāng)泛化能力達(dá)到了比較強(qiáng)的一個(gè)標(biāo)準(zhǔn)時(shí),可以認(rèn)為學(xué)習(xí)過(guò)程的停止,即已經(jīng)收斂。 關(guān)于泛化方法(如結(jié)構(gòu)設(shè)計(jì)方法、主動(dòng)學(xué)習(xí)、在樣本隨機(jī)輸入中添加隨機(jī)噪聲、表決網(wǎng)、基于先驗(yàn)知識(shí)、最優(yōu)停止法等)內(nèi)容請(qǐng)參考相關(guān)文獻(xiàn)。2.2BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過(guò)程描述輸入層隱含層輸出層誤差信號(hào)圖2.4BP神經(jīng)網(wǎng)絡(luò)計(jì)算模型輸入信號(hào)x1輸入層隱含層輸出層誤差信號(hào)圖2.4BP神經(jīng)網(wǎng)絡(luò)計(jì)算模型輸入信號(hào)x1O層x22xIy1y2yOQ層P層I層12I123P123Q12Owqowpq注:Wpq是隱含層P中p(輸出)神經(jīng)元到隱含層Q中q(輸入)神經(jīng)元的連接權(quán)值。 神經(jīng)元輸入用μ,激勵(lì)輸出用ν,激勵(lì)函數(shù)用Sigmoid,μIi表示I層的第i個(gè)神經(jīng)元輸入,在這里即xi; 訓(xùn)練樣本集X=[x1,x2,…,xI]T,訓(xùn)練實(shí)例K樣本集Xk=[xk1,xk2,…,xkI]T; 實(shí)際輸出Yk=[yk1,yk2,…,ykO]T,期望輸出dk=[dk1,dk2,…,dkO]T; 假設(shè)n為迭代次數(shù),即訓(xùn)練步長(zhǎng),權(quán)值和實(shí)際輸出是n的函數(shù)。2.2.2BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過(guò)程描述①工作信號(hào)正向傳播。輸入信號(hào)從輸入層經(jīng)隱含層傳向輸出層,在輸出端產(chǎn)生輸出信號(hào),在信號(hào)的向前傳遞過(guò)程中網(wǎng)絡(luò)的權(quán)值是固定不變的,沒(méi)一層神經(jīng)元的狀態(tài)只影響下一層的神經(jīng)元的狀態(tài)。如果在輸出曾不能得到期望的輸出則會(huì)轉(zhuǎn)入誤差反向傳播;②誤差信號(hào)反向傳播。網(wǎng)絡(luò)誤差信號(hào)即網(wǎng)絡(luò)的實(shí)際輸出與期望輸出之間的差值,該信號(hào)由輸出端逐層向前傳播。在誤差信號(hào)的反向傳播過(guò)程中,網(wǎng)絡(luò)的權(quán)值由誤差反饋進(jìn)行調(diào)節(jié),即權(quán)值修正,經(jīng)過(guò)不斷的修正直到允許的誤差范圍。2.2.3BP神經(jīng)網(wǎng)絡(luò)方框圖一層或多層隱藏神經(jīng)元輸出神經(jīng)元KYk(n)∑dk一層或多層隱藏神經(jīng)元輸出神經(jīng)元KYk(n)∑dk(n)ek(n)輸入向量Xk(n)圖2.5BP神經(jīng)網(wǎng)絡(luò)方框圖2.3BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)方法2.3.1BP神經(jīng)網(wǎng)絡(luò)信號(hào)流程dj(n)y0=+1閾值θ0edj(n)y0=+1閾值θ0ej(n)νj(n)yi(n)f()yj(n)-+n+1圖2.6(a)BP神經(jīng)網(wǎng)絡(luò)信號(hào)流圖圖2.6(b)BP神經(jīng)網(wǎng)絡(luò)信號(hào)流圖y0=+1閾值θ0y0=+1閾值θ0yi(n)ν圖2.6(b)BP神經(jīng)網(wǎng)絡(luò)信號(hào)流圖y0=+1閾值θ0y0=+1閾值θ0yi(n)νj(n)yj(n)f()yk(n)νk(n)f()dk(n)ek(n)n+1-+以單個(gè)神經(jīng)元輸出為例。2.3.2誤差反向傳播計(jì)算根據(jù)圖2.6(a)可以初步寫(xiě)出下面的式子:(式2.7)(式2.8)根據(jù)圖2.6(b)可以初步寫(xiě)出下面的式子:(式2.9)(式2.10)其中i=1,2,…,I;j=1,2,…,J;k=1,2,…,K;n為學(xué)習(xí)步長(zhǎng)。①在圖2.6(a)中,神經(jīng)元j在迭代n時(shí),即訓(xùn)練第n個(gè)例子時(shí),輸出誤差信號(hào)定義如下:(此時(shí)j為輸出節(jié)點(diǎn))(式2.11)定義神經(jīng)元j的誤差瞬時(shí)值為因此,整個(gè)誤差瞬時(shí)值(式2.12)即為輸出層的所有神經(jīng)元的誤差瞬時(shí)值之和。注:此定義式這是個(gè)均方差式,求得實(shí)際輸出和期望輸出的誤差值,二分之一是為了方便計(jì)算。根據(jù)Delta學(xué)習(xí)規(guī)則,由式2.6可得出(式2.13)計(jì)算:(式2.14)根據(jù)式2.7至式2.12可得下式結(jié)果,再由下面的式子可以得出式2.14的計(jì)算結(jié)果:(式2.15)如果令(該為負(fù)向局向梯度)取激勵(lì)函數(shù)為:(sigmoid函數(shù),或稱(chēng)邏輯函數(shù))(式2.16)令a=1,對(duì)該激勵(lì)函數(shù)并代入求導(dǎo):因此(式2.17)②在圖2.6(b)中,隱含層I和J,輸出層為k:(式2.18)由式2.9至式2.17和上述推導(dǎo)過(guò)程可得:(式2.19)(式2.20)又根據(jù)反向傳播定義可知:(式2.21)因?yàn)槭?.9和式2.18代入式2.21可得:(式2.22)將式2.21代入式2.20可得局向梯度為:根據(jù)在圖a中替換下標(biāo)j可以得出k的局向梯度:因此,注:(注意換j與k下標(biāo))前面計(jì)算有:如此反向向前逐層傳播計(jì)算。2.3.3BP神經(jīng)網(wǎng)絡(luò)算法描述
以上的反向傳播算法計(jì)算過(guò)程是BP算法的基礎(chǔ)算法,下面是其算法描述:初始化輸入樣本計(jì)算各層輸出及輸出誤差計(jì)算各層誤差信號(hào)調(diào)整各層權(quán)值m<ME<ε結(jié)束n=n+1,m=m+1E=0m=1初始化輸入樣本計(jì)算各層輸出及輸出誤差計(jì)算各層誤差信號(hào)調(diào)整各層權(quán)值m<ME<ε結(jié)束n=n+1,m=m+1E=0m=1圖2.7BP基本算法流程圖開(kāi)始②輸入訓(xùn)練樣本,包括實(shí)際訓(xùn)練樣本X和期望輸出樣本d;③計(jì)算各層輸出V和Y向量,并用e=d-y計(jì)算輸出誤差;④計(jì)算各層誤差信號(hào),包括誤差的局向梯度δ;⑤調(diào)整各層權(quán)值,利用反向傳播計(jì)算原理調(diào)整⑥對(duì)樣本計(jì)數(shù)器m進(jìn)行檢查,看是否完成所有樣本的訓(xùn)練;⑦對(duì)訓(xùn)練結(jié)果產(chǎn)生的網(wǎng)絡(luò)誤差進(jìn)行比較,看是否在所允許的誤差之內(nèi);⑧若⑥⑦否則轉(zhuǎn)向②繼續(xù)訓(xùn)練,否則訓(xùn)練結(jié)束。2.4影響因素分析2.4.1權(quán)值初始值設(shè)置影響分析 經(jīng)過(guò)實(shí)際應(yīng)用中實(shí)踐得知,初始值過(guò)大或過(guò)小都會(huì)影響學(xué)習(xí)速度,一般認(rèn)為權(quán)值的初始值應(yīng)選為均勻分布的小數(shù)經(jīng)驗(yàn)值,常用的為(-2.4/F,2.4/F),也有人認(rèn)為(),F為所連輸入端個(gè)數(shù);從算法計(jì)算與描述得知,初始值設(shè)置為隨機(jī)數(shù),這是為避免每一步權(quán)值的調(diào)整是同時(shí)增加或同時(shí)減小,防止進(jìn)入飽和區(qū)(訓(xùn)練誤差在很長(zhǎng)時(shí)間內(nèi)基本保持不變,但又不是陷入局部極小,因?yàn)橐欢螘r(shí)間后,誤差會(huì)繼續(xù)下降。)或局部極小區(qū),加快訓(xùn)練速度。 可以根據(jù)這樣一個(gè)分布來(lái)選擇權(quán)值的初始值,這樣的分布即是需要根據(jù)其均值為0而方差將與神經(jīng)元的連接數(shù)目成反比的均勻分布。2.4.2權(quán)值調(diào)整方法影響分析 此權(quán)值調(diào)整方法正是構(gòu)成了網(wǎng)絡(luò)的訓(xùn)練方法,有兩種方法:順序方式和批處理方式。順序方式即在標(biāo)準(zhǔn)的BP算法中,沒(méi)輸入一個(gè)樣本就會(huì)反向傳播誤差并調(diào)整權(quán)值;而批處理方式是把所有樣本輸入之后,計(jì)算網(wǎng)絡(luò)的平均總誤差為學(xué)習(xí)目標(biāo),根據(jù)總誤差計(jì)算各層誤差信號(hào)并修正權(quán)值,平均總誤差為:其中m為第m個(gè)訓(xùn)練實(shí)例,j為輸出神經(jīng)元,表示第m個(gè)訓(xùn)練實(shí)例的輸出神經(jīng)元j的誤差,M為訓(xùn)練樣本總數(shù),J為輸出神經(jīng)元總數(shù)。由此可見(jiàn),順序方式的臨時(shí)空間要小,訓(xùn)練速度要快一些,特別是在訓(xùn)練樣本集很大且重復(fù)的樣本很多時(shí),這種優(yōu)勢(shì)更為顯而易見(jiàn);但是這種方法只顧眼前,所以會(huì)有“暫時(shí)遺忘”現(xiàn)象,即學(xué)了新的忘了舊的,故需要重復(fù)地學(xué)習(xí),導(dǎo)致收斂速度很慢,收斂條件難以建立。如果在順序方式中加入隨機(jī)的輸入樣本,有利于權(quán)值的空間搜索的隨機(jī)性,一定條件上可避免陷入局部最小。批處理方式的臨時(shí)空間要大一些,訓(xùn)練速度要慢些,這是因?yàn)榕幚矸绞绞菍⒏鳂颖镜恼`差加在一起,故要一次存儲(chǔ)各樣本的誤差,根據(jù)其和值對(duì)權(quán)值調(diào)整,由于這些誤差可以相互抵消,這將降低算法的調(diào)整能力,降低學(xué)習(xí)速度;若改為誤差平方和,也不能避免陷入局部極小,也可能由誤差不為零、總和為零產(chǎn)生新的局部極小現(xiàn)象。但是批處理方式能夠精確計(jì)算梯度向量,容易確立誤差收斂條件,并進(jìn)行并行處理。2.4.3激活函數(shù)選擇影響分析 一般情況下,是選擇可微非線性sigmoid函數(shù)作為BP神經(jīng)網(wǎng)絡(luò)的激活函數(shù),這種函數(shù)有力的反應(yīng)生物神經(jīng)元的非線性轉(zhuǎn)化且計(jì)算方便,如果采用閾值或線性的激活函數(shù)則難以解決異或問(wèn)題,同時(shí)如果選擇奇函數(shù),實(shí)踐證明能夠加快BP算法的學(xué)習(xí)速度,因此雙極性的激活函數(shù)S型正切函數(shù)的效果更好。S型對(duì)數(shù)函數(shù)的漸近值只能被期望輸出逼近,卻不能達(dá)到。有事實(shí)表明,前向型網(wǎng)絡(luò)的激活函數(shù)對(duì)網(wǎng)絡(luò)的收斂速度和收斂精度均有很大影響。所以實(shí)際中設(shè)計(jì)BP神經(jīng)網(wǎng)絡(luò)時(shí)選用激活函數(shù)也顯得比較重要。 下面有兩種S型函數(shù),S型對(duì)數(shù)函數(shù)和S型正切函數(shù):S型對(duì)數(shù)函數(shù)S型正切函數(shù)其中a,b>0常數(shù),通常a=1.7159.b=2/3。因此,f(1)=1,f(-1)=-1,f(0)=ab=1.7159·2/3=1.1424,斜率接近單位1,在x=1時(shí)二階導(dǎo)數(shù)最大。在誤差反向傳播計(jì)算中所用的是S型對(duì)數(shù)函數(shù),同理可以使用S型正切函數(shù),并對(duì)其求導(dǎo)推導(dǎo)。S型對(duì)數(shù)函數(shù)不是奇函數(shù),工作范圍是[0,1]。而雙極性S型正切函數(shù)除了本身符合連續(xù)可微的條件外,具有雙極性輸出,它常常被選用為要求輸入是±1范圍的信號(hào),關(guān)于它們的選擇主要從函數(shù)自身的工作范圍及其導(dǎo)數(shù)值的大小范圍以及結(jié)構(gòu)簡(jiǎn)單和運(yùn)算速度快等思想考慮。由此可見(jiàn),研究BP神經(jīng)網(wǎng)絡(luò)激活函數(shù)是今后研究的一個(gè)重要課題。2.4.4學(xué)習(xí)率η選擇影響分析首先,學(xué)習(xí)率是隨時(shí)間改變的,為了方便,在反向傳播算法計(jì)算過(guò)程中采用的是不變的學(xué)習(xí)率。下面是理想學(xué)習(xí)率示意圖和一些規(guī)則:迭代次數(shù)nE(n)收斂速率圖2.8理想學(xué)習(xí)率示意圖迭代次數(shù)nE(n)收斂速率圖2.8理想學(xué)習(xí)率示意圖根據(jù)反向傳播計(jì)算式得知,學(xué)習(xí)率η越大權(quán)值的變化就越大,則BP算法的學(xué)習(xí)收斂速度就越快,過(guò)大則引起網(wǎng)絡(luò)的振蕩,導(dǎo)致網(wǎng)絡(luò)的不穩(wěn)定以及性能低下,當(dāng)超過(guò)某一極值容易引起算法不穩(wěn)定。相反學(xué)習(xí)率η小可以避免網(wǎng)絡(luò)的振蕩,但導(dǎo)致學(xué)習(xí)收斂速度的下降。經(jīng)過(guò)實(shí)踐證明來(lái)說(shuō),輸出單元的局向梯度比輸入端大,為此輸出單元的η應(yīng)小些;有較多輸入端的神經(jīng)元的η要比有較少的輸入端的神經(jīng)元的η小些;對(duì)于一個(gè)給定的神經(jīng)元,其學(xué)習(xí)率應(yīng)與神經(jīng)元的突觸連接的平方根成反比。在BP改進(jìn)算法中引入了動(dòng)量法解決η的學(xué)習(xí)過(guò)程變化問(wèn)題,增加網(wǎng)絡(luò)的穩(wěn)定性,加快學(xué)習(xí)收斂速度,如MATLAB中使用動(dòng)量及自適應(yīng)lrBP的梯度遞減訓(xùn)練函數(shù)。此外有很多研究人員采用遺傳算法和免疫算法BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率進(jìn)行優(yōu)化設(shè)計(jì)并簡(jiǎn)歷數(shù)學(xué)模型,下面是一個(gè)簡(jiǎn)單的優(yōu)化的學(xué)習(xí)率變化公式:其中n為迭代次數(shù),A和λ根據(jù)工程應(yīng)用的復(fù)雜性和結(jié)構(gòu)優(yōu)化的模糊性,對(duì)不同的系統(tǒng)和要求取不同的范圍,一般情況下,1≤A≤50,0.0001≤λ≤0.001。(參考文獻(xiàn)10)2.4.5輸入輸出歸一化影響分析 在輸入樣本訓(xùn)練網(wǎng)絡(luò)時(shí),如果所有輸入樣本的輸入信號(hào)都為正值或負(fù)值,則與第一隱含層的神經(jīng)元權(quán)值只能同時(shí)增加或減小,從而導(dǎo)致學(xué)習(xí)速度很慢。因此需要對(duì)輸入信號(hào)進(jìn)行歸一化處理,使得所有樣本的輸入信號(hào)均值接近零或者其標(biāo)準(zhǔn)方差比較小。 歸一化的問(wèn)題旨在是歸納統(tǒng)一樣本的統(tǒng)計(jì)分布性,改善其分布規(guī)律,具體是消除均值,去相關(guān)性以及均方差均衡。歸一化在[0,1]之間是統(tǒng)計(jì)的概率分布,歸一化在[-1,+1]之間是統(tǒng)計(jì)的坐標(biāo)分布。網(wǎng)絡(luò)的各個(gè)輸入數(shù)據(jù)常常具有不同的物理意義和不同的量綱,為此需要使網(wǎng)絡(luò)訓(xùn)練一開(kāi)始就給各訓(xùn)練輸入向量以同等的身份地位。BP神經(jīng)網(wǎng)絡(luò)的神經(jīng)元一般采用sigmoid激活函數(shù),歸一化可以防止輸入信號(hào)數(shù)據(jù)絕對(duì)值過(guò)大進(jìn)入飽和區(qū)。另外,期望輸出數(shù)據(jù)不進(jìn)行歸一化會(huì)導(dǎo)致數(shù)值大的分量絕對(duì)誤差大,數(shù)值小的絕對(duì)誤差小,網(wǎng)絡(luò)訓(xùn)練時(shí)只針對(duì)輸出的總誤差調(diào)整權(quán)值,因此在總誤差中所占份額少的輸出分量相對(duì)誤差較大。這些都將影響學(xué)習(xí)的速度。 處理的方法有,利用合理的變換等式將輸入輸出的數(shù)據(jù)變換為[0,1]或[-1,+1](其選擇主要看激活函數(shù)的選擇)之間的數(shù)據(jù);當(dāng)輸入輸出向量中某個(gè)分量的取值過(guò)于密集時(shí),由此可以將數(shù)據(jù)的點(diǎn)拉開(kāi)一定距離,適當(dāng)變換分布,改善分布規(guī)律。使用主分量分析法使訓(xùn)練樣本的輸入向量互不相關(guān),去相關(guān)后的輸入變量應(yīng)調(diào)整其長(zhǎng)度使它們的方差近似相等,因此可以使網(wǎng)絡(luò)中不同權(quán)值以大約相等的速度進(jìn)行學(xué)習(xí)。2.4.6其他影響因素分析 關(guān)于能夠改善BP神經(jīng)網(wǎng)絡(luò)性能和學(xué)習(xí)收斂速度的影響因素還有很多,比如輸入樣本信息內(nèi)容的選擇問(wèn)題、允許誤差ε的選擇問(wèn)題,從提示中學(xué)習(xí)的問(wèn)題以及改進(jìn)誤差函數(shù)等。 在輸入樣本信息選擇問(wèn)題上,為能在對(duì)權(quán)空間進(jìn)行更多的搜索,需要以下兩個(gè)原則選擇輸入樣本,使用訓(xùn)練誤差最大的樣本,使用的樣本要與以前使用的有根本區(qū)別。此外,在一個(gè)迭代過(guò)程給網(wǎng)絡(luò)的訓(xùn)練樣本分布是變形的,如果含有例外點(diǎn)或錯(cuò)誤標(biāo)記的訓(xùn)練樣本將會(huì)損壞輸入空間更大區(qū)域的泛化能力,降低網(wǎng)絡(luò)的性能。 允許誤差ε的選擇也會(huì)影響學(xué)習(xí)的收斂速度和學(xué)習(xí)精度,我們一般采取一開(kāi)始將允許誤差取大些,然后逐漸減少的做法,這樣是對(duì)網(wǎng)絡(luò)訓(xùn)練的寬容,也是因?yàn)榫W(wǎng)絡(luò)的訓(xùn)練往往很難達(dá)到期望的值,也是為了加快學(xué)習(xí)速度,也要參考具體問(wèn)題所要求的精度。 提示學(xué)習(xí)是利用現(xiàn)有的關(guān)于函數(shù)的先驗(yàn)知識(shí)(如函數(shù)的不變性、對(duì)成性以及其他特性)來(lái)提高函數(shù)的逼近能力,這就需要從學(xué)習(xí)樣本中提取有關(guān)輸入輸出函數(shù)的信息,推斷出能夠逼近輸入輸出函數(shù)的函數(shù),在學(xué)習(xí)中嵌入這樣的提示,使用統(tǒng)計(jì)分布的方法建立虛擬樣本,也增加了網(wǎng)絡(luò)的泛化能力,加快了學(xué)習(xí)速度。 改進(jìn)誤差函數(shù),標(biāo)準(zhǔn)的誤差函數(shù)采用的是(這也是為了方便計(jì)算)隨著學(xué)習(xí)次數(shù)的增加,越來(lái)越小,使函數(shù)逼近速度減慢,這樣對(duì)高度非線性樣本的逼近精度得不到保證,為此用絕對(duì)和相對(duì)逼近精度來(lái)描述次誤差函數(shù),即其中和是常量系數(shù)。在樣本學(xué)習(xí)初期,以絕對(duì)形式的誤差函數(shù)來(lái)指導(dǎo)權(quán)值的修正;學(xué)習(xí)后期,以相對(duì)形式函數(shù)誤差為主:則隨著學(xué)習(xí)次數(shù)的增加而減少,則隨學(xué)習(xí)次數(shù)的增加而增加。有的學(xué)者提出采用熵類(lèi)準(zhǔn)則函數(shù)或分類(lèi)啟發(fā)準(zhǔn)則(參見(jiàn)參考文獻(xiàn)11)。2.5BP學(xué)習(xí)算法的改進(jìn)2.5.1BP學(xué)習(xí)算法的優(yōu)缺點(diǎn)①BP學(xué)習(xí)算法優(yōu)點(diǎn): BP學(xué)習(xí)算法具有數(shù)學(xué)理論依據(jù)可靠,推導(dǎo)過(guò)程嚴(yán)謹(jǐn),通用性好,解決了求解非線性連續(xù)函數(shù)的多層前饋神經(jīng)網(wǎng)絡(luò)權(quán)值調(diào)整問(wèn)題,具有實(shí)現(xiàn)任何復(fù)雜非線性映射的功能,特別適合求解內(nèi)部機(jī)制的復(fù)雜問(wèn)題。它具有自學(xué)習(xí)、自組織、自適應(yīng)性和很強(qiáng)的信息綜合能力,能夠同時(shí)處理定量和定性信息,協(xié)調(diào)多種輸入的關(guān)系并進(jìn)行推廣概括,實(shí)行并行處理,適用于處理復(fù)雜非線性和不確定的對(duì)象。②BP學(xué)習(xí)算法缺點(diǎn): 基于梯度下降法及目標(biāo)函數(shù)復(fù)雜,導(dǎo)致訓(xùn)練次數(shù)多,訓(xùn)練時(shí)間較長(zhǎng),收斂緩慢;基于局部搜索的優(yōu)化方法,導(dǎo)致有時(shí)完全不能訓(xùn)練,失敗的可能性也較大,易陷于局部極小而得不到全局最優(yōu);網(wǎng)絡(luò)結(jié)構(gòu)的選擇尚無(wú)統(tǒng)一完整的理論指導(dǎo),隱含節(jié)點(diǎn)個(gè)數(shù)難以確定,而網(wǎng)絡(luò)的結(jié)構(gòu)直接影響網(wǎng)絡(luò)的逼近能力及推廣性質(zhì);訓(xùn)練過(guò)程有暫時(shí)遺忘的現(xiàn)象即學(xué)習(xí)新樣本有遺忘舊樣本的趨勢(shì);學(xué)習(xí)復(fù)雜性問(wèn)題,即網(wǎng)絡(luò)容量的可能性與可行性的關(guān)系問(wèn)題,難以解決應(yīng)用問(wèn)題的實(shí)例規(guī)模和網(wǎng)絡(luò)規(guī)模的矛盾問(wèn)題;還有諸如新加入訓(xùn)練樣本的要求及對(duì)已學(xué)習(xí)成功網(wǎng)絡(luò)的影響,網(wǎng)絡(luò)泛化能力和訓(xùn)練能力的極限問(wèn)題等。 鑒于BP學(xué)習(xí)算法的優(yōu)缺點(diǎn),增強(qiáng)BP神經(jīng)網(wǎng)絡(luò)的性能和應(yīng)用,目前主要有如下幾種改進(jìn)方法。此外還有一些諸如增加遺忘因子、誤差曲面陡度因子的方法,以及將多種方法和相關(guān)數(shù)學(xué)原理相結(jié)合的方法(具體請(qǐng)參考相關(guān)文獻(xiàn))。2.5.2增加動(dòng)量項(xiàng) 在前面提到學(xué)習(xí)率的變化會(huì)影響網(wǎng)絡(luò)的性能,為此在權(quán)值調(diào)整公式中增加一個(gè)動(dòng)量項(xiàng),達(dá)到微調(diào)權(quán)值修正量防止振蕩的效果。這樣通過(guò)動(dòng)量法不僅考慮了誤差在梯度上的作用,而且考慮了誤差曲面上變化的方向。其中α是動(dòng)量因子,一般有α∈(0,1)動(dòng)量項(xiàng)反應(yīng)了以前的調(diào)整經(jīng)驗(yàn),對(duì)下一時(shí)刻的調(diào)整起到一定阻尼作用。因此可以減小振蕩的趨勢(shì),促使權(quán)值的調(diào)節(jié)向著誤差曲面的底部的平均方向變化,降低了網(wǎng)絡(luò)對(duì)誤差曲面在局部細(xì)節(jié)的敏感性,在一定程度上緩解局部極小問(wèn)題,但是難以避免收斂緩慢問(wèn)題。2.5.3彈性BP學(xué)習(xí)算法BP學(xué)習(xí)算法常用sigmoid函數(shù),即其特點(diǎn)是可以把無(wú)限的輸入映射到有限的輸出,如果函數(shù)的輸入很大或很小的時(shí)候,函數(shù)的斜率接近于零,這樣采用梯度下降法使用sigmoid函數(shù)的網(wǎng)絡(luò)就帶來(lái)一個(gè)問(wèn)題:梯度幅度的不利影響,即盡管權(quán)值和闞值離其最佳值相差甚遠(yuǎn),但此時(shí)梯度的幅度非常小,導(dǎo)致權(quán)值和閾值的修正量也很小,使得訓(xùn)練時(shí)間變得很長(zhǎng)。所以在權(quán)值修正的時(shí)候僅僅用偏導(dǎo)的符號(hào),而其幅值不影響權(quán)值的修正,即權(quán)值的修正取決于與幅值無(wú)關(guān)的修正值。當(dāng)連續(xù)兩次迭代的梯度方向相同時(shí),可將權(quán)值和閾值的修正值乘以一個(gè)增量因子。使其修正值增加;當(dāng)連續(xù)兩次迭代的梯度方向相反時(shí),可將權(quán)值和閾值的修正值乘以一個(gè)減量因子,使其修正值減小;當(dāng)梯度為零時(shí),權(quán)值和閾值的修正值保持不變;當(dāng)權(quán)值的修正發(fā)生振蕩時(shí),其修正值將會(huì)減小。如果權(quán)值在相同的梯度上連續(xù)被修正,則其幅度必將增加,從而克服了梯度幅度的不利影響,即(當(dāng)連續(xù)兩次迭代的梯度方向相同時(shí))(當(dāng)連續(xù)兩次迭代的梯度方向相反時(shí))(當(dāng)局向梯度g(n)為零時(shí))其中是第n次迭代的權(quán)值或閾值的幅度修正值,為增量因子,為減量因子,sign(g(n))代表局向梯度g(n)的符號(hào)函數(shù)。2.5.4自適應(yīng)學(xué)習(xí)速率法 在BP學(xué)習(xí)算法中,網(wǎng)絡(luò)權(quán)值調(diào)整取決于學(xué)習(xí)率和局向梯度,首先要說(shuō)明的是學(xué)習(xí)率是隨時(shí)間改變的,只是在上面的反向傳播算法推導(dǎo)過(guò)程采用的是不變的值。在自適應(yīng)的學(xué)習(xí)速率法中學(xué)習(xí)率的調(diào)整規(guī)則有很多種辦法,目的是為了把學(xué)習(xí)率在整個(gè)訓(xùn)練過(guò)程得到合理的調(diào)節(jié)。 第一種方法是將動(dòng)量因子和學(xué)習(xí)率同時(shí)調(diào)整,其中動(dòng)量因子的調(diào)整倍率要大些?;舅枷耄寒?dāng)前誤差與前一次誤差比較,如果誤差出現(xiàn)反彈或持平,說(shuō)明學(xué)習(xí)率過(guò)大,那么將學(xué)習(xí)率降到原來(lái)的60%,然后再按5%的速度遞增;如果誤差持續(xù)下降,學(xué)習(xí)率繼續(xù)遞增;當(dāng)誤差再出現(xiàn)反彈或持平時(shí),再將學(xué)習(xí)率下調(diào)40%;這樣反復(fù)跳躍以刺激收斂速度,同時(shí)這種跳躍還可以避免尋優(yōu)搜索陷入局部極小值。(誤差反彈或持平)(誤差持續(xù)下降) 第二種方法是設(shè)一個(gè)初始學(xué)習(xí)率,若在一批權(quán)值調(diào)整后總誤差升高,則本次的調(diào)整無(wú)效,并且令;若總誤差下降,則本次調(diào)整有效,并且令。 通過(guò)學(xué)習(xí)率的自適應(yīng)調(diào)整,使學(xué)習(xí)過(guò)程中從誤差曲面中找到合適的學(xué)習(xí)率,在平坦區(qū)域加速,在凹處減速,避免出現(xiàn)振蕩導(dǎo)致的迭代次數(shù)增加,加快收斂速度。如果將增加動(dòng)量法和自適應(yīng)學(xué)習(xí)速率法結(jié)合起來(lái),既可抑制網(wǎng)絡(luò)陷入局部極小,又加快學(xué)習(xí)。但都是基于梯度下降法,它們只利用了目標(biāo)函數(shù)對(duì)網(wǎng)絡(luò)權(quán)值和閾值的一階導(dǎo)數(shù)信息。因此,對(duì)于復(fù)雜問(wèn)題還存在收斂速度緩慢的問(wèn)題。2.5.5共軛梯度法 在基本的BP學(xué)習(xí)算法中,相鄰迭代的搜索方向是正交的,當(dāng)接近極值時(shí)會(huì)發(fā)生振蕩。共軛梯度法是利用正交性構(gòu)成的共軛搜索方向,使得在最速下降方向(誤差曲面中對(duì)權(quán)值向量調(diào)整是在最速下降的方向,與梯度向量方向相反)通過(guò)把過(guò)去的梯度和現(xiàn)在某點(diǎn)的梯度信息線性組合起來(lái)(前一點(diǎn)的梯度乘以適當(dāng)系數(shù)加到該點(diǎn)的梯度)構(gòu)造更好的搜索的方向,搜索目標(biāo)函數(shù)極值,沿共軛方向達(dá)到全局最優(yōu),為此這種無(wú)約束最優(yōu)化方法能有效提高算法性能。dir(n)g(0)dir(n)g(0)dir(n+1)圖2.9共軛梯度向量示意圖其中為共軛因子,為共軛方向(設(shè)W是n×n的正定矩陣,如果存在兩個(gè)方向dir1和dir2使得dir1Wdir2=0,則這兩個(gè)方向關(guān)于W共軛),為當(dāng)前梯度,n為迭代次數(shù)。最后一個(gè)式子是基于共軛方向的權(quán)值修正。上述式子在初始時(shí)如此迭代而已。在試驗(yàn)中得知在高維函數(shù)或向量的訓(xùn)練將會(huì)達(dá)到更好的效果。請(qǐng)參考3.2.3仿真結(jié)果比較與分析。2.5.6Levenberg-Marquardt算法 L-M算法(也稱(chēng)阻尼最小二乘法)較上面基于梯度下降法的算法要快的多,但需要更多的內(nèi)存存儲(chǔ)雅可比(Jacobian)矩陣,對(duì)于中等規(guī)模的網(wǎng)絡(luò)是一種很好的選擇,對(duì)于大型網(wǎng)絡(luò)可以將雅可比矩陣分為多個(gè)小矩陣的方法,減少了內(nèi)存卻增加了學(xué)習(xí)時(shí)間。權(quán)值調(diào)整量為:其中為誤差向量,J為網(wǎng)絡(luò)誤差對(duì)權(quán)值偏導(dǎo)的雅可比矩陣,I是單位矩陣,為阻尼因子(是自適應(yīng)調(diào)整的,使得該方法在Gauss-Newton法(時(shí))和梯度下降法(時(shí))之間光滑變化),n為學(xué)習(xí)步長(zhǎng)。分析:L-M算法根據(jù)迭代的結(jié)果動(dòng)態(tài)地調(diào)整阻尼因子,即動(dòng)態(tài)地調(diào)整迭代的收斂方向,可使每次的迭代誤差函數(shù)值都有所下降。它是Gauss-Newton法和梯度下降法的結(jié)合,收斂速度較快。但L-M算法在計(jì)算過(guò)程中有雅可比矩陣會(huì)產(chǎn)生大量的中間結(jié)果,因此,需要較大的內(nèi)存空間。在Matlab神經(jīng)網(wǎng)絡(luò)工具箱中,該算法被作為默認(rèn)的訓(xùn)練函數(shù)。 在上面的分析可以得出,該算法的基本思想是使其每次迭代不再沿著單一的負(fù)梯度方向,而是允許誤差沿著惡化的方向進(jìn)行搜索,同時(shí)通過(guò)在和Gauss-Newton法和梯度下降法之間自適應(yīng)來(lái)優(yōu)化網(wǎng)絡(luò)權(quán)值,使網(wǎng)絡(luò)能夠有效的收斂,大大提高了網(wǎng)絡(luò)的收斂速度和泛化能力。具體迭代步驟如下:將所有輸入送到網(wǎng)絡(luò)并計(jì)算出網(wǎng)絡(luò)輸出,用誤差函數(shù)計(jì)算出所有的誤差平方和計(jì)算出誤差對(duì)權(quán)值偏導(dǎo)的雅可比矩陣: 用w+Δw重復(fù)計(jì)算誤差平方和(如果新的和小于①中計(jì)算的和,則用μ除以θ(θ>1),并有w+Δw轉(zhuǎn)①;否則用μ乘以θ,轉(zhuǎn)③;當(dāng)誤差平方和減小到某一目標(biāo)誤差時(shí),算法即被認(rèn)為收斂)注:從2.5.2至2.5.6參考大量學(xué)術(shù)論文及文獻(xiàn),由于參考的文獻(xiàn)眾多,在這里就不一一指明,但大都附在論文后面的參考文獻(xiàn)中,在此對(duì)參考文獻(xiàn)的作者表示感謝和歉意。
3.BP神經(jīng)網(wǎng)絡(luò)仿真3.1仿真平臺(tái)MATLAB3.1.1MATLAB簡(jiǎn)介 MATLAB是MatritLaboratory的英文縮寫(xiě),中文意思是矩陣實(shí)驗(yàn)室,是美國(guó)MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,它的內(nèi)核是采用C語(yǔ)言編寫(xiě),是一種以矩陣為基本數(shù)據(jù)元素,面向科學(xué)計(jì)算與工程計(jì)算的可視化軟件。MATLAB可以進(jìn)行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實(shí)現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語(yǔ)言的程序等,主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號(hào)處理與通訊、圖像處理、魯棒控制、信號(hào)檢測(cè)、金融建模設(shè)計(jì)與分析等領(lǐng)域。在新的版本中也加入了對(duì)C,F(xiàn)ORTRAN,C++,JAVA的支持??梢灾苯诱{(diào)用,用戶也可以將自己編寫(xiě)的實(shí)用程序?qū)氲組ATLAB函數(shù)庫(kù)中方便自己以后調(diào)用,此外許多的MATLAB愛(ài)好者都編寫(xiě)了一些經(jīng)典的程序,用戶可以直接進(jìn)行下載就可以用。3.1.2仿真平臺(tái)的構(gòu)建和策略 由于MATLAB的諸多優(yōu)點(diǎn),BP神經(jīng)網(wǎng)絡(luò)的仿真采用MATLAB數(shù)學(xué)軟件,安裝在單機(jī)WindowsXP系統(tǒng)中,所使用的MATLAB版本為R2007b。應(yīng)用MATLAB中神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)使用MATLAB自身語(yǔ)言進(jìn)行編程。 仿真的具體步驟為:①確定信息的表達(dá)方式:將實(shí)際問(wèn)題抽象成神經(jīng)網(wǎng)絡(luò)所能接受的數(shù)據(jù)形式;②確定網(wǎng)絡(luò)結(jié)構(gòu)模型,本仿真將選取輸入層,一個(gè)隱含層和輸出層的BP網(wǎng)絡(luò)模型;③選擇網(wǎng)絡(luò)參數(shù):如神經(jīng)元數(shù),隱含層數(shù)等;④確定訓(xùn)練模式,選擇訓(xùn)練算法,確定訓(xùn)練步數(shù),指定訓(xùn)練目標(biāo)誤差等;⑤網(wǎng)絡(luò)測(cè)試:選擇合適的樣本進(jìn)行網(wǎng)絡(luò)測(cè)試。 本仿真需要使用到的訓(xùn)練算法并進(jìn)行比較的MATLAB神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)為增加動(dòng)量法(traingdm)、彈性BP算法(trainrp),自適應(yīng)學(xué)習(xí)速率法(traingda,注意traingdx是動(dòng)量及自適應(yīng)學(xué)習(xí)速率法,本仿真實(shí)驗(yàn)將使用traingdx)、共軛梯度法(traincgf)以及Levenberg-Marquardt算法(trainlm)。其中Levenberg-Marquardt算法(trainlm)是MATLAB中BP算法的默認(rèn)訓(xùn)練函數(shù)。 此外,在后續(xù)的實(shí)驗(yàn)中,通過(guò)調(diào)整隱含層數(shù)及其神經(jīng)元個(gè)數(shù)、調(diào)整學(xué)習(xí)率大小、調(diào)整初始權(quán)值、選擇不同的激活函數(shù)、修改學(xué)習(xí)步長(zhǎng)和目標(biāo)誤差等觀察對(duì)仿真曲線的影響程度,記錄相關(guān)數(shù)據(jù),得出相關(guān)結(jié)論。 所采用的數(shù)據(jù)和編程來(lái)自或參考于參考文獻(xiàn)2,該網(wǎng)絡(luò)的輸入層和輸出層的神經(jīng)元個(gè)數(shù)均為1,隱含層設(shè)計(jì)可以根據(jù)下面的經(jīng)驗(yàn),這里采用的是設(shè)計(jì)一個(gè)隱含層神經(jīng)元數(shù)目可變的BP神經(jīng)網(wǎng)絡(luò),通過(guò)誤差對(duì)比,確定最佳的隱含層神經(jīng)元個(gè)數(shù),并檢驗(yàn)隱含層神經(jīng)元個(gè)數(shù)對(duì)網(wǎng)絡(luò)性能的影響。 下面有三個(gè)參考公式(來(lái)自參考文獻(xiàn)2)可以參考確定隱含層神經(jīng)元個(gè)數(shù):①,其中,k為樣本數(shù),n1為隱含層神經(jīng)元個(gè)數(shù),n為輸入單元數(shù);如果i>n1則;②,其中m為輸出神經(jīng)元數(shù),n為輸入單元數(shù),a為[1,10]之間常數(shù)。③,其中n為輸入單元數(shù)。3.2仿真實(shí)驗(yàn)3.2.1BP神經(jīng)網(wǎng)絡(luò)MATLAB設(shè)計(jì) 由于在隱含層的神經(jīng)元個(gè)數(shù)可以隨意調(diào)整的前提下,單隱含層的BP神經(jīng)網(wǎng)絡(luò)可以逼近任意的非線性映射。輸入層和輸出層神經(jīng)元個(gè)數(shù)為1,只有一個(gè)隱含層,其個(gè)數(shù)根據(jù)上述的設(shè)計(jì)經(jīng)驗(yàn)公式和本例的實(shí)際情況,選取9-16之間。下面的隱含層神經(jīng)元個(gè)數(shù)可變的BP神經(jīng)網(wǎng)絡(luò),通過(guò)誤差和訓(xùn)練步數(shù)對(duì)比確定隱含層個(gè)數(shù),并檢驗(yàn)隱含層神經(jīng)元個(gè)數(shù)對(duì)網(wǎng)絡(luò)性能的影響。下面是相關(guān)MATLAB程序段:%選取輸入變量x取值范圍x=-4:0.01:4;%輸入目標(biāo)函數(shù)y1=sin((1/2)*pi*x)+sin(pi*x);%隱含層的神經(jīng)元數(shù)目范圍s=9:16;%歐氏距離res=1:8;%選取不同的隱含層神經(jīng)元個(gè)數(shù),進(jìn)行網(wǎng)絡(luò)測(cè)試fori=1:8%建立前向型BP神經(jīng)網(wǎng)絡(luò),輸入層和隱含層激勵(lì)函數(shù)為tansig,輸出層為purelin%訓(xùn)練函數(shù)為trainlm,也是默認(rèn)函數(shù)net=newff(minmax(x),[1,s(i),1],{'tansig','tansig','purelin'},'trainlm');%訓(xùn)練步數(shù)最大為2000net.trainparam.epochs=2000;%設(shè)定目標(biāo)誤差為0.00001net.trainparam.goal=0.00001;%進(jìn)行函數(shù)訓(xùn)練net=train(net,x,y1);%對(duì)訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)進(jìn)行仿真y2=sim(net,x);%求歐式距離,判定隱含層神經(jīng)元個(gè)數(shù)及網(wǎng)絡(luò)性能err=y2-y1;res(i)=norm(err);end用該同一程序在三個(gè)不同時(shí)刻,運(yùn)行結(jié)果及分析如下:表3.1隱含層不同神經(jīng)元個(gè)數(shù)網(wǎng)絡(luò)訓(xùn)練誤差及學(xué)習(xí)步長(zhǎng)某時(shí)刻一神經(jīng)元個(gè)數(shù)910111213141516網(wǎng)絡(luò)誤差0.14323.18064.86240.08800.08670.08840.08590.0841學(xué)習(xí)步長(zhǎng)2000200020002756402416625某時(shí)刻二神經(jīng)元個(gè)數(shù)910111213141516網(wǎng)絡(luò)誤差0.08950.10680.08950.10160.08940.08890.08814.8423學(xué)習(xí)步長(zhǎng)1156200011462000287102792000某時(shí)刻三神經(jīng)元個(gè)數(shù)910111213141516網(wǎng)絡(luò)誤差0.08950.08670.087810.7340.08950.08900.08950.0886學(xué)習(xí)步長(zhǎng)4496660200015125674253由此可見(jiàn),選擇隱含層神經(jīng)元數(shù)目為15是最佳選擇,不僅誤差小、學(xué)習(xí)步長(zhǎng)短,而且性能穩(wěn)定。也可以看出并非隱含層神經(jīng)元的數(shù)目越多,網(wǎng)絡(luò)的性能就越好。3.2.2各種BP學(xué)習(xí)算法MATLAB仿真根據(jù)上面一節(jié)對(duì)BP神經(jīng)網(wǎng)絡(luò)的MATLAB設(shè)計(jì),可以得出下面的通用的MATLAB程序段,由于各種BP學(xué)習(xí)算法采用了不同的學(xué)習(xí)函數(shù),所以只需要更改學(xué)習(xí)函數(shù)即可。MATLAB程序段如下:x=-4:0.01:4;y1=sin((1/2)*pi*x)+sin(pi*x);%trainlm函數(shù)可以選擇替換net=newff(minmax(x),[1,15,1],{'tansig','tansig','purelin'},'trainlm');net.trainparam.epochs=2000;net.trainparam.goal=0.00001;net=train(net,x,y1);y2=sim(net,x);err=y2-y1;res=norm(err);%暫停,按任意鍵繼續(xù)Pause%繪圖,原圖(藍(lán)色光滑線)和仿真效果圖(紅色+號(hào)點(diǎn)線)plot(x,y1);holdonplot(x,y2,'r+');注意:由于各種不確定因素,可能對(duì)網(wǎng)絡(luò)訓(xùn)練有不同程度的影響,產(chǎn)生不同的效果。標(biāo)準(zhǔn)BP算法(traingd)圖3.1(a)增加動(dòng)量法(traingdm)圖3.1(b)彈性BP算法(trainrp)圖3.1(c)動(dòng)量及自適應(yīng)學(xué)習(xí)速率法(traingdx)圖3.1(d)共軛梯度法(traincgf)圖3.1(e)Levenberg-Marquardt算法(trainlm)圖3.1(f)圖3.1各種BP算法MATLAB仿真誤差曲線(左)和仿真效果(右)圖3.2.3各種算法仿真結(jié)果比較與分析 由上面的仿真結(jié)果可以得到下表的比較和下面的結(jié)論與分析:表3.2各種BP學(xué)習(xí)算法MATLAB仿真結(jié)果比較BP算法訓(xùn)練函數(shù)訓(xùn)練次數(shù)均方誤差標(biāo)準(zhǔn)BP算法traingd20000.134968增加動(dòng)量法traingdm20000.108883彈性BP算法trainrp20000.0135652動(dòng)量及自適應(yīng)學(xué)習(xí)速率法trangdx20000.0761264共軛梯度法traincgf2990.00499915Levenberg-Marquardt法trainlm1230.0000098727結(jié)論與分析: 從仿真結(jié)果可以看出,標(biāo)準(zhǔn)BP算法、增加動(dòng)量發(fā)、彈性BP算法、動(dòng)量及自適應(yīng)學(xué)習(xí)速率法的收斂速度都不如共軛梯度法和Levenberg-Marquardt法(L-M算法)收斂速度明顯的快。從仿真結(jié)果和均方誤差綜合來(lái)看,只有L-M算法達(dá)到了目標(biāo)誤差,可見(jiàn)對(duì)高要求的誤差來(lái)說(shuō),L-M算法的優(yōu)勢(shì)要明顯的多,其余均未達(dá)到目標(biāo)誤差;從均方誤差的效果來(lái)看,所仿真的BP算法的優(yōu)劣(從優(yōu)到劣)順序依次為L(zhǎng)-M算法、共軛梯度法、彈性BP算法、動(dòng)量及自適應(yīng)學(xué)習(xí)速率法、增加動(dòng)量法、標(biāo)準(zhǔn)BP算法。從仿真效果圖可以看出,L-M算法的效果最好,其次是共軛梯度法,其余均有不同范圍內(nèi)的失真。從誤差曲線來(lái)看,L-M算法達(dá)到了目標(biāo)誤差(較高的誤差),標(biāo)準(zhǔn)BP算法的誤差曲線較粗,是因?yàn)檩^小范圍振蕩產(chǎn)生鋸齒,在圖形中由于間距加大,圖形不斷重疊而成,收斂速度很慢;增加動(dòng)量法、彈性BP算法、動(dòng)量及自適應(yīng)學(xué)習(xí)速率法的誤差曲線較為平滑,在剛開(kāi)始收斂較快,在訓(xùn)練步數(shù)增加的時(shí)候,曲線趨于水平,收斂速度比較慢;共軛梯度法和L-M算法的誤差曲線變化較大且產(chǎn)生局部鋸齒狀,說(shuō)明不是最優(yōu),仍需要進(jìn)行優(yōu)化,其中L-M算法達(dá)到了目標(biāo)誤差。共軛梯度法在相鄰迭代的正交方向搜索,綜合誤差曲線可知當(dāng)接近極值時(shí)會(huì)產(chǎn)生鋸齒形振蕩。 再根據(jù)前面對(duì)各種BP改進(jìn)算法的描述可知,彈性BP算法不需要進(jìn)行搜索,需要內(nèi)存比較小,因此在一些大型網(wǎng)絡(luò)中比較適用,但是需要很長(zhǎng)的訓(xùn)練時(shí)間。對(duì)收斂速度要求不高時(shí)也可使用動(dòng)量及自適應(yīng)學(xué)習(xí)速率法。在小型網(wǎng)絡(luò)中,共軛梯度法僅次于L-M算法,但是L-M算法需要更大的內(nèi)存做臨時(shí)存儲(chǔ),對(duì)于較大復(fù)雜的網(wǎng)絡(luò)和內(nèi)存受限的設(shè)備來(lái)說(shuō)不是很好的選擇,但是對(duì)于小型網(wǎng)絡(luò)來(lái)說(shuō)卻是首要選擇。對(duì)訓(xùn)練時(shí)間允許的條件下,共軛梯度法和彈性BP算法是對(duì)復(fù)雜大型網(wǎng)絡(luò)較好的選擇。 其中共軛梯度法在訓(xùn)練的時(shí)候,訓(xùn)練次數(shù)為299次,均方誤差為0.00499915,均未達(dá)到所設(shè)定的要求,產(chǎn)生了“Minimumstepsizereached,performancegoalwasnotmet”的結(jié)果??赡芤馕吨訁^(qū)間的長(zhǎng)度與計(jì)算機(jī)舍入誤差相當(dāng),無(wú)法繼續(xù)計(jì)算了,原因可能是有奇點(diǎn)(無(wú)限小且不實(shí)際存在),另外也存在是初值問(wèn)題,理論上得知:共軛梯度法最大局限是依賴(lài)于初值,在有限的迭代次數(shù)內(nèi)可能既不能搜索到全局極值也不能搜索到局部極值。因此該算法適用于精度要求比較低的高維網(wǎng)絡(luò)之中。3.2.4調(diào)整初始權(quán)值和閾值的仿真 在2.4.1分析了初始權(quán)值設(shè)置影響因素對(duì)BP神經(jīng)網(wǎng)絡(luò)的影響,下面首先通過(guò)MATLAB程序段一,通過(guò)隨機(jī)設(shè)置權(quán)值初始化網(wǎng)絡(luò)方式獲取訓(xùn)練好的閾值和權(quán)值,作為MATLAB程序段二的初始化值。由此進(jìn)行仿真分析。①M(fèi)ATLAB程序段一:x=-4:0.01:4;y1=sin((1/2)*pi*x)+sin(pi*x);net=newff(minmax(x),[1,15,1],{'tansig','tansig','purelin'},'trainlm');net.trainparam.epochs=2000;net.trainparam.goal=0.00001;%初始化網(wǎng)絡(luò),用newff創(chuàng)建網(wǎng)絡(luò),其權(quán)值和閾值初始化函數(shù)的默認(rèn)值是initnw。%initnw據(jù)Nguyen-Widrow規(guī)則初始化算法對(duì)網(wǎng)絡(luò)層的權(quán)值和閾值進(jìn)行初始化,該算法%的初始化值,可以使網(wǎng)絡(luò)層中每個(gè)神經(jīng)元的作用范圍近似地在網(wǎng)絡(luò)層的輸入空間均%勻分布。與純隨機(jī)初始化權(quán)值和閾值的方法比較,初始化算法有以下優(yōu)點(diǎn):神經(jīng)%元的浪費(fèi)少(因?yàn)樗猩窠?jīng)元都分布在輸入空間內(nèi));網(wǎng)絡(luò)的訓(xùn)練速度快(因?yàn)檩斎?空間的每一個(gè)區(qū)域都有神經(jīng)元);這里是用rands重新設(shè)置權(quán)值和閾值。net.layers{1}.initFcn='initnw';net.layers{2}.initFcn='initnw';net.inputWeights{1,1}.initFcn='rands';net.inputWeights{2,1}.initFcn='rands';net.biases{1,1}.initFcn='rands';net.biases{2,1}.initFcn='rands';net=init(net);%查看初始化后的權(quán)值和閾值net.iw{1,1}net.b{1}net.lw{2,1}net.b{2}net=train(net,x,y1);%得出訓(xùn)練好的權(quán)值和閾值供MATLAB程序段二使用net.iw{1,1}net.b{1}net.lw{2,1}net.b{2}y2=sim(net,x);err=y2-y1;res=norm(err);pauseplot(x,y1);holdonplot(x,y2,'r+');②MATLAB程序段二:x=-4:0.01:4;y1=sin((1/2)*pi*x)+sin(pi*x);net=newff(minmax(x),[1,15,1],{'tansig','tansig','purelin'},'t
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 石河子大學(xué)《專(zhuān)業(yè)外語(yǔ)文獻(xiàn)閱讀與寫(xiě)作一》2021-2022學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《藥物分析家庭安全合理用藥》2022-2023學(xué)年第一學(xué)期期末試卷
- 布草洗滌承包合同
- 石河子大學(xué)《食品分析實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 老年病及預(yù)防教案中班
- 沈陽(yáng)理工大學(xué)《三維工程軟件實(shí)訓(xùn)》2021-2022學(xué)年期末試卷
- 沈陽(yáng)理工大學(xué)《建筑結(jié)構(gòu)選型》2022-2023學(xué)年第一學(xué)期期末試卷
- 2018年四川內(nèi)江中考滿分作文《我心中的英雄》3
- 沈陽(yáng)理工大學(xué)《電工與電子技術(shù)》2023-2024學(xué)年期末試卷
- 光伏承包合伙合同與合伙協(xié)議書(shū)
- 蘇教版三年級(jí)上冊(cè)數(shù)學(xué)期末考試試卷及解析答案
- 2024年個(gè)人勞務(wù)承包合同書(shū)
- 知道網(wǎng)課智慧《睡眠醫(yī)學(xué)(廣州醫(yī)科大學(xué))》測(cè)試答案
- 如果歷史是一群喵課件
- 危大工程以及超過(guò)一定規(guī)模的危大工程范圍
- 門(mén)診導(dǎo)診課件
- 網(wǎng)架吊裝施工專(zhuān)項(xiàng)方案(技術(shù)方案)
- 上半年臨床路徑在婦產(chǎn)科的優(yōu)化策略
- 《樹(shù)立正確的“三觀”》班會(huì)課件
- 《糖尿病患者血脂管理中國(guó)專(zhuān)家共識(shí)(2024版)》解讀
- 影視人類(lèi)學(xué)概論智慧樹(shù)知到期末考試答案2024年
評(píng)論
0/150
提交評(píng)論