Matlab基于BP算法的神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)資料_第1頁
Matlab基于BP算法的神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)資料_第2頁
Matlab基于BP算法的神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)資料_第3頁
Matlab基于BP算法的神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)資料_第4頁
Matlab基于BP算法的神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)資料_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

期終論文——神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)研究生課程期終論文課程名稱:神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)任課教師:論文題目:姓名:學(xué)號:期終論文——神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)摘要本文首先說明課題研究的目的和意義,評述課題的國內(nèi)外研究現(xiàn)狀,引出目前存在的問題。然后分析了神經(jīng)網(wǎng)絡(luò)算法的基本原理,給出經(jīng)典神經(jīng)網(wǎng)絡(luò)算法的具體實(shí)現(xiàn)方法,總結(jié)神經(jīng)網(wǎng)絡(luò)算法的特點(diǎn),掌握BP網(wǎng)絡(luò)的形成步驟。學(xué)會(huì)使用Matlab中的神經(jīng)網(wǎng)絡(luò)工具箱函數(shù),采用Matlab軟件編程實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)算法。將神經(jīng)網(wǎng)絡(luò)算法應(yīng)用于函數(shù)逼近,樣本分類和樣本含量估計(jì)問題中,并分析相關(guān)參數(shù)或算法對運(yùn)行結(jié)果的影響。最后對BP神經(jīng)網(wǎng)絡(luò)算法進(jìn)行了展望。關(guān)鍵字:神經(jīng)網(wǎng)絡(luò);BP神經(jīng)網(wǎng)絡(luò);函數(shù)逼近;仿真實(shí)驗(yàn)ABSTRACTThispaperfirstexplainsthepurposeandsignificanceofthetopicresearch.Commentarystudiescurrentsituationattheproblemhomeandabroad.Leadstotheexistingproblems.andthenhaveanalyzedalgorithmicbasalprincipleofneuralnetworks,Givealgorithmicconcertofclassicsneuralnetworksouttherealizationmethod.Summingupthecharacteristicsofneuralnetworkalgorithm.MastertheformingstepofBPnetwork.ThearithmeticofBPneuralnetworkisrealizedinMatlabsoftware.ThealgorithmappliesofBPneuralnetworkstothefunctionapproximationproblem,Sampleclassificationandcomputestheswatch

content.Andanalysisofrelevantparametersontheresultsofalgorithm.Finally,TheBPneuralnetworkalgorithmisOutlook.Keywords:Neuralnetwork;BPneuralnetwork;Functionapproximation;Simulationexperiment目錄TOC\o"1-3"\h\uHYPERLINK第一章引言 -43-第一章引言1.1神經(jīng)網(wǎng)絡(luò)的概述人工神經(jīng)網(wǎng)絡(luò)(ArtificialNeuralNetworks,簡寫為ANNs)也簡稱為神經(jīng)網(wǎng)絡(luò)(NNs)或稱作連接模型(ConnectionModel),它是一種模范動(dòng)物神經(jīng)網(wǎng)絡(luò)行為特征,進(jìn)行分布式并行信息處理的算法數(shù)學(xué)模型。這種網(wǎng)絡(luò)依靠系統(tǒng)的復(fù)雜程度,通過調(diào)整內(nèi)部大量節(jié)點(diǎn)之間相互連接的關(guān)系,從而達(dá)到處理信息的目的。神經(jīng)元網(wǎng)絡(luò)是機(jī)器學(xué)習(xí)學(xué)科中的一個(gè)重要部分,用來classification或者regression。思維學(xué)普遍認(rèn)為,人類大腦的思維分為抽象(邏輯)思維、形象(直觀)思維和靈感(頓悟)思維三種基本方式。邏輯性的思維是指根據(jù)邏輯規(guī)則進(jìn)行推理的過程;它先將信息化成概念,并用符號表示,然后,根據(jù)符號運(yùn)算按串行模式進(jìn)行邏輯推理;這一過程可以寫成串行的指令,讓計(jì)算機(jī)執(zhí)行。然而,直觀性的思維是將分布式存儲的信息綜合起來,結(jié)果是忽然間產(chǎn)生想法或解決問題的辦法。這種思維方式的根本之點(diǎn)在于以下兩點(diǎn):1.信息是通過神經(jīng)元上的興奮模式分布存儲在網(wǎng)絡(luò)上;2.信息處理是通過神經(jīng)元之間同時(shí)相互作用的動(dòng)態(tài)過程來完成的。人工神經(jīng)網(wǎng)絡(luò)就是模擬人思維的第二種方式。這是一個(gè)非線性動(dòng)力學(xué)系統(tǒng),其特色在于信息的分布式存儲和并行協(xié)同處理。雖然單個(gè)神經(jīng)元的結(jié)構(gòu)極其簡單,功能有限,但大量神經(jīng)元構(gòu)成的網(wǎng)絡(luò)系統(tǒng)所能實(shí)現(xiàn)的行為卻是極其豐富多彩的。1.2人工神經(jīng)網(wǎng)絡(luò)的研究目的和意義人工神經(jīng)網(wǎng)絡(luò)是由具有適應(yīng)性的簡單單元組成的廣泛并行互連的網(wǎng)絡(luò),它的組織能夠模擬生物神經(jīng)系統(tǒng)對真實(shí)世界物體所作出的交互反應(yīng)。人工神經(jīng)網(wǎng)絡(luò)就是模擬人思維的一種方式,是一個(gè)非線性動(dòng)力學(xué)系統(tǒng),其特色在于信息的分布式存儲和并行協(xié)同處理。雖然單個(gè)神經(jīng)元的結(jié)構(gòu)極其簡單,功能有限,但大量神經(jīng)元構(gòu)成的網(wǎng)絡(luò)系統(tǒng)所能實(shí)現(xiàn)的行為卻是極其豐富多彩的。近年來通過對人工神經(jīng)網(wǎng)絡(luò)的研究,可以看出神經(jīng)網(wǎng)絡(luò)的研究目的和意義有以下三點(diǎn):(1)通過揭示物理平面與認(rèn)知平面之間的映射,了解它們相互聯(lián)系和相互作用的機(jī)理,從而揭示思維的本質(zhì),探索智能的本源。(2)爭取構(gòu)造出盡可能與人腦具有相似功能的計(jì)算機(jī),即神經(jīng)網(wǎng)絡(luò)計(jì)算機(jī)。(3)研究仿照腦神經(jīng)系統(tǒng)的人工神經(jīng)網(wǎng)絡(luò),將在模式識別、組合優(yōu)化和決策判斷等方面取得傳統(tǒng)計(jì)算機(jī)所難以達(dá)到的效果。人工神經(jīng)網(wǎng)絡(luò)特有的非線性適應(yīng)性信息處理能力,克服了傳統(tǒng)人工智能方法對于直覺,如模式、語音識別、非結(jié)構(gòu)化信息處理方面的缺陷,使之在神經(jīng)專家系統(tǒng)、模式識別、智能控制、組合優(yōu)化、預(yù)測等領(lǐng)域得到成功應(yīng)用。人工神經(jīng)網(wǎng)絡(luò)與其它傳統(tǒng)方法相結(jié)合,將推動(dòng)人工智能和信息處理技術(shù)不斷發(fā)展。近年來,人工神經(jīng)網(wǎng)絡(luò)正向模擬人類認(rèn)知的道路上更加深入發(fā)展,與模糊系統(tǒng)、遺傳算法、進(jìn)化機(jī)制等結(jié)合,形成計(jì)算智能,成為人工智能的一個(gè)重要方向,將在實(shí)際應(yīng)用中得到發(fā)展。將信息幾何應(yīng)用于人工神經(jīng)網(wǎng)絡(luò)的研究,為人工神經(jīng)網(wǎng)絡(luò)的理論研究開辟了新的途徑。神經(jīng)計(jì)算機(jī)的研究發(fā)展很快,已有產(chǎn)品進(jìn)入市場。光電結(jié)合的神經(jīng)計(jì)算機(jī)為人工神經(jīng)網(wǎng)絡(luò)的發(fā)展提供了良好條件。1.3神經(jīng)網(wǎng)絡(luò)的發(fā)展與研究現(xiàn)狀1.3.1神經(jīng)網(wǎng)絡(luò)的發(fā)展神經(jīng)網(wǎng)絡(luò)誕生半個(gè)世紀(jì)以來,經(jīng)歷了五個(gè)階段:奠基階段:早在40年代初,神經(jīng)解剖學(xué)、神經(jīng)生理學(xué)、心理學(xué)以及人腦神經(jīng)元的電生理的研究等都富有成果。其中,神經(jīng)生物學(xué)家McCulloch提倡數(shù)字化具有特別意義。他與青年數(shù)學(xué)家Pitts合作,從人腦信息處理觀點(diǎn)出發(fā),采用數(shù)理邏輯模型的方法研究了腦細(xì)胞的動(dòng)作和結(jié)構(gòu)及其生物神經(jīng)元的一些基本生理特性,他們提出了第

一個(gè)神經(jīng)計(jì)算模型,即神經(jīng)元的閾值元件模型,簡稱MP模型,他們認(rèn)識到了模擬大腦可用于邏輯運(yùn)行的網(wǎng)絡(luò),有一些結(jié)點(diǎn)及結(jié)點(diǎn)與結(jié)點(diǎn)之間相互聯(lián)系,構(gòu)成一個(gè)簡單神經(jīng)網(wǎng)絡(luò)模型。其主要貢獻(xiàn)在于結(jié)點(diǎn)的并行計(jì)算能力很強(qiáng),為計(jì)算神經(jīng)行為的某此方面提供了可能,從而開創(chuàng)了神經(jīng)網(wǎng)絡(luò)的研究。這一革命性的思想,產(chǎn)生了很大影響。第一次高潮階段:1958年計(jì)算機(jī)科學(xué)家Rosenblatt基于MP模型,增加了學(xué)習(xí)機(jī)制,推廣了MP模型。他證明了兩層感知器能夠?qū)⑤斎敕譃閮深悾偃邕@兩種類型是線性并可分,也就是一個(gè)超平面能將輸入空間分割,其感知器收斂定理:輸入和輸出層之間的權(quán)重的調(diào)節(jié)正比于計(jì)算輸出值與期望輸出之差。他提出的感知器模型,首次把神經(jīng)網(wǎng)絡(luò)理論付諸工程實(shí)現(xiàn)。堅(jiān)持階段:神經(jīng)網(wǎng)絡(luò)理論那遙遠(yuǎn)但并非遙不可及的目標(biāo)著實(shí)吸引了很多人的目光,美國軍方認(rèn)為神經(jīng)網(wǎng)絡(luò)工程應(yīng)當(dāng)比“原子彈工程”更重要,并對它的投資興趣非常大,而對其實(shí)踐的效果也比較滿意。第二次高潮階段:Kohonen提出了自組織映射網(wǎng)絡(luò)模型,映射具有拓?fù)湫再|(zhì),對一維、二維是正確的,并在計(jì)算機(jī)上進(jìn)行了模擬,通過實(shí)例所展示的自適應(yīng)學(xué)習(xí)效果顯著。他認(rèn)為有可能推廣到更高維的情況。新發(fā)展階段:從神經(jīng)網(wǎng)絡(luò)理論的發(fā)展史看,它的高潮階段是很容易度過的。IJCNN91大會(huì)主席Rumelhart意識到這一點(diǎn),在他的開幕詞中有一個(gè)觀點(diǎn),神經(jīng)網(wǎng)絡(luò)的發(fā)展已到了一個(gè)轉(zhuǎn)折的時(shí)期,它的范圍正在不斷擴(kuò)大,其應(yīng)用領(lǐng)域幾乎包括各個(gè)方面。半個(gè)世紀(jì)以來,這門學(xué)科的理論和技術(shù)基礎(chǔ)已達(dá)到了一定規(guī)模,筆者認(rèn)為,神經(jīng)網(wǎng)絡(luò)到了新發(fā)展階段,需要不斷完善和突破,使其技術(shù)和應(yīng)用得到有力的支持。1.3.2神經(jīng)網(wǎng)絡(luò)的研究現(xiàn)狀進(jìn)入20世紀(jì)90年代以來,神經(jīng)網(wǎng)絡(luò)由于應(yīng)用面還不夠?qū)挘Y(jié)果不夠精確,存在可信度問題,從而進(jìn)入了認(rèn)識與應(yīng)用研究期。1)開發(fā)現(xiàn)有模型的應(yīng)用,并在應(yīng)用中根據(jù)實(shí)際運(yùn)行情況對模型、算法加以改造,以提高網(wǎng)絡(luò)的訓(xùn)練速度和運(yùn)行的準(zhǔn)確度。2)充分發(fā)揮兩種技術(shù)各自的優(yōu)勢是一個(gè)有效方法。3)希望在理論上尋找新的突破,建立新的專用/通用模型和算法。4)進(jìn)一步對生物神經(jīng)系統(tǒng)進(jìn)行研究,不斷地豐富對人腦的認(rèn)識。1.4神經(jīng)網(wǎng)絡(luò)研究目前存在的問題人工神經(jīng)網(wǎng)絡(luò)理論本身也在完善和發(fā)展中。如神經(jīng)的穩(wěn)定性和收斂性問題有待進(jìn)一步研究。神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和神經(jīng)元數(shù)量的確定還沒有成熟的理論等。如廣泛使用的BP網(wǎng)絡(luò)就存在:(1)收斂速度慢,且收斂速度與初始權(quán)值選取有關(guān)(2)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì),即隱層及接點(diǎn)數(shù)的選擇尚無理論指導(dǎo)(3)新加人的樣本會(huì)影響已訓(xùn)練好的樣本(4)存在局部最小問題人工神經(jīng)網(wǎng)絡(luò)自身的問題直接影響其應(yīng)用。包括在經(jīng)濟(jì)領(lǐng)域的應(yīng)用。隨著人工神經(jīng)網(wǎng)絡(luò)研究和應(yīng)用的不斷深入。一些改進(jìn)算法和技術(shù),如模擬退火算法、遺傳算法(GA)、模糊技術(shù)、小波分析等和神經(jīng)網(wǎng)絡(luò)逐步融合,提高了神經(jīng)網(wǎng)絡(luò)模型的工作性能。例如運(yùn)用模糊技術(shù)克服一般神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過程復(fù)雜、收斂速度慢的弱點(diǎn),并提高了模型的精度。將小波分析良好的局域化性質(zhì)與神經(jīng)網(wǎng)絡(luò)的自適應(yīng)學(xué)習(xí)和非線性映射能力相結(jié)合,使神經(jīng)網(wǎng)絡(luò)具有極佳的函數(shù)逼近能力,這為非線性長期預(yù)報(bào)提供了新的思路和方法。遺傳算法是近來發(fā)展起來的一種隨機(jī)多點(diǎn)搜索算法。具有很強(qiáng)的自適應(yīng)性、魯棒性,它在全局尋優(yōu)上的能力可以防止神經(jīng)網(wǎng)絡(luò)在尋優(yōu)過程中陷人局部最小點(diǎn)。一個(gè)經(jīng)濟(jì)活動(dòng)或現(xiàn)象往往是多種因素合力的結(jié)果,各個(gè)因素之間往往存在耦合,在實(shí)際中往往難以對各個(gè)因素進(jìn)行合理的量化。同時(shí)神經(jīng)網(wǎng)絡(luò)的評估精度主要取決于訓(xùn)練樣本的數(shù)量和質(zhì)量,而在實(shí)際中難以一次性獲得足夠的理想樣本,這要在使用過程中逐步積累,通過不斷的學(xué)習(xí)使網(wǎng)絡(luò)趨于完善。1.5神經(jīng)網(wǎng)絡(luò)的應(yīng)用領(lǐng)域神經(jīng)網(wǎng)絡(luò)以其獨(dú)特的結(jié)構(gòu)和處理信息的方法,在許多實(shí)際應(yīng)用領(lǐng)域中取得了顯著的成效,主要應(yīng)用如下:(1)自動(dòng)控制領(lǐng)域。神經(jīng)網(wǎng)絡(luò)方法已經(jīng)覆蓋了控制理論中的絕大多數(shù)問題,主要有系統(tǒng)建模與辨識、PID參數(shù)整定、極點(diǎn)配置、內(nèi)??刂?、優(yōu)化設(shè)計(jì)、預(yù)測控制、最優(yōu)控制、自適應(yīng)控制、濾波與預(yù)測容錯(cuò)控制、模糊控制和學(xué)習(xí)控制等。典型的例子是20世紀(jì)60年代初,美國“阿波羅”登月計(jì)劃中,Kilmer和MeClloch等人根據(jù)脊椎動(dòng)物神經(jīng)系統(tǒng)中網(wǎng)狀結(jié)構(gòu)的工作原理,提出了一個(gè)KMB模型,以使登月車在遠(yuǎn)距離復(fù)雜環(huán)境下具有一定的自制能力。(2)處理組合優(yōu)化問題。最典型的例子是成功地解決了TSP問題,即旅行推銷員問題(TravellingSalesmanProblem),另外還有最大匹配問題、裝箱問題和作業(yè)調(diào)度等。(3)模式識別。已成功應(yīng)用于手寫字符、汽車牌照、指紋和聲音識別,還可用于目標(biāo)的自動(dòng)識別和定位、機(jī)器人傳感器的圖像識別以及地震信號的鑒別等。(4)圖像處理。對圖像進(jìn)行邊緣監(jiān)測、圖像分割、圖像壓縮和圖像恢復(fù)。(5)傳感器信號處理。傳感器輸出非線性特性的矯正、傳感器故障檢測、濾波與除噪、環(huán)境影響因素的補(bǔ)償、多傳感信息融合。(5)機(jī)器人控制。對機(jī)器人眼手系統(tǒng)位置進(jìn)行協(xié)調(diào)控制,用于機(jī)械手的故障診斷及排除、智能自適應(yīng)移動(dòng)機(jī)器人的導(dǎo)航。(6)信號處理。能分別對通訊、語音、心電和腦電信號進(jìn)行處理分類;可用于海底聲納信號的檢測與分類,在反潛、掃雷等方面得到應(yīng)用。(7)信號處理。能分別對通訊、語音、心電和腦電信號進(jìn)行處理分類;可用于海底聲納信號的檢測與分類,在反潛、掃雷等方面得到應(yīng)用。(8)衛(wèi)生保健、醫(yī)療。比如通過訓(xùn)練自主組合的多層感知器可以區(qū)分正常心跳和非正常心跳、基于BP網(wǎng)絡(luò)的波形分類和特征提取在計(jì)算機(jī)臨床診斷中的應(yīng)用M&N。(9)經(jīng)濟(jì)。能對商品價(jià)格、股票價(jià)格MDN和企業(yè)的可信度等進(jìn)行短期預(yù)測。(10)化工領(lǐng)域。能對制藥、生物化學(xué)和化學(xué)工程等進(jìn)行分析。如:進(jìn)行蛋白質(zhì)結(jié)構(gòu)分析、譜分析和化學(xué)反應(yīng)分析等。(11)焊接領(lǐng)域。國內(nèi)外在參數(shù)選擇、質(zhì)量檢驗(yàn)、質(zhì)量預(yù)測和實(shí)時(shí)控制方面都有研究,部分成果已得到應(yīng)用。(12)地理領(lǐng)域。在遙感圖像分類中有廣泛的應(yīng)用,在GIS方面應(yīng)用人工神經(jīng)網(wǎng)絡(luò)理論,提高系統(tǒng)對數(shù)據(jù)進(jìn)行復(fù)雜的綜合分析的功能。(13)另外,在數(shù)據(jù)挖掘、電力系統(tǒng)、交通、軍事、礦業(yè)、農(nóng)業(yè)和氣象等方面亦有應(yīng)用。第二章BP神經(jīng)網(wǎng)絡(luò)概述2.1BP神經(jīng)網(wǎng)絡(luò)介紹BP(BackPropagation)網(wǎng)絡(luò)是1986年由Rumelhart和McCelland為首的科學(xué)家小組提出,是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP網(wǎng)絡(luò)能學(xué)習(xí)和存貯大量的輸入-輸出模式映射關(guān)系,而無需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程。它的學(xué)習(xí)規(guī)則是使用最速下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)包括輸入層(input)、隱層(hidelayer)和輸出層(outputlayer)。如圖2-1。圖2-1BP網(wǎng)絡(luò)模型結(jié)構(gòu)圖2.2神經(jīng)元2.2.1人工神經(jīng)元?dú)w納一下生物神經(jīng)元傳遞信息的過程:生物神經(jīng)元是一個(gè)多輸入、單輸出單元。常用的人工神經(jīng)元模型可用圖2-2模擬。圖2-2人工神經(jīng)元(感知器)示意圖當(dāng)神經(jīng)元j有多個(gè)輸入xi(i=1,2,…,m)和單個(gè)輸出yj時(shí),輸入和輸出的關(guān)系可表示為:其中j為閾值,wij為從神經(jīng)元i到神經(jīng)元j的連接權(quán)重因子,f()為傳遞函數(shù),或稱激勵(lì)函數(shù)。神經(jīng)網(wǎng)絡(luò)連接的幾種基本形式:1)前向網(wǎng)絡(luò)前向網(wǎng)絡(luò)結(jié)構(gòu)如圖2-3所示,網(wǎng)絡(luò)中的神經(jīng)元是分層排列的,每個(gè)神經(jīng)元只與前一層的神經(jīng)元相連接。神經(jīng)元分層排列,分別組成輸入層、中間層(也稱為隱含層,可以由若干層組成)和輸出層。每一層的神經(jīng)元只接受來自前一層神經(jīng)元的輸入,后面的層對前面的層沒有信號反饋。輸入模式經(jīng)過各層次的順序傳播,最后在輸出層上得到輸出。感知器網(wǎng)絡(luò)和BP網(wǎng)絡(luò)均屬于前向網(wǎng)絡(luò)。圖2-3前向網(wǎng)絡(luò)結(jié)構(gòu)2)從輸出到輸入有反饋的前向網(wǎng)絡(luò)其結(jié)構(gòu)如圖2-4所示,輸出層對輸入層有信息反饋,這種網(wǎng)絡(luò)可用于存儲某種模式序列,如神經(jīng)認(rèn)知機(jī)和回歸BP網(wǎng)絡(luò)都屬于這種類型。圖2-4有反饋的前向網(wǎng)絡(luò)結(jié)構(gòu)3)層內(nèi)互連前向網(wǎng)絡(luò)其結(jié)構(gòu)如圖2-5所示,通過層內(nèi)神經(jīng)元的相互結(jié)合,可以實(shí)現(xiàn)同一層神經(jīng)元之間的橫向抑制或興奮機(jī)制。這樣可以限制每層內(nèi)可以同時(shí)動(dòng)作的神經(jīng)元素,或者把每層內(nèi)的神經(jīng)元分為若干組,讓每一組作為一個(gè)整體進(jìn)行運(yùn)作。例如,可利用橫向抑制機(jī)理把某層內(nèi)的具有最大輸出的神經(jīng)元挑選出來,從而抑制其他神經(jīng)元,使之處于無輸出狀態(tài)。圖2-5有相互結(jié)合的前向網(wǎng)絡(luò)結(jié)構(gòu)4)相互結(jié)合型網(wǎng)絡(luò)相互結(jié)合型網(wǎng)絡(luò)結(jié)構(gòu)如圖2-6所示,這種網(wǎng)絡(luò)在任意兩個(gè)神經(jīng)元之間都可能有連接。Hopfield網(wǎng)絡(luò)和Boltzmann機(jī)均屬于這種類型。在無反饋的前向網(wǎng)絡(luò)中,信號一旦通過某神經(jīng)元,該神經(jīng)元的處理就結(jié)束了。而在相互結(jié)合網(wǎng)絡(luò)中,信號要在神經(jīng)元之間反復(fù)傳遞,網(wǎng)絡(luò)處于一種不斷變化狀態(tài)的動(dòng)態(tài)之中。信號從某初始狀態(tài)開始,經(jīng)過若干次變化,才會(huì)達(dá)到某種平衡狀態(tài)。根據(jù)網(wǎng)絡(luò)的結(jié)構(gòu)和神經(jīng)元的特性,網(wǎng)絡(luò)的運(yùn)行還有可能進(jìn)入周期振蕩或其他如混沌平衡狀態(tài)。圖2-6結(jié)合型網(wǎng)絡(luò)結(jié)構(gòu)綜上,可知神經(jīng)網(wǎng)絡(luò)有分層網(wǎng)絡(luò)、層內(nèi)連接的分層網(wǎng)絡(luò)、反饋連接的分層網(wǎng)絡(luò)、互連網(wǎng)絡(luò)等四種結(jié)構(gòu),其神經(jīng)網(wǎng)絡(luò)模型有感知器網(wǎng)絡(luò),線性神經(jīng)網(wǎng)絡(luò),BP神經(jīng)網(wǎng)絡(luò),徑向基函數(shù)網(wǎng)絡(luò),反饋神經(jīng)網(wǎng)絡(luò)等,本文主要學(xué)習(xí)研究了BP神經(jīng)網(wǎng)絡(luò),以及BP神經(jīng)網(wǎng)絡(luò)在函數(shù)逼近和樣本含量估計(jì)兩個(gè)實(shí)例中的應(yīng)用分析。人工神經(jīng)網(wǎng)絡(luò)主要具備以下幾方面的基本特征:

1.并行分布能力:神經(jīng)網(wǎng)絡(luò)具有高度的并行結(jié)構(gòu)和并行處理能力。這特別適用于實(shí)時(shí)控制和動(dòng)態(tài)控制。2.人工神經(jīng)網(wǎng)絡(luò)是一個(gè)非線性的有向圖,圖中含有可以通過改變權(quán)大小來存放模式的加權(quán)邊,并且可以從不完整的或未知的輸入找到模式。人工神經(jīng)網(wǎng)絡(luò)是一種具有下列特征的有向圖:

(1)對于每個(gè)節(jié)點(diǎn)i存在一個(gè)狀態(tài)變量ix;

(2)從節(jié)點(diǎn)j至節(jié)點(diǎn)i存在一個(gè)連接權(quán)系統(tǒng)數(shù)ijw;

(3)對于每個(gè)節(jié)點(diǎn)i存在一個(gè)閾值iq;

(4)對于每個(gè)節(jié)點(diǎn)I,定義一個(gè)變換函數(shù),,()iiijfxwi,ij;對于最一般的情況,此函數(shù)取()iijjj,fwxiq-?形式。

3.通過訓(xùn)練進(jìn)行學(xué)習(xí):神經(jīng)網(wǎng)絡(luò)是通過所研究系統(tǒng)過去的數(shù)據(jù)進(jìn)行訓(xùn)練的。是一個(gè)經(jīng)過適當(dāng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò),具有歸納全部數(shù)據(jù)的能力。因此,神經(jīng)網(wǎng)絡(luò)能夠解決那些由數(shù)學(xué)模型或描述規(guī)則難以處理的控制過程。

4適應(yīng)與集成:神經(jīng)網(wǎng)絡(luò)能適應(yīng)在線運(yùn)行,并能同時(shí)進(jìn)行定量和定性操作。這些特性特別適用于復(fù)雜、大規(guī)模和多變量的控制。

5.硬件實(shí)現(xiàn):神經(jīng)網(wǎng)絡(luò)不僅能夠通過軟件而且借助軟件實(shí)現(xiàn)并行處理。由于超大規(guī)模集成電路的硬件實(shí)現(xiàn),使得神經(jīng)網(wǎng)絡(luò)具有快速和大規(guī)模處理能力的實(shí)現(xiàn)網(wǎng)絡(luò)。

6.具有聯(lián)想存儲功能:利用人工神經(jīng)網(wǎng)絡(luò)的反饋網(wǎng)絡(luò)就可以實(shí)現(xiàn)這種聯(lián)想。

7.有高速尋找優(yōu)化解的能力:利用一個(gè)針對某問題而設(shè)計(jì)的反饋型人工神經(jīng)網(wǎng)絡(luò),發(fā)揮計(jì)算機(jī)的高速運(yùn)算能力,可能很快找到優(yōu)化解。

8.具有很強(qiáng)的魯棒性和容錯(cuò)性。在神經(jīng)網(wǎng)絡(luò)中,信息的存儲是分布在整個(gè)網(wǎng)絡(luò)中相互連接的權(quán)值上的,這就使得它比傳統(tǒng)計(jì)算機(jī)具有較高的抗毀性,少數(shù)幾個(gè)神經(jīng)元損壞或斷幾處連接,只會(huì)稍許降低系統(tǒng)的性能,而不至于破壞整個(gè)網(wǎng)絡(luò)系統(tǒng),因而具有強(qiáng)的魯棒性和容錯(cuò)性。2.2.2生物神經(jīng)元神經(jīng)細(xì)胞是構(gòu)成神經(jīng)系統(tǒng)的基本單元,稱之為生物神經(jīng)元,簡稱神經(jīng)元。神經(jīng)元主要由三部分構(gòu)成:(1)細(xì)胞體;(2)軸突;(3)樹突細(xì)胞體:是神經(jīng)元的中心,它一般又由細(xì)胞核、細(xì)胞膜等組成。樹突:是神經(jīng)元的主要接受器,它主要用來接受信息。軸突的作用主要:是傳導(dǎo)信息,它將信息從軸突起點(diǎn)傳到軸突末梢。突觸:是軸突的終端,是神經(jīng)元之間相互連接的接口部分,即一個(gè)神經(jīng)元的神經(jīng)末梢與另一個(gè)神經(jīng)元的樹突相接觸的交界面,位于神經(jīng)元的神經(jīng)末梢尾端。(1)生物神經(jīng)元結(jié)構(gòu)示意圖:圖2-7圖2-7生物神經(jīng)元結(jié)構(gòu)示意圖生物神經(jīng)元的工作狀態(tài):神經(jīng)元具有兩種常規(guī)工作狀態(tài):興奮與抑制,當(dāng)傳入的神經(jīng)沖動(dòng)使細(xì)胞膜電位升高超過閾值時(shí),細(xì)胞進(jìn)入興奮狀態(tài),產(chǎn)生神經(jīng)沖動(dòng)并由軸突輸出;當(dāng)傳入的神經(jīng)沖動(dòng)使膜電位下降低于閾值時(shí),細(xì)胞進(jìn)入抑制狀態(tài),沒有神經(jīng)沖動(dòng)輸出。2.3BP神經(jīng)網(wǎng)絡(luò)原理BP網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),由輸入層、隱層和輸出層組成。圖2-8為一個(gè)典型的三層BP網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),層與層之間采用全互連方式,同一層之間不存在相互連接,隱層可以有一層或多層。層與層之間有兩種信號在流通:一種是工作信號(用實(shí)線表示),它是施加輸入信號后向前傳播直到在輸出端產(chǎn)生實(shí)際輸出的信號,是輸入和權(quán)值的函數(shù)。另一種是誤差信號(用虛線表示),網(wǎng)絡(luò)實(shí)際輸出與期望輸出間的差值即為誤差,它由輸出端開始逐層向后傳播。BP網(wǎng)絡(luò)的學(xué)習(xí)過程程由前向計(jì)算過程和誤差反向傳播過程組成。在前向計(jì)算過程中,輸入量從輸入層經(jīng)隱層逐層計(jì)算,并傳向輸出層,每層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元的狀態(tài)。如輸出層不能得到期望的輸出,則轉(zhuǎn)入誤差反向傳播過程,誤差信號沿原來的連接通路返回,逐次調(diào)整網(wǎng)絡(luò)各層的權(quán)值和閾值,直至到達(dá)輸入層,再重復(fù)向計(jì)算。這兩個(gè)過程一次反復(fù)進(jìn)行,不斷調(diào)整各層的權(quán)值和閾值,使得網(wǎng)絡(luò)誤差最小或達(dá)到人們所期望的要求時(shí),學(xué)習(xí)過程結(jié)束。圖2-8典型Bp網(wǎng)絡(luò)模型生物神經(jīng)元信號的傳遞是通過突觸進(jìn)行的一個(gè)復(fù)雜的電化學(xué)等過程,在人工神經(jīng)網(wǎng)絡(luò)中是將其簡化模擬成一組數(shù)字信號通過一定的學(xué)習(xí)規(guī)則而不斷變動(dòng)更新的過程,這組數(shù)字儲存在神經(jīng)元之間的連接權(quán)重。網(wǎng)絡(luò)的輸入層模擬的是神經(jīng)系統(tǒng)中的感覺神經(jīng)元,它接收輸入樣本信號。輸入信號經(jīng)輸入層輸入,通過隱含層的復(fù)雜計(jì)算由輸出層輸出,輸出信號與期望輸出相比較,若有誤差,再將誤差信號反向由輸出層通過隱含層處理后向輸入層傳播。在這個(gè)過程中,誤差通過梯度下降算法,分?jǐn)偨o各層的所有單元,從而獲得各單元的誤差信號,以此誤差信號為依據(jù)修正各單元權(quán)值,網(wǎng)絡(luò)權(quán)值因此被重新分布。此過程完成后,輸入信號再次由輸入層輸入網(wǎng)絡(luò),重復(fù)上述過程。這種信號正向傳播與誤差反向傳播的各層權(quán)值調(diào)整過程周而復(fù)始地進(jìn)行著,直到網(wǎng)絡(luò)輸出的誤差減少到可以接受的程度,或進(jìn)行到預(yù)先設(shè)定的學(xué)習(xí)次數(shù)為止。權(quán)值不斷調(diào)整的過程就是網(wǎng)絡(luò)的學(xué)習(xí)訓(xùn)練過程。BP神經(jīng)網(wǎng)絡(luò)的信息處理方式具有如下特點(diǎn):1)信息分布存儲。人腦存儲信息的特點(diǎn)是利用突觸效能的變化來調(diào)整存儲內(nèi)容,即信息存儲在神經(jīng)元之間的連接強(qiáng)度的分布上,BP神經(jīng)網(wǎng)絡(luò)模擬人腦的這一特點(diǎn),使信息以連接權(quán)值的形式分布于整個(gè)網(wǎng)絡(luò)。2)信息并行處理。人腦神經(jīng)元之間傳遞脈沖信號的速度遠(yuǎn)低于馮·諾依曼計(jì)算機(jī)的工作速度,但是在很多問題上卻可以做出快速的判斷、決策和處理,這是由于人腦是一個(gè)大規(guī)模并行與串行組合的處理系統(tǒng)。BP神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)模仿人腦,具有并行處理的特征,大大提高了網(wǎng)絡(luò)功能。3)具有容錯(cuò)性。生物神經(jīng)系統(tǒng)部分不嚴(yán)重?fù)p傷并不影響整體功能,BP神經(jīng)網(wǎng)絡(luò)也具有這種特性,網(wǎng)絡(luò)的高度連接意味著少量的誤差可能不會(huì)產(chǎn)生嚴(yán)重的后果,部分神經(jīng)元的損傷不破壞整體,它可以自動(dòng)修正誤差。這與現(xiàn)代計(jì)算機(jī)的脆弱性形成鮮明對比。4)具有自學(xué)習(xí)、自組織、自適應(yīng)的能力。BP神經(jīng)網(wǎng)絡(luò)具有初步的自適應(yīng)與自組織能力,在學(xué)習(xí)或訓(xùn)練中改變突觸權(quán)值以適應(yīng)環(huán)境,可以在使用過程中不斷學(xué)習(xí)完善自己的功能,并且同一網(wǎng)絡(luò)因?qū)W習(xí)方式的不同可以具有不同的功能,它甚至具有創(chuàng)新能力,可以發(fā)展知識,以至超過設(shè)計(jì)者原有的知識水平。BP神經(jīng)網(wǎng)絡(luò)隱含層節(jié)點(diǎn)的選擇:基于BP算法的神經(jīng)元網(wǎng)絡(luò)中各層節(jié)點(diǎn)數(shù)目的選擇對于網(wǎng)絡(luò)性能的影響很大,隱含層的神經(jīng)元數(shù)目選擇往往需要根據(jù)經(jīng)驗(yàn)和多次試驗(yàn)來確定,若隱含層單元數(shù)目選擇太多會(huì)致使學(xué)習(xí)時(shí)間過長、誤差不一定最佳,也會(huì)導(dǎo)致容錯(cuò)性差、不能識別以前沒有看到的樣本,節(jié)點(diǎn)的數(shù)目要選擇恰當(dāng)。常用的解決辦法就是使隱含層數(shù)目可變。一種是開始放入足夠的隱含單元,然后把學(xué)習(xí)后的那些不起作用的隱含層單元逐步去掉,一直減少到不可收縮為止。另一種是開始放入比較少的隱含層單元,學(xué)習(xí)一些次數(shù)后,還不成功就要增加隱含單元個(gè)數(shù),一直達(dá)到比較合理的隱含單元數(shù)目為止??梢愿鶕?jù)以下公式選擇最佳隱含層神經(jīng)元的數(shù)目。(1),其中,m為輸出神經(jīng)元數(shù)目;n為輸入神經(jīng)元數(shù)目;a為[1,10]之間的常數(shù);(2),其中,n為輸入單元數(shù)。(3),其中,m為輸出節(jié)點(diǎn)數(shù)。隱含層結(jié)點(diǎn)數(shù)可根據(jù)公式(1)、(2)或(3)得出一個(gè)初始值,然后利用逐步增長或逐步修剪法.所謂逐步增長是先從一個(gè)較簡單的網(wǎng)絡(luò)開始,若不符合要求則逐步增加隱含層單元數(shù)到合適為止;逐步修剪則從一個(gè)較復(fù)雜的網(wǎng)絡(luò)開始逐步刪除隱含層單元,具體實(shí)現(xiàn)已有不少文獻(xiàn)討論。BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)率的選擇:學(xué)習(xí)速率決定每一次循環(huán)訓(xùn)練所產(chǎn)生的權(quán)值的變化量。過大的學(xué)習(xí)速率可能導(dǎo)致系統(tǒng)的不穩(wěn)定,但是過小的學(xué)習(xí)速率將導(dǎo)致訓(xùn)練時(shí)間較長,收斂速度很慢,不過能保證網(wǎng)絡(luò)的誤差值不跳出誤差表面的低谷而最終趨于最小的誤差值。一般要求是:當(dāng)訓(xùn)練到誤差曲面得平坦區(qū)時(shí),為加快收斂應(yīng)使增大;當(dāng)訓(xùn)練到誤差曲面的變化劇烈區(qū)時(shí),為防止過學(xué)習(xí)(使誤差增加),應(yīng)使上述值減小。為加快收斂,應(yīng)使合理化,比如采用變步長算法。所以在一般情況下,傾向于選取較小的學(xué)習(xí)速率以保證系統(tǒng)的穩(wěn)定性,學(xué)習(xí)速率的選取范圍一般在0.01~0.1之間。再根據(jù)訓(xùn)練過程中梯度變化和均方差變化值來確定。2.4BP神經(jīng)網(wǎng)絡(luò)的主要功能目前,在人工神經(jīng)網(wǎng)絡(luò)的實(shí)際應(yīng)用中。絕大部分的神經(jīng)網(wǎng)絡(luò)模型都采用BP神經(jīng)網(wǎng)絡(luò)及其變化形式。它也是前向網(wǎng)絡(luò)的核心部分,體現(xiàn)了人工神經(jīng)網(wǎng)絡(luò)的精華。BP網(wǎng)絡(luò)主要用于以下四方面。(1)函數(shù)逼近:用輸入向量和相應(yīng)的輸出向量訓(xùn)練一個(gè)網(wǎng)絡(luò)以逼近一個(gè)函數(shù)。(2)模式識別:用一個(gè)待定的輸出向量將它與輸入向量聯(lián)系起來。(3)分類:把輸入向量所定義的合適方式進(jìn)行分類。(4)數(shù)據(jù)壓縮:減少輸出向量維數(shù)以便傳輸或存儲。2.5BP神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)和缺點(diǎn)優(yōu)點(diǎn):1)

非線性映射能力:BP神經(jīng)網(wǎng)絡(luò)實(shí)質(zhì)上實(shí)現(xiàn)了一個(gè)從輸入到輸出的映射功能,數(shù)學(xué)理論證明三層的神經(jīng)網(wǎng)絡(luò)就能夠以任意精度逼近任何非線性連續(xù)函數(shù)。這使得其特別適合于求解內(nèi)部機(jī)制復(fù)雜的問題,即BP神經(jīng)網(wǎng)絡(luò)具有較強(qiáng)的非線性映射能力。

2)

自學(xué)習(xí)和自適應(yīng)能力:BP神經(jīng)網(wǎng)絡(luò)在訓(xùn)練時(shí),能夠通過學(xué)習(xí)自動(dòng)提取輸出、輸出數(shù)據(jù)間的“合理規(guī)則”,并自適應(yīng)的將學(xué)習(xí)內(nèi)容記憶于網(wǎng)絡(luò)的權(quán)值中。即BP神經(jīng)網(wǎng)絡(luò)具有高度自學(xué)習(xí)和自適應(yīng)的能力。

3)

泛化能力:所謂泛化能力是指在設(shè)計(jì)模式分類器時(shí),即要考慮網(wǎng)絡(luò)在保證對所需分類對象進(jìn)行正確分類,還要關(guān)心網(wǎng)絡(luò)在經(jīng)過訓(xùn)練后,能否對未見過的模式或有噪聲污染的模式,進(jìn)行正確的分類。也即BP神經(jīng)網(wǎng)絡(luò)具有將學(xué)習(xí)成果應(yīng)用于新知識的能力。

4)

容錯(cuò)能力:BP神經(jīng)網(wǎng)絡(luò)在其局部的或者部分的神經(jīng)元受到破壞后對全局的訓(xùn)練結(jié)果不會(huì)造成很大的影響,也就是說即使系統(tǒng)在受到局部損傷時(shí)還是可以正常工作的。即BP神經(jīng)網(wǎng)絡(luò)具有一定的容錯(cuò)能力。BP神經(jīng)網(wǎng)絡(luò)的優(yōu)缺點(diǎn)介紹

人工神經(jīng)網(wǎng)絡(luò)(Artificial

Neural

Network)又稱連接機(jī)模型,是在現(xiàn)代神經(jīng)學(xué)、生物學(xué)、心理學(xué)等學(xué)科研究的基礎(chǔ)上產(chǎn)生的,它反映了生物神經(jīng)系統(tǒng)處理外界事物的基本過程,是在模擬人腦神經(jīng)組織的基礎(chǔ)上發(fā)展起來的計(jì)算系統(tǒng),是由大量處理單元通過廣泛互聯(lián)而構(gòu)成的網(wǎng)絡(luò)體系,它具有生物神經(jīng)系統(tǒng)的基本特征,在一定程度上反映了人腦功能的若干反映,是對生物系統(tǒng)的某種模擬,具有大規(guī)模并行、分布式處理、自組織、自學(xué)習(xí)等優(yōu)點(diǎn),被廣泛應(yīng)用于語音分析、圖像識別、數(shù)字水印、計(jì)算機(jī)視覺等很多領(lǐng)域,取得了許多突出的成果。最近由于人工神經(jīng)網(wǎng)絡(luò)的快速發(fā)展,它已經(jīng)成為模式識別的強(qiáng)有力的工具。神經(jīng)網(wǎng)絡(luò)的運(yùn)用展開了新的領(lǐng)域,解決其它模式識別不能解決的問題,其分類功能特別適合于模式識別與分類的應(yīng)用。多層前向BP網(wǎng)絡(luò)是目前應(yīng)用最多的一種神經(jīng)網(wǎng)絡(luò)形式,

它具備神經(jīng)網(wǎng)絡(luò)的普遍優(yōu)點(diǎn),但它也不是非常完美的,

為了更好的理解應(yīng)用神經(jīng)網(wǎng)絡(luò)進(jìn)行問題求解,

這里對它的優(yōu)缺點(diǎn)展開一些討論。

首先BP神經(jīng)網(wǎng)絡(luò)具有以下優(yōu)點(diǎn):

(1)

非線性映射能力:BP神經(jīng)網(wǎng)絡(luò)實(shí)質(zhì)上實(shí)現(xiàn)了一個(gè)從輸入到輸出的映射功能,數(shù)學(xué)理論證明三層的神經(jīng)網(wǎng)絡(luò)就能夠以任意精度逼近任何非線性連續(xù)函數(shù)。這使得其特別適合于求解內(nèi)部機(jī)制復(fù)雜的問題,即BP神經(jīng)網(wǎng)絡(luò)具有較強(qiáng)的非線性映射能力。

(2)自學(xué)習(xí)和自適應(yīng)能力:BP神經(jīng)網(wǎng)絡(luò)在訓(xùn)練時(shí),能夠通過學(xué)習(xí)自動(dòng)提取輸出、輸出數(shù)據(jù)間的“合理規(guī)則”,并自適應(yīng)的將學(xué)習(xí)內(nèi)容記憶于網(wǎng)絡(luò)的權(quán)值中。即BP神經(jīng)網(wǎng)絡(luò)具有高度自學(xué)習(xí)和自適應(yīng)的能力。

(3)

泛化能力:所謂泛化能力是指在設(shè)計(jì)模式分類器時(shí),即要考慮網(wǎng)絡(luò)在保證對所需分類對象進(jìn)行正確分類,還要關(guān)心網(wǎng)絡(luò)在經(jīng)過訓(xùn)練后,能否對未見過的模式或有噪聲污染的模式,進(jìn)行正確的分類。也即BP神經(jīng)網(wǎng)絡(luò)具有將學(xué)習(xí)成果應(yīng)用于新知識的能力。

(4)容錯(cuò)能力:BP神經(jīng)網(wǎng)絡(luò)在其局部的或者部分的神經(jīng)元受到破壞后對全局的訓(xùn)練結(jié)果不會(huì)造成很大的影響,也就是說即使系統(tǒng)在受到局部損傷時(shí)還是可以正常工作的。即BP神經(jīng)網(wǎng)絡(luò)具有一定的容錯(cuò)能力。

缺點(diǎn):鑒于BP神經(jīng)網(wǎng)絡(luò)的這些優(yōu)點(diǎn),國內(nèi)外不少研究學(xué)者都對其進(jìn)行了研究,并運(yùn)用網(wǎng)絡(luò)解決了不少應(yīng)用問題。但是隨著應(yīng)用范圍的逐步擴(kuò)大,BP神經(jīng)網(wǎng)絡(luò)也暴露出了越來越多的缺點(diǎn)和不足,比如:

(1)局部極小化問題:從數(shù)學(xué)角度看,傳統(tǒng)的

BP神經(jīng)網(wǎng)絡(luò)為一種局部搜索的優(yōu)化方法,它要解決的是一個(gè)復(fù)雜非線性化問題,網(wǎng)絡(luò)的權(quán)值是通過沿局部改善的方向逐漸進(jìn)行調(diào)整的,這樣會(huì)使算法陷入局部極值,權(quán)值收斂到局部極小點(diǎn),從而導(dǎo)致網(wǎng)絡(luò)訓(xùn)練失敗。加上BP神經(jīng)網(wǎng)絡(luò)對初始網(wǎng)絡(luò)權(quán)重非常敏感,以不同的權(quán)重初始化網(wǎng)絡(luò),其往往會(huì)收斂于不同的局部極小,這也是很多學(xué)者每次訓(xùn)練得到不同結(jié)果的根本原因。

(2)BP神經(jīng)網(wǎng)絡(luò)算法的收斂速度慢:由于BP神經(jīng)網(wǎng)絡(luò)算法本質(zhì)上為梯度下降法,它所要優(yōu)化的目標(biāo)函數(shù)是非常復(fù)雜的,因此,必然會(huì)出現(xiàn)“鋸齒形現(xiàn)象”,這使得BP算法低效;又由于優(yōu)化的目標(biāo)函數(shù)很復(fù)雜,它必然會(huì)在神經(jīng)元輸出接近0或1的情況下,出現(xiàn)一些平坦區(qū),在這些區(qū)域內(nèi),權(quán)值誤差改變很小,使訓(xùn)練過程幾乎停頓;BP神經(jīng)網(wǎng)絡(luò)模型中,為了使網(wǎng)絡(luò)執(zhí)行BP算法,不能使用傳統(tǒng)的一維搜索法求每次迭代的步長,而必須把步長的更新規(guī)則預(yù)先賦予網(wǎng)絡(luò),這種方法也會(huì)引起算法低效。以上種種,導(dǎo)致了BP神經(jīng)網(wǎng)絡(luò)算法收斂速度慢的現(xiàn)象。

(3)BP

神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)選擇不一:BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的選擇至今尚無一種統(tǒng)一而完整的理論指導(dǎo),一般只能由經(jīng)驗(yàn)選定。網(wǎng)絡(luò)結(jié)構(gòu)選擇過大,訓(xùn)練中效率不高,可能出現(xiàn)過擬合現(xiàn)象,造成網(wǎng)絡(luò)性能低,容錯(cuò)性下降,若選擇過小,則又會(huì)造成網(wǎng)絡(luò)可能不收斂。而網(wǎng)絡(luò)的結(jié)構(gòu)直接影響網(wǎng)絡(luò)的逼近能力及推廣性質(zhì)。因此,應(yīng)用中如何選擇合適的網(wǎng)絡(luò)結(jié)構(gòu)是一個(gè)重要的問題。(4)應(yīng)用實(shí)例與網(wǎng)絡(luò)規(guī)模的矛盾問題:BP神經(jīng)網(wǎng)絡(luò)難以解決應(yīng)用問題的實(shí)例規(guī)模和網(wǎng)絡(luò)規(guī)模間的矛盾問題,其涉及到網(wǎng)絡(luò)容量的可能性與可行性的關(guān)系問題,即學(xué)習(xí)復(fù)雜性問題。(5)BP神經(jīng)網(wǎng)絡(luò)預(yù)測能力和訓(xùn)練能力的矛盾問題:預(yù)測能力也稱泛化能力或者推廣能力,而訓(xùn)練能力也稱逼近能力或者學(xué)習(xí)能力。一般情況下,訓(xùn)練能力差時(shí),預(yù)測能力也差,并且一定程度上,隨著訓(xùn)練能力地提高,預(yù)測能力會(huì)得到提高。但這種趨勢不是固定的,其有一個(gè)極限,當(dāng)達(dá)到此極限時(shí),隨著訓(xùn)練能力的提高,預(yù)測能力反而會(huì)下降,也即出現(xiàn)所謂“過擬合”現(xiàn)象。出現(xiàn)該現(xiàn)象的原因是網(wǎng)絡(luò)學(xué)習(xí)了過多的樣本細(xì)節(jié)導(dǎo)致,學(xué)習(xí)出的模型已不能反映樣本內(nèi)含的規(guī)律,所以如何把握好學(xué)習(xí)的度,解決網(wǎng)絡(luò)預(yù)測能力和訓(xùn)練能力間矛盾問題也是BP神經(jīng)網(wǎng)絡(luò)的重要研究內(nèi)容。

(6)

BP神經(jīng)網(wǎng)絡(luò)樣本依賴性問題:網(wǎng)絡(luò)模型的逼近和推廣能力與學(xué)習(xí)樣本的典型性密切相關(guān),而從問題中選取典型樣本實(shí)例組成訓(xùn)練集是一個(gè)很困難的問題。第三章BP神經(jīng)網(wǎng)絡(luò)的應(yīng)用快速發(fā)展的Matlab軟件為神經(jīng)網(wǎng)絡(luò)理論的實(shí)現(xiàn)提供了一種便利的仿真手段。Matlab神經(jīng)網(wǎng)絡(luò)工具箱的出現(xiàn),更加拓寬了神經(jīng)網(wǎng)絡(luò)的應(yīng)用空間。神經(jīng)網(wǎng)絡(luò)工具箱將很多原本需要手動(dòng)計(jì)算的工作交給計(jì)算機(jī),一方面提高了工作效率,另一方面,還提高了計(jì)算的準(zhǔn)確度和精度,減輕了工程人員的負(fù)擔(dān)。神經(jīng)網(wǎng)絡(luò)工具箱是在MATLAB環(huán)境下開發(fā)出來的許多工具箱之一。它以人工神經(jīng)網(wǎng)絡(luò)理論為基礎(chǔ),利用MATLAB編程語言構(gòu)造出許多典型神經(jīng)網(wǎng)絡(luò)的框架和相關(guān)的函數(shù)。這些工具箱函數(shù)主要為兩大部分。一部分函數(shù)特別針對某一種類型的神經(jīng)網(wǎng)絡(luò)的,如感知器的創(chuàng)建函數(shù)、BP網(wǎng)絡(luò)的訓(xùn)練函數(shù)等。而另外一部分函數(shù)則是通用的,幾乎可以用于所有類型的神經(jīng)網(wǎng)絡(luò),如神經(jīng)網(wǎng)絡(luò)仿真函數(shù)、初始化函數(shù)和訓(xùn)練函數(shù)等。這些函數(shù)的MATLAB實(shí)現(xiàn),使得設(shè)計(jì)者對所選定網(wǎng)絡(luò)進(jìn)行計(jì)算過程,轉(zhuǎn)變?yōu)閷瘮?shù)的調(diào)用和參數(shù)的選擇,這樣一來,網(wǎng)絡(luò)設(shè)計(jì)人員可以根據(jù)自己的的需要去調(diào)用工具箱中有關(guān)的設(shè)計(jì)和訓(xùn)練程序,從煩瑣的編程中解脫出來,集中精力解決其他問題,從而提高工作效率。3.1基于MATLAB的BP神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)3.1.1MATLAB工具箱介紹MATLAB

產(chǎn)品家族是美國

MathWorks公司開發(fā)的用于概念設(shè)計(jì),算法開發(fā),建模仿真,實(shí)時(shí)實(shí)現(xiàn)的理想的集成環(huán)境。由于其完整的專業(yè)體系和先進(jìn)的設(shè)計(jì)開發(fā)思路,使得

MATLAB

在多種領(lǐng)域都有廣闊的應(yīng)用空間,特別是在

MATLAB

的主要應(yīng)用方向

科學(xué)計(jì)算、建模仿真以及信息工程系統(tǒng)的設(shè)計(jì)開發(fā)上已經(jīng)成為行業(yè)內(nèi)的首選設(shè)計(jì)工具,全球現(xiàn)有超過五十萬的企業(yè)用戶和上千萬的個(gè)人用戶,廣泛的分布在航空航天,金融財(cái)務(wù),機(jī)械化工,電信,教育等各個(gè)行業(yè)。

在MATLAB產(chǎn)品家族中,MATLAB工具箱是整個(gè)體系的基座,它是一個(gè)語言編程型(M語言)開發(fā)平臺,提供了體系中其他工具所需要的集成環(huán)境(比如M語言的解釋器)。同時(shí)由于MATLAB對矩陣和線性代數(shù)的支持使得工具箱本身也具有強(qiáng)大的數(shù)學(xué)計(jì)算能力。

MATLAB產(chǎn)品體系的演化歷程中最重要的一個(gè)體系變更是引入了Simulink,用來對動(dòng)態(tài)系統(tǒng)建模仿真。其框圖化的設(shè)計(jì)方式和良好的交互性,對工程人員本身計(jì)算機(jī)操作與編程的熟練程度的要求降到了最低,工程人員可以把更多的精力放到理論和技術(shù)的創(chuàng)新上去。

針對控制邏輯的開發(fā),協(xié)議棧的仿真等要求,MathWorks公司在Simulink平臺上還提供了用于描述復(fù)雜事件驅(qū)動(dòng)系統(tǒng)的邏輯行為的建模仿真工具—

Stateflow,通過Stateflow,用戶可以用圖形化的方式描述事件驅(qū)動(dòng)系統(tǒng)的邏輯行為,并無縫的結(jié)合到Simulink的動(dòng)態(tài)系統(tǒng)仿真中。3.1.2BP網(wǎng)絡(luò)創(chuàng)建函數(shù)1)newff該函數(shù)用于創(chuàng)建一個(gè)BP網(wǎng)絡(luò)。調(diào)用格式為:net=newffnet=newff(PR,[S1S2..SN1],{TF1TF2..TFN1},BTF,BLF,PF)net=newff;用于在對話框中創(chuàng)建一個(gè)BP網(wǎng)絡(luò)。net為創(chuàng)建的新BP神經(jīng)網(wǎng)絡(luò);PR為網(wǎng)絡(luò)輸入向量取值范圍的矩陣;[S1S2…SNl]表示網(wǎng)絡(luò)隱含層和輸出層神經(jīng)元的個(gè)數(shù);{TFlTF2…TFN1}表示網(wǎng)絡(luò)隱含層和輸出層的傳輸函數(shù),默認(rèn)為‘tansig’;BTF表示網(wǎng)絡(luò)的訓(xùn)練函數(shù),默認(rèn)為‘trainlm’;BLF表示網(wǎng)絡(luò)的權(quán)值學(xué)習(xí)函數(shù),默認(rèn)為‘learngdm’;PF表示性能數(shù),默認(rèn)為‘mse’。2)newcf函數(shù)用于創(chuàng)建級聯(lián)前向BP網(wǎng)絡(luò),newfftd函數(shù)用于創(chuàng)建一個(gè)存在輸入延遲的前向網(wǎng)絡(luò)。3.1.3神經(jīng)元上的傳遞函數(shù)傳遞函數(shù)是BP網(wǎng)絡(luò)的重要組成部分。傳遞函數(shù)又稱為激活函數(shù),必須是連續(xù)可微的。BP網(wǎng)絡(luò)經(jīng)常采用S型的對數(shù)或正切函數(shù)和線性函數(shù)。1)logsig該傳遞函數(shù)為S型的對數(shù)函數(shù)。調(diào)用格式為:A=logsig(N)info=logsig(code)其中, N:Q個(gè)S維的輸入列向量;A:函數(shù)返回值,位于區(qū)間(0,1)中;2)tansig該函數(shù)為雙曲正切S型傳遞函數(shù)。調(diào)用格式為:A=tansig(N)info=tansig(code)其中,N:Q個(gè)S維的輸入列向量;A:函數(shù)返回值,位于區(qū)間(-1,1)之間。3)purelin該函數(shù)為線性傳遞函數(shù)。調(diào)用格式為:A=purelin(N)info=purelin(code)其中,N:Q個(gè)S維的輸入列向量;A:函數(shù)返回值,A=N。3.1.4BP網(wǎng)絡(luò)學(xué)習(xí)函數(shù)1)learngd該函數(shù)為梯度下降權(quán)值/閾值學(xué)習(xí)函數(shù),它通過神經(jīng)元的輸入和誤差,以及權(quán)值和閾值的學(xué)習(xí)效率,來計(jì)算權(quán)值或閾值的變化率。調(diào)用格式為:[dW,ls]=learngd(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)[db,ls]=learngd(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,LS)info=learngd(code)2)learngdm函數(shù)為梯度下降動(dòng)量學(xué)習(xí)函數(shù),它利用神經(jīng)元的輸入和誤差、權(quán)值或閾值的學(xué)習(xí)速率和動(dòng)量常數(shù),來計(jì)算權(quán)值或閾值的變化率。3.1.5BP網(wǎng)絡(luò)訓(xùn)練函數(shù)1)train神經(jīng)網(wǎng)絡(luò)訓(xùn)練函數(shù),調(diào)用其他訓(xùn)練函數(shù),對網(wǎng)絡(luò)進(jìn)行訓(xùn)練。該函數(shù)的調(diào)用格式為:[net,tr,Y,E,Pf,Af]=train(NET,P,T,Pi,Ai)[net,tr,Y,E,Pf,Af]=train(NET,P,T,Pi,Ai,VV,TV)2)traingd函數(shù)為梯度下降BP算法函數(shù)。traingdm函數(shù)為梯度下降動(dòng)量BP算法函數(shù)。3.2BP網(wǎng)絡(luò)在函數(shù)逼近中的應(yīng)用3.2.1問題的提出BP網(wǎng)絡(luò)由很強(qiáng)的映射能力,主要用于模式識別分類、函數(shù)逼近、函數(shù)壓縮等。下面將通過實(shí)例來說明BP網(wǎng)絡(luò)在函數(shù)逼近方面的應(yīng)用。要求設(shè)計(jì)一個(gè)BP網(wǎng)絡(luò),逼近函數(shù):g(x)=1+cos(k*pi/4*x),實(shí)現(xiàn)對該非線性函數(shù)的逼近。其中,分別令k=8,10,12進(jìn)行仿真,通過調(diào)節(jié)參數(shù)(如隱藏層節(jié)點(diǎn)個(gè)數(shù)等)得出信號的頻率與隱層節(jié)點(diǎn)之間,隱層節(jié)點(diǎn)與函數(shù)逼近能力之間的關(guān)系。3.2.2基于BP神經(jīng)網(wǎng)絡(luò)逼近函數(shù)步驟1:假設(shè)頻率參數(shù)k=8,繪制要逼近的非線性函數(shù)的曲線。函數(shù)的曲線如圖3-1所示%樣本選取k=8;x=[0:0.01:1];y=1+sin(k*pi/4*x);%要逼近的函數(shù)plot(x,y);xlabel('x');ylabel('y');title('要逼近的非線性函數(shù)');圖3-1逼近的非線性函數(shù)曲線步驟2:網(wǎng)絡(luò)的建立應(yīng)用newff()函數(shù)建立BP網(wǎng)絡(luò)結(jié)構(gòu)。隱層神經(jīng)元數(shù)目n可以改變,暫設(shè)為n=8,輸出層有一個(gè)神經(jīng)元。選擇隱層和輸出層神經(jīng)元傳遞函數(shù)分別為tansig函數(shù)和purelin函數(shù),網(wǎng)絡(luò)訓(xùn)練的算法采用Levenberg–Marquardt算法trainlm。%網(wǎng)絡(luò)仿真n=8;net=newff(minmax(x),[1,n,1],{'tansig','tansig','purelin'},'traingdx');%創(chuàng)建神經(jīng)網(wǎng)絡(luò)y1=sim(net,x);figure;plot(x,y,'b',x,y1,'r');title('仿真結(jié)果與非線性函數(shù)');xlabel('x');ylabel('y');同時(shí)繪制網(wǎng)絡(luò)輸出曲線,并與原函數(shù)相比較,結(jié)果如圖3-2“”代表要逼近的非線性函數(shù)曲線“——”代表未經(jīng)訓(xùn)練的函數(shù)曲線圖3-2網(wǎng)絡(luò)輸出曲線圖因?yàn)槭褂胣ewff()函數(shù)建立函數(shù)網(wǎng)絡(luò)時(shí),權(quán)值和閾值的初始化是隨機(jī)的,所以網(wǎng)絡(luò)輸出結(jié)構(gòu)很差,根本達(dá)不到函數(shù)逼近的目的,每次運(yùn)行的結(jié)果也有時(shí)不同。步驟3:網(wǎng)絡(luò)訓(xùn)練應(yīng)用train()函數(shù)對網(wǎng)絡(luò)進(jìn)行訓(xùn)練之前,需要預(yù)先設(shè)置網(wǎng)絡(luò)訓(xùn)練參數(shù)。將訓(xùn)練時(shí)間設(shè)置為50,訓(xùn)練精度設(shè)置為0.01,其余參數(shù)使用缺省值。訓(xùn)練后得到的誤差變化過程如圖3-3所示。%網(wǎng)絡(luò)訓(xùn)練net.trainParam.epochs=100;%最大迭代次數(shù)net.trainParam.goal=0.001;%神經(jīng)網(wǎng)絡(luò)訓(xùn)練的目標(biāo)誤差net.trainParam.lr=0.01;%學(xué)習(xí)率net.trainParam.show=25;%兩次顯示之間的訓(xùn)練步數(shù)net=train(net,x,y);xlabel('次數(shù)');ylabel('紅色-訓(xùn)練,藍(lán)色-目標(biāo)誤差');y2=sim(net,x);圖3-3將未經(jīng)訓(xùn)練網(wǎng)絡(luò)進(jìn)行訓(xùn)練的訓(xùn)練過程從以上結(jié)果可以看出,網(wǎng)絡(luò)訓(xùn)練速度很快,經(jīng)過一次循環(huán)跌送過程就達(dá)到了要求的精度0.01。步驟4:網(wǎng)絡(luò)測試對于訓(xùn)練好的網(wǎng)絡(luò)進(jìn)行仿真:%仿真figure;plot(x,y,'-',x,y1,'r',x,y2,'*g');title('原函數(shù)與網(wǎng)絡(luò)訓(xùn)練前后的仿真結(jié)果比較');xlabel('x');ylabel('y');text(0.7,3.5,'--原函數(shù)y');text(0.7,3,'--訓(xùn)練前網(wǎng)絡(luò)的仿真輸出y1');text(0.7,2.5,'--訓(xùn)練后網(wǎng)絡(luò)的仿真輸出y2');繪制網(wǎng)絡(luò)輸出曲線,并與原始非線性函數(shù)曲線以及未訓(xùn)練網(wǎng)絡(luò)的輸出結(jié)果曲線相比較,比較出來的結(jié)果如圖3-4“”——原函數(shù)“—”——訓(xùn)練前網(wǎng)絡(luò)的仿真輸出“**”——訓(xùn)練后網(wǎng)絡(luò)的仿真輸出圖3-4比較輸出結(jié)果圖3.2.3不同頻率下的逼近效果改變非線性函數(shù)的頻率和BP函數(shù)隱層神經(jīng)元的數(shù)目,對于函數(shù)逼近的效果有一定的影響。網(wǎng)絡(luò)非線性程度越高,對于BP網(wǎng)絡(luò)的要求越高,則相同的網(wǎng)絡(luò)逼近效果要差一些;隱層神經(jīng)元的數(shù)目對于網(wǎng)絡(luò)逼近效果也有一定影響,一般來說隱層神經(jīng)元數(shù)目越多,則BP網(wǎng)絡(luò)逼近非線性函數(shù)的能力越強(qiáng)。下面通過改變頻率參數(shù)和非線性函數(shù)的隱層神經(jīng)元數(shù)目來加以比較證明。(1)頻率參數(shù)設(shè)為k=8,當(dāng)隱層神經(jīng)元數(shù)目分別取n=12、n=16時(shí),得到了訓(xùn)練后的網(wǎng)絡(luò)輸出結(jié)果如圖3-5所示。當(dāng)n=12時(shí)訓(xùn)練后網(wǎng)絡(luò)的輸出結(jié)果當(dāng)n=16時(shí)訓(xùn)練后網(wǎng)絡(luò)的輸出結(jié)果圖3-5當(dāng)k=8時(shí),網(wǎng)絡(luò)輸出的結(jié)果圖頻率參數(shù)設(shè)為k=10,當(dāng)隱層神經(jīng)元數(shù)目分別取n=16、n=18時(shí),得到了訓(xùn)練后的網(wǎng)絡(luò)輸出結(jié)果如圖3-6所示。當(dāng)n=16時(shí)訓(xùn)練后網(wǎng)絡(luò)的輸出結(jié)果當(dāng)n=18時(shí)訓(xùn)練后網(wǎng)絡(luò)的輸出結(jié)果圖3-6當(dāng)k=10時(shí),網(wǎng)絡(luò)輸出的結(jié)果圖頻率參數(shù)設(shè)為k=12,當(dāng)隱層神經(jīng)元數(shù)目分別取n=20、n=25時(shí),得到了訓(xùn)練后的網(wǎng)絡(luò)輸出結(jié)果如圖3-7所示。當(dāng)n=20時(shí)訓(xùn)練后網(wǎng)絡(luò)的輸出結(jié)果當(dāng)n=25時(shí)訓(xùn)練后網(wǎng)絡(luò)的輸出結(jié)果圖3-7當(dāng)k=8時(shí),網(wǎng)絡(luò)輸出的結(jié)果圖3.2.4討論通過上述仿真結(jié)果可知,當(dāng)k=8,n=16時(shí);k=10,n=18時(shí);k=12,n=25時(shí),BP神經(jīng)網(wǎng)絡(luò)分別對函數(shù)取得了較好的逼近效果。由此可見,n取不同的值對函數(shù)逼近的效果有很大的影響。改變BP網(wǎng)絡(luò)隱層神經(jīng)元的數(shù)目,可以改變BP神經(jīng)網(wǎng)絡(luò)對于函數(shù)的逼近效果。隱層神經(jīng)元數(shù)目越多,則BP網(wǎng)絡(luò)逼近非線性函數(shù)的能力越強(qiáng)。3.3仿真實(shí)驗(yàn)3.3.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ò),通過誤差和訓(xùn)練步數(shù)對比確定隱含層個(gè)數(shù),并檢驗(yàn)隱含層神經(jīng)元個(gè)數(shù)對網(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ò)測試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);%對訓(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表3-1隱含層不同神經(jīng)元個(gè)數(shù)網(wǎng)絡(luò)訓(xùn)練誤差及學(xué)習(xí)步長某時(shí)刻一神經(jīng)元個(gè)數(shù)910111213141516網(wǎng)絡(luò)誤差0.14323.18064.86240.08800.08670.08840.08590.0841學(xué)習(xí)步長2000200020002756402416625某時(shí)刻二神經(jīng)元個(gè)數(shù)910111213141516網(wǎng)絡(luò)誤差0.08950.10680.08950.10160.08940.08890.08814.8423學(xué)習(xí)步長1156200011462000287102792000某時(shí)刻三神經(jīng)元個(gè)數(shù)910111213141516網(wǎng)絡(luò)誤差0.08950.08670.087810.7340.08950.08900.08950.0886學(xué)習(xí)步長4496660200015125674253由此可見,選擇隱含層神經(jīng)元數(shù)目為15是最佳選擇,不僅誤差小、學(xué)習(xí)步長短,而且性能穩(wěn)定。也可以看出并非隱含層神經(jīng)元的數(shù)目越多,網(wǎng)絡(luò)的性能就越好。3.3.2各種BP學(xué)習(xí)算法MATLAB仿真根據(jù)上面一節(jié)對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)色光滑線)和仿真效果圖(紅色+號點(diǎn)線)plot(x,y1);holdonplot(x,y2,'r+');注意:由于各種不確定因素,可能對網(wǎng)絡(luò)訓(xùn)練有不同程度的影響,產(chǎn)生不同的效果。如圖3-8。標(biāo)準(zhǔn)BP算法(traingd)圖3-8標(biāo)準(zhǔn)BP算法的訓(xùn)練過程以及結(jié)果(原圖藍(lán)色線,仿真圖+號線)增加動(dòng)量法(traingdm)如圖3-9。圖3-9增加動(dòng)量法的訓(xùn)練過程以及結(jié)果(原圖藍(lán)色線,仿真圖+號線)彈性BP算法(trainrp)如圖3-10圖3-10彈性BP算法的訓(xùn)練過程以及結(jié)果(原圖藍(lán)色線,仿真圖+號線)動(dòng)量及自適應(yīng)學(xué)習(xí)速率法(traingdx)如圖3-11。圖3-11動(dòng)量及自適應(yīng)學(xué)習(xí)速率法的訓(xùn)練過程以及結(jié)果(原圖藍(lán)色線,仿真圖+號線)共軛梯度法(traincgf)如圖3-12。圖3-12共軛梯度法的訓(xùn)練過程以及結(jié)果(原圖藍(lán)色線,仿真圖+號線)Levenberg-Marquardt算法(trainlm)如圖3-13。圖3-13Levenberg-Marquardt算法的訓(xùn)練過程以及結(jié)果(原圖藍(lán)色線,仿真圖+號線)3.3.3各種算法仿真結(jié)果比較與分析由上面的仿真結(jié)果可以得到下表的比較和下面的結(jié)論與分析:表3-2表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共軛梯度法traincgf7690.00499915Levenberg-Marquardt法trainlm610.0000098727結(jié)論與分析:從仿真結(jié)果可以看出,標(biāo)準(zhǔn)BP算法、增加動(dòng)量發(fā)、彈性BP算法、動(dòng)量及自適應(yīng)學(xué)習(xí)速率法的收斂速度都不如共軛梯度法和Levenberg-Marquardt法(L-M算法)收斂速度明顯的快。從仿真結(jié)果和均方誤差綜合來看,只有L-M算法達(dá)到了目標(biāo)誤差,可見對高要求的誤差來說,L-M算法的優(yōu)勢要明顯的多,其余均未達(dá)到目標(biāo)誤差;從均方誤差的效果來看,所仿真的BP算法的優(yōu)劣(從優(yōu)到劣)順序依次為L-M算法、共軛梯度法、彈性BP算法、動(dòng)量及自適應(yīng)學(xué)習(xí)速率法、增加動(dòng)量法、標(biāo)準(zhǔn)BP算法。從仿真效果圖可以看出,L-M算法的效果最好,其次是共軛梯度法,其余均有不同范圍內(nèi)的失真。從誤差曲線來看,L-M算法達(dá)到了目標(biāo)誤差(較高的誤差),標(biāo)準(zhǔn)BP算法的誤差曲線較粗,是因?yàn)檩^小范圍振蕩產(chǎn)生鋸齒,在圖形中由于間距加大,圖形不斷重疊而成,收斂速度很慢;增加動(dòng)量法、彈性BP算法、動(dòng)量及自適應(yīng)學(xué)習(xí)速率法的誤差曲線較為平滑,在剛開始收斂較快,在訓(xùn)練步數(shù)增加的時(shí)候,曲線趨于水平,收斂速度比較慢;共軛梯度法和L-M算法的誤差曲線變化較大且產(chǎn)生局部鋸齒狀,說明不是最優(yōu),仍需要進(jìn)行優(yōu)化,其中L-M算法達(dá)到了目標(biāo)誤差。共軛梯度法在相鄰迭代的正交方向搜索,綜合誤差曲線可知當(dāng)接近極值時(shí)會(huì)產(chǎn)生鋸齒形振蕩。再根據(jù)前面對各種BP改進(jìn)算法的描述可知,彈性BP算法不需要進(jìn)行搜索,需要內(nèi)存比較小,因此在一些大型網(wǎng)絡(luò)中比較適用,但是需要很長的訓(xùn)練時(shí)間。對收斂速度要求不高時(shí)也可使用動(dòng)量及自適應(yīng)學(xué)習(xí)速率法。在小型網(wǎng)絡(luò)中,共軛梯度法僅次于L-M算法,但是L-M算法需要更大的內(nèi)存做臨時(shí)存儲,對于較大復(fù)雜的網(wǎng)絡(luò)和內(nèi)存受限的設(shè)備來說不是很好的選擇,但是對于小型網(wǎng)絡(luò)來說卻是首要選擇。對訓(xùn)練時(shí)間允許的條件下,共軛梯度法和彈性BP算法是對復(fù)雜大型網(wǎng)絡(luò)較好的選擇。其中共軛梯度法在訓(xùn)練的時(shí)候,訓(xùn)練次數(shù)為769次,均方誤差為0.00499915,均未達(dá)到所設(shè)定的要求,產(chǎn)生了“Minimumstepsizereached,performancegoalwasnotmet”的結(jié)果。可能意味著子區(qū)間的長度與計(jì)算機(jī)舍入誤差相當(dāng),無法繼續(xù)計(jì)算了,原因可能是有奇點(diǎn)(無限小且不實(shí)際存在),另外也存在是初值問題,理論上得知:共軛梯度法最大局限是依賴于初值,在有限的迭代次數(shù)內(nèi)可能既不能搜索到全局極值也不能搜索到局部極值。因此該算法適用于精度要求比較低的高維網(wǎng)絡(luò)之中。3.3.4調(diào)整初始權(quán)值和閾值的仿真在分析了初始權(quán)值設(shè)置影響因素對BP神經(jīng)網(wǎng)絡(luò)的影響,下面首先通過MATLAB程序段一,通過隨機(jī)設(shè)置權(quán)值初始化網(wǎng)絡(luò)方式獲取訓(xùn)練好的閾值和權(quán)值,作為MATLAB程序段二的初始化值。由此進(jìn)行仿真分析。如圖3-14。①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ī)則初始化算法對網(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的每一個(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'},'trainlm');net.trainparam.epochs=2000;net.trainparam.goal=0.00001;%從程序段一得出的數(shù)據(jù)net.iw{1,1}=-0.3740;net.b{1}=-0.1930; net.lw{2,1}=[-20.7192;19.6478;10.9678;-9.4500;21.3555;6.7648;-20.7057;-6.1023;-9.4889;-12.7880;-15.5183;-13.9643;-21.2201;29.9987;-15.3738];net.b{2}=[21.2768;-16.9303;-7.9953;4.8688;-6.6081;-1.3465;-0.8528;-1.2791;-4.7658;-15.4970;-9.2069;-10.5259;-20.1442;3.5287;-13.6953];net=train(net,x,y1);y2=sim(net,x);err=y2-y1;res=norm(err);pauseplot(x,y1);holdonplot(x,y2,'r+');(a)隨機(jī)設(shè)置權(quán)值誤差曲線圖(b)獲取訓(xùn)練好的閾值和權(quán)值誤差曲線圖圖3-14兩程序段運(yùn)行后誤差曲線圖 從上面的仿真結(jié)果看,第一個(gè)程序用隨機(jī)的初始權(quán)值和閾值達(dá)到目標(biāo)誤差完成訓(xùn)練需要264個(gè)回合,而選用已訓(xùn)練好的權(quán)值和閾值僅用167個(gè)回合就完成了訓(xùn)練,因此選擇合適的初始化權(quán)值和閾值將加速網(wǎng)絡(luò)的訓(xùn)練,大大提高了學(xué)習(xí)的收斂速度。因此關(guān)于設(shè)置網(wǎng)絡(luò)初始權(quán)值和閾值的優(yōu)化方法是一個(gè)值得研究的問題。3.3.5其他影響因素仿真在算法選擇上,在下面的仿真中將使用L-M算法測試其他影響因素,比如通過選擇不同的激活函數(shù)、修改學(xué)習(xí)步長和目標(biāo)誤差等觀察對仿真曲線的影響程度。如果將輸入層激活函數(shù)設(shè)置為purelin,x=-4:0.1:4,epochs=1000,goal=0.001,其余不變則會(huì)產(chǎn)生如下結(jié)果:經(jīng)過多次反復(fù)實(shí)驗(yàn),有時(shí)不能達(dá)到目標(biāo)誤差,有時(shí)又很快達(dá)到目標(biāo)誤差,且仿真效果會(huì)產(chǎn)生不同程度的失真或有時(shí)效果很好。如果將輸入層激活函數(shù)設(shè)為tansig,則學(xué)習(xí)很快收斂且達(dá)到目標(biāo)誤差,仿真效果很好,且多次仿真結(jié)果比較穩(wěn)定,明顯要比輸入層激活函數(shù)設(shè)為purelin要好。如果將這三層神經(jīng)元的激活函數(shù)都設(shè)置為tansig的話,在多次試驗(yàn)中,訓(xùn)練回合數(shù)為1000,均未達(dá)到目標(biāo)誤差0.001的要求。3.4BP神經(jīng)網(wǎng)絡(luò)在樣本分類中的應(yīng)用3.4.1問題的提出這是一個(gè)用BP神經(jīng)網(wǎng)絡(luò)來將不同的混合在一起的數(shù)據(jù)或者樣本進(jìn)行分類的例子。利用上述研究的結(jié)果,采用15個(gè)隱層節(jié)點(diǎn)。我們先自己隨機(jī)的輸入兩個(gè)樣本:%產(chǎn)生訓(xùn)練樣本與測試樣本,每一列為一個(gè)樣本P1=[rand(3,5),rand(3,5)+1,rand(3,5)+2];

T1=[repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],1,5)];P2=[rand(3,5),rand(3,5)+1,rand(3,5)+2];

T2=[repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],1,5)];%然后再將樣本歸一化處理,這樣有利于我們簡便、準(zhǔn)確、定量結(jié)果。[PN1,minp,maxp]=premnmx(P1);

PN2=tramnmx(P2,minp,maxp);%第三部則是設(shè)置網(wǎng)絡(luò)參數(shù)NodeNum=15;%隱層節(jié)點(diǎn)數(shù)

TypeNum=3;%輸出維數(shù)TF1='tansig';TF2='purelin';%判別函數(shù)(缺省值)

%TF1='tansig';TF2='logsig';

%TF1='logsig';TF2='purelin';

%TF1='tansig';TF2='tansig';

%TF1='logsig';TF2='logsig';

%TF1='purelin';TF2='purelin';3.4.2基于BP神經(jīng)網(wǎng)絡(luò)的樣本分類%一切工作準(zhǔn)備就緒后我們就可以開始訓(xùn)練網(wǎng)絡(luò)了:net=newff(minmax(PN1),[NodeNumTypeNum],{TF1TF2});

指定訓(xùn)練參數(shù),我們可以選擇不同的算法來進(jìn)行測試做比較:%net.trainFcn='traingd';%梯度下降算法

%net.trainFcn='traingdm';%動(dòng)量梯度下降算法

%net.trainFcn='traingda';%變學(xué)習(xí)率梯度下降算法

%net.trainFcn='traingdx';%變學(xué)習(xí)率動(dòng)量梯度下降算法

%(大型網(wǎng)絡(luò)的首選算法-模式識別)

%net.trainFcn='trainrp';%RPROP(彈性BP)算法,內(nèi)存需求最小

%共軛梯度算法

%net.trainFcn='traincgf';%Fletcher-Reeves修正算法

%net.trainFcn='traincgp';%Polak-Ribiere修正算法,內(nèi)存需求比Fletcher-Reeves修正算法略大

%net.trainFcn='traincgb';%Powell-Beal復(fù)位算法,內(nèi)存需求比Polak-Ribiere修正算法略大

%(大型網(wǎng)絡(luò)的首選算法-函數(shù)擬合,模式識別)

%net.trainFcn='trainscg';%ScaledConjugateGradient算法,內(nèi)存需求與Fletcher-Reeves修正算法相同,計(jì)算量比上面三種算法都小很多

%net.trainFcn='trainbfg';%Quasi-NewtonAlgorithms-BFGSAlgorithm,計(jì)算量和內(nèi)存需求均比共軛梯度算法大,但收斂比較快

%net.trainFcn='trainoss';%OneStepSecantAlgorithm,計(jì)算量和內(nèi)存需求均比BFGS算法小,比共軛梯度算法略大

%(中小型網(wǎng)絡(luò)的首選算法-函數(shù)擬合,模式識別)

net.trainFcn='trainlm';%Levenberg-Marquardt算法,內(nèi)存需求最大,收斂速度最快

%net.trainFcn='trainbr';%貝葉斯正則化算法

%有代表性的五種算法為:'traingdx','trainrp','trainscg','trainoss','trainlm'net.trainParam.show=1;%訓(xùn)練顯示間隔

net.trainParam.lr=0.3;%學(xué)習(xí)步長-traingd,traingdm

net.trainParam.mc=0.95;%動(dòng)量項(xiàng)系數(shù)-traingdm,traingdx

net.trainParam.mem_reduc=10;%分塊計(jì)算Hessian矩陣(僅對Levenberg-Marquardt算法有效)

net.trainParam.epochs=1000;%最大訓(xùn)練次數(shù)

net.trainParam.goal=1e-8;%最小均方誤差

net.trainParam.min_grad=1e-20;%最小梯度

net.trainParam.time=inf;%最大訓(xùn)練時(shí)間%訓(xùn)練與測試net=train(net,PN1,T1);%訓(xùn)練%測試Y1=sim(net,PN1);%訓(xùn)練樣本實(shí)際輸出Y2=sim(net,PN2);%一切工作準(zhǔn)備就緒后我們就可以開始訓(xùn)練網(wǎng)絡(luò)了:net=newff(minmax(PN1),[NodeNumTypeNum],{TF1TF2});

指定訓(xùn)練參數(shù),我們可以選擇不同的算法來進(jìn)行測試做比較:%net.trainFcn='traingd';%梯度下降算法

%net.trainFcn='traingdm';%動(dòng)量梯度下降算法

%net.trainFcn='traingda';%變學(xué)習(xí)率梯度下降算法

%net.trainFcn='traingdx';%變學(xué)習(xí)率動(dòng)量梯度下降算法

%(大型網(wǎng)絡(luò)的首選算法-模式識別)

%net.trainFcn='trainrp';%RPROP(彈性BP)算法,內(nèi)存需求最小

%共軛梯度算法

%net.trainFcn='traincgf';%Fletcher-Reeves修正算法

%net.trainFcn='traincgp';%Polak-Ribiere修正算法,內(nèi)存需求比Fletcher-Reeves修正算法略大

%net.trainFcn='traincgb';%Powell-Beal復(fù)位算法,內(nèi)存需求比Polak-Ribiere修正算法略大

%(大型網(wǎng)絡(luò)的首選算法-函數(shù)擬合,模式識別)

%net.trainFcn='trainscg';%ScaledConjugateGradient算法,內(nèi)存需求與Fletcher-Reeves修正算法相同,計(jì)算量比上面三種算法都小很多

%net.trainFcn='trainbfg';%Quasi-NewtonAlgorithms-BFGSAlgorithm,計(jì)算量和內(nèi)存需求均比共軛梯度算法大,但收斂比較快

%net.trainFcn='trainoss';%OneStepSecantAlgorithm,計(jì)算量和內(nèi)存需求均比BFGS算法小,比共軛梯度算法略大

%(中小型網(wǎng)絡(luò)的首選算法-函數(shù)擬合,模式識別)

net.trainFcn='trainlm';%Levenberg-Marquardt算法,內(nèi)存需求最大,收斂速度最快

%net.trainFcn='trainbr';%貝葉斯正則化算法

%有代表性的五種算法為:'traingdx','trainrp','trainscg','trainoss','trainlm'net.trainParam.show=1;%訓(xùn)練顯示間隔

net.trainParam.lr=0.3;%學(xué)習(xí)步長-traingd,traingdm

net.trainParam.mc=0.95;%動(dòng)量項(xiàng)系數(shù)-traingdm,traingdx

net.trainParam.mem_reduc=10;%分塊計(jì)算Hessian矩陣(僅對Levenberg-Marquardt算法有效)

net.trainParam.epochs=1000;%最大訓(xùn)練次數(shù)

net.trainParam.goal=1e-8;%最小均方誤差

net.trainParam.min_grad=1e-20;%最小梯度

net.trainParam.time=inf;%最大訓(xùn)練時(shí)間%訓(xùn)練與測試net=train(net,PN1,T1);%訓(xùn)練%測試Y1=sim(net,PN1);%訓(xùn)練樣本實(shí)際輸出Y2=sim(net,PN2);%測試樣本實(shí)際輸出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論