神經網絡在數學建模競賽中的應用_第1頁
神經網絡在數學建模競賽中的應用_第2頁
神經網絡在數學建模競賽中的應用_第3頁
神經網絡在數學建模競賽中的應用_第4頁
神經網絡在數學建模競賽中的應用_第5頁
已閱讀5頁,還剩31頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.wd.wd.wd.第1章 引言1.1 人工神經網絡的介紹人工神經網絡Artificial Neural Networks, ANN,亦稱為神經網絡Neural Networks,NN,是由大量的處理單元神經元Neurons廣泛互聯而成的網絡,是對大腦的抽象、簡化和模擬,反映人腦的 基本特性.人工神經網絡的研究是從人腦的生理構造出發來研究人的智能行為,模擬人腦信息處理的功能.它是根植于神經科學、數學、物理學、計算機科學及工程等科學的一種技術.人工神經網絡是由簡單的處理單元所組成的大量并行分布的處理機,這種處理機具有儲存和應用經念知識的自然特性,它與人腦的相似之處概括兩個方面:一是通過學習過程利

2、用神經網絡從外部環境中獲取知識;二是內部神經元突觸權值用來存儲獲取的知識信息.人工神經網絡具有四個 基本特征:1非線性 非線性關系是自然界的普遍特性.大腦的智慧就是一種非線性現象.人工神經元處于激活或抑制二種不同的狀態,這種行為在數學上表現為一種非線性關系.具有閾值的神經元構成的網絡具有更好的性能,可以提高容錯性和存儲容量.2非局限性 一個神經網絡通常由多個神經元廣泛連接而成.一個系統的整體行為不僅取決于單個神經元的特征,而且可能主要由單元之間的相互作用、相互連接所決定.通過單元之間的大量連接模擬大腦的非局限性.聯想記憶是非局限性的典型例子.3非常定性 人工神經網絡具有自適應、自組織、自學習能

3、力.神經網絡不但處理的信息可以有各種變化,而且在處理信息的同時,非線性動力系統本身也在不斷變化.經常采用迭代過程描寫動力系統的演化過程.4非凸性 一個系統的演化方向,在一定條件下將取決于某個特定的狀態函數.例如能量函數,它的極值相應于系統比較穩定的狀態.非凸性是指這種函數有多個極值,故系統具有多個較穩定的平衡態,這將導致系統演化的多樣性.人工神經網絡是近年來的熱點研究領域,涉及到電子科學技術、信息與通訊工程、計算機科學與技術、電器工程、控制科學與技術等諸多學科,其應用領域包括:建模、時間序列分析、模式識別和控制等,并在不斷的拓展.本文正是居于數學建模的神經網路應用.人工神經網絡開展歷史 20世

4、紀40年代中期期,在科學開展史上出現了模擬電子計算機和數字電子計算機兩種新的計算工具和一種描述神經網絡工作的數學模型.由于電子技術(特別是大規模、超大規模集成電路)的開展,使數字電子計算機作為高科技計算工具已開展到當今盛世地步,而人工神經網絡模擬仿真生物神經網絡的探索那么經歷了半個世紀的曲折開展道路.1.2.1興起階段1943年心理學家WSMcCulloch和數學家Pitts首先以數理邏輯的方法研究用人工神經網絡模擬、仿真和近似生物神經網絡的探索,并提出MP神經元模型.1949年D.OHebb從心理學的角度提出了至今仍對神經網絡理論有著重要影響的Hebb學習法那么.50年代末到60年代初,神經

5、網絡系統已開場作為人工智能的一條途徑而受到人們的重視.1961年ERosenblatt提出了著名的感知機(Perceptron)模型.這個模型由簡單的閥值性神經元構成,初步具備了諸如學習性、并行處理、分布存貯等神經網絡的一些 基本特征,從而確立了從系統角度進展人工神經網絡研究的根基. 1962年Widrow提出了主要適用于自適應系統的自適應線性元件(Adaline)網絡.神經網絡的研究進入了一個高潮.1.2.2 蕭條階段在整個70年代中,對神經網絡理論的研究進展緩慢,原因主要來自于科技界漫不經心的對待和數字計算機飛速開展的沖突,但并沒有完全停頓下來.世界上一些對神經網絡抱有堅決信心和嚴肅科學態

6、度的學者們,沒有放棄他們的努力.在這期間,Grossberg提出了自適應共振理論(ART);芬蘭學者Kohono提出了自組織映射理論(SOM);日本的福島邦彥提出了認知機(Cognitron)模型,隨后又提出了改進至新認知機(Neocognitron)模型;另一位日本學者中野馨提出了聯想記憶模型一聯想機(Associatron);東京大學的甘利俊一博土那么一直致力于數學理論解釋神經網絡.70年代末期以來,復雜行為系統理論(如耗散構造、協同學、混噸)的出現,人們認識到人工智能、聯想記憶學習算法、信息優化組合處理及杉式識別的重要性,極大地推動了人工神經網絡的開展.興盛階段進入80年代,特別是80年

7、代末期,神經網絡的研究從復興很快轉入了新的熱網.主要原因來自兩個方面:一方面經過十幾年迅速開展起來的以邏輯符號處理為主的人工智能理論和Von Neumann計算機在處理諸如視覺、聽覺、形象思維、聯想記憶等智能信息處理問題上受到了挫折;另一方面,80年代并行分布處理模式的神經網絡本身的研究成果,使人們看到了新的希望.這一時期首先要提到的是美國加州理工學院的物理學家Hopfield的開拓性工作.1982年他提出了一個新的神經網絡模型Hopfield網絡模型,并首次引入了網絡能量函數概念,使網絡穩定性研究有了明確的判據.尤其是1986年R Mmelhart和McCelland及其研究小組提出的誤差逆

8、傳播學習算法,成為至今影響最大的一種網絡學習方法.到90年代以后,人工神經網絡從理論研究到軟件開發、軟件實現、各個學科領域廣泛應用與相互滲透等諸多方面取得了全面的開展.有關神經網絡的國際學術組織紛紛成立,學術會議紛紛召開,學術刊物紛紛創刊.神經網絡理論已涉及到了神經生理科學、認識科學、數理科學、心理學、信息科學、計算機科學、微電子學、光學、生物電子學等眾多學科,是一門新興的、綜合性的前沿學科.針對不同應用目的的軟件開發全面展開,網絡計算機的硬件實現方面也取得了一些實實在在的成績.神經網絡的應用,已滲透到模式識別、圖像處理、非線性優化、語音處理、自然語言理解、自動目標識別、機器人、專家系統等各個

9、領域,并取得了令人矚目的成果.總之,以Hopfield教授1982年發表的論文為標志,掀起了神經網絡的研究熱潮.1987年6月,在美國加州舉行了第一屆NN國際會議,有一千多名學者參加,并成立了國際NN學會,以后每年召開兩次國際聯合NN大會IJCNN,其他國際學術會議也都列有NN主題.較有影響的國際刊物有:?IEEE Transaction on Neural Network?和?Neural Network?.美國IBM、AT&T、貝爾實驗室、神經計算機公司、各高校、美國政府制定了“神經、信息、行為科學NIBS方案,投資5.5億美元作為第六代計算機的研究根基;美國科學基金會、海軍研究局和空軍科

10、學研究部三家投資一千萬美元;美國國防部DARPA認為NN“看來是解決機器智能的唯一希望“這是一項比原子彈工程更重要的計術投資四億美元.主要研究目標:目標識別與追蹤、連續語音識別,聲納信號區分.日本的富士通、日本電氣、日立、三菱、東芝急起直追.1988年日本提出了所謂的人類尖端科學方案Human Frontier Science Program,即第六代計算機研究方案.法國提出了“尤里卡方案,還有德國的“歐洲防御和前蘇聯的“高技術開展等等.我國于1989年在北京召開了一個非正式的NN會議;1990年12月在北京召開了中國NN大會;1991年在南京成立中國NN學會,由國內十五個一級學會共同發起“攜

11、手探智能,聯盟攻大關的863高技術研究方案;自然科學基金、國防科技預研究基金也都列入了NN研究內容.人工神經網絡生物神經元模型在人類大腦皮層中大約有100億個神經元,60萬億個神經突觸以及他們的聯接體.單個神經元處理一個事件需要秒,而在硅芯片中處理一事件只需秒.但人腦是一個非常高效的構造,大腦中每秒鐘每個動作的能量約為焦耳.神經元是 基本的信息處理單元.生物神經元主要由樹突、軸突和突觸組成.其構造示意如如圖1-1所示.其中樹突是由細胞體向外伸出的,有不規那么的外表和許多較短的分支.樹突突觸樹突軸突神經末梢細胞膜細胞質細胞核圖1-1 生物神經元模型相當于信號的輸入端,用于接收神經沖動.軸突由細胞

12、體向外伸出的最長的一條分支,即神經纖維.相當于信號的輸出電纜,其端部的許多神經末梢為信號輸出端子,用于傳出神經沖動.神經元之間通過軸突輸出和樹突輸入相互聯接,其接口稱為突觸.每個細胞約有個突觸.神經突觸是調整神經元之間相互作用的 基本構造和功能單元,最通常的一種神經突觸是化學神經突觸,它將得到的電信號化成化學信號,再將化學信號轉化成電信號輸出.這相當于雙接口設備.它能加強興奮或抑制作用,但兩者不能同時發生.細胞膜內外有電位差,越位,稱為膜電位.膜外為正,莫內為負.神經元作為信息處理的 基本單元,具有如下重要的功能.可塑性:可塑性反映在新突觸的產生和現有的神經突觸的調整上,可塑性使適應周圍的環境

13、. 2時空整合功能:時間整合功能表現在不同時間、同一突觸上;空間整合功能表現在同一時間、不同突觸上.3興奮與抑制狀態:當傳入沖動的時空整合結果,使細胞膜電位升高,超過被稱為動作電位的閥值約為40mv,細胞進入興奮狀態,產生神經沖動,由突觸輸出;同樣,當膜電位低于閥值時,無神經沖動輸出,細胞進入抑制狀態.4脈沖與電位轉換:沿神經纖維傳遞的電脈沖為等幅、恒寬、編碼的離散脈沖信號,而細胞電位變化為連續信號.在突觸接口處進展“數/模轉換.神經元中的軸突非長和窄,具有電阻高、電壓大的特性,因此軸突可以建模成阻容傳播電路.5突觸的延時和不應期:突觸對神經沖動的傳遞具有延時和不應期,在相鄰的二次沖動之間需要

14、一個時間間隔.在此期間對鼓勵不響應,不能傳遞神經沖動.6學習、遺忘和疲勞:突觸的傳遞作用有學習、遺忘和疲勞的過程.1.3.2 人工神經網絡的模型人工神經網絡是由大量處理單元廣泛互連而成的網絡,是人腦的抽象、簡化、模擬,反映人腦的 基本特性.一般神經元模型應該具備三個要素:1具有一組突觸或聯接,常用表示神經元和神經元之間的聯系強度,或稱之為權值.與人腦神經元不同,人工神經元權值的取值可在負值與正值之間.2具有反映生物神經元時空整合功能的輸入信號累加器.3具有鼓勵函數用于限制神經元輸出.鼓勵函數將輸出信號壓縮限制在一個允許范圍內,使其成為有限值,通常,神經元輸出的擴大范圍在或閉區間.一個典型的人工

15、神經元模型如圖1-2所示.圖1-2 人工神經元模型其中為神經元的輸入信號,為突觸強度或聯接權.是由輸入信號線性組合后的輸出,是神經元的凈收入.為神經元的閥值或稱為偏差用表示,為經偏差調整后的值,也稱為神經元的局部感應區. 1-1 1-2是鼓勵函數,是神經元的輸出. 1-3 鼓勵函數可取不同的函數,但常用的 基本鼓勵函數有以下三種:1閥值函數Threshold Function 1-4該函數通常也稱為階躍函數,常用表示,如圖1-3a所示.假設鼓勵函數采用階躍函數,那么圖1-2所示的人工神經元模型即為著名的MPMcCulloch-Pitts模型.此時神經元的輸出取1或0,反映了神經元的興奮或抑制.

16、此外,符號函數也常常作為神經元的鼓勵函數,如圖1-3b所示. 1-5圖1-3 a 閥值函數圖1-3 b 閥值函數2分段線性函數Piecewise-Linear Function 1-6該函數在-1,+1線性區內的放大系數是一致的,如圖1-4所示,這種形式的鼓勵函數可看作是非線性放大器的近似,以下是兩種情況是分段線性函數的特殊形式:圖1-4 分段線性函數1假設在執行中保持線性區域而使其不進入飽和狀態,那么會產生線性組合器.2假設線性區域的放大倍數無限大,那么分段線性函數簡化為閥值函數.3Sigmoid函數Sigmoid函數也稱函數.到目前為止,它是人工神經網絡中最常用的鼓勵函數.型函數的定義如下

17、: 1-7 其中為Sigmoid函數的斜率參數,通過改變參數,我們會獲取不同斜率的Sigmoid函數,如圖1-5所示.圖1-5 Sigmoid函數但斜率參數接近無窮大時,此函數轉化為簡單的閥值函數,但Sigmoid函數對應0到1一個連續區域,而閥函數對應的只是0和1亮點,此外Sigmoid函數是可微的,而閥值函數是不可微的.Sigmoid函數也可用雙曲正切函數來表示,如圖1-6所示. 1-8圖1-6 雙曲正切函數由式1-8定義的Sigmoid類型鼓勵函數所得到的負責具有分析價值.人工神經網絡的分類及學習規那么前面介紹人工神經元模型,將大量的神經元進展連接可構成人工神經網絡.神經網絡中神經元的聯

18、結方式與用于訓練網絡的學習算法是嚴密結合的,可以認為應用于神經網絡設計中的學習算法是被構造化了的.人工神經網絡的分類本文將網絡構造和學習算法相結合,對人工神經網絡進展分類.單層前向網絡所謂單層前向網絡是指擁有的計算節點神經元是“單層的,如圖1-7所示.這里原節點個數的“輸入層看作一層神經元,因為該“輸入層不具有執行計算的功能.后面介紹的單層感知器屬于單層前向網絡.多層前向網絡多層前向網絡和單層前向網絡的區別在于:多層前向網絡含有一個或多個的隱含層,其中計算節點被相應地稱為隱含神經元或隱含單元,如圖1-8所示.圖1-8所示的多層前向網絡由含有10個神經元輸入層、含有4個神經元隱含層和2個神經元輸

19、出層所組成.網絡輸入層中的每個源節點的鼓勵模式輸入向量單元組成了應用于第二層如第一隱層中神經元計算節點的輸入信號,第二層輸出信號成為第三層的輸入,其余層類似.網絡每一層的神經元只含有作為它們輸入前一層的輸出信號,網絡輸出層終止層神經元的輸出信號組成了對網絡中輸入層起始層源節點產生的鼓勵模式的全部響應.即信號從輸入層輸入,經隱含層傳給輸出層,由輸出層得到輸出信號.圖1-7 單層前向網絡圖1-8 多層前向網絡通過參加一個或更多的隱層,使網絡能提取出更高的統計,尤其當輸入層規模龐大時,隱神經元提取高序統計數據的能力便顯得格外重要.后面我們介紹的多層感知器屬于多層前向網絡.反響網絡所謂反響網絡是指在網

20、絡中至少含有一個反響回路的神經網絡.反響網絡可以包含一個單層神經元,其中每個神經元將自身的輸出信號反響給其他所以神經元的輸入,如圖1-9所示,圖中所示的網絡即為著名的Hopfied網絡.圖1-10所示的是另一類型的含有隱層的反響網絡,圖中的反響聯結起始于隱神經元和輸出神經元.圖1-9和圖1-10所示的網絡構造中沒有自反響回路.自反響是指一個神經元的輸出反響至其輸入,含有自反響的網絡也屬于反響網絡.圖1-9 無自反響和隱含層的反響網絡圖1-10 含有隱含層的反響網絡此外,常見的人工神經網絡該有競爭神經網絡和隨機神經網絡,在這里就不詳加探討.1.4.2 神經網絡的學習神經網絡的學習也稱為訓練,它是

21、通過向環境學習而獲取知識并改進自身性能,是NN的一個重要特點.一般情況下,性能的改善是按某種預定的度量通過調節自身參數如權值逐步到達的,學習方式按環境所提供信息的多少分有三種.監視學習有教師學習這種學習方式需要外界存在一個“教師,他可對一組給定輸入提供應有的輸出結果正確答案.這組的輸入輸出數據稱為訓練樣本集.學習系統NN可根據的輸出與實際輸出之間的差值誤差信號來調節系統參數.如圖1-11所示.圖1-11 監視學習框圖非監視學習無教師學習非監視學習時不存在外部教師,學習系統完全按照環境所提供數據的某些統計規律來調節自身參數或構造這是一種自組織過程,一表示外部輸入的某種固有特征如聚類,或某種統計上

22、的分布特征.如圖1-12所示.圖1-12 非監視學習框圖再勵學習或強化學習這種學習介于上述兩種情況之間,外部環境對系統輸出結果只給出評價獎或罰而不給出正確答案,學習系統通過強化那些受獎勵的動作來改善自身特性.圖1-13 再勵學習框圖下面介紹 基本的神經網絡學習算法.1. 糾錯學習首先我們考慮一個簡單的情況在:設某神經網絡的輸出層只有一個神經元,給該神經網格上輸入,這樣就產生輸出,稱該輸出為實際輸出.對于所加上的輸入,我們期望該神經網絡的輸出,稱為期望輸出或目標輸出.實際輸出與期望輸出之間存在著誤差,用表示. 1-9現在要調整突觸權值,使誤差信號減少.為此,可設定代價函數或性能指數: 1-10反

23、復調整突觸權值使代價函數到達最小或使系統到達一個穩定狀態即突觸權值穩定,就完成了學習過程.該學習過程稱為糾錯學習,也稱為Delta規那么或者WindrowHoff規那么.表示神經元到的突觸權值,在學習步驟為時對突觸權值的調整為 1-11為學習速率參數.式1-11說明:對神經元突觸權值的調整與突觸信號和輸入信號成正比例.糾錯學習實際上是局部的,Delta規那么所規定的突觸調整局限于神經元的周圍.得到之后,定義突觸權值的校正值為 (1-12)和可以分別看做突觸權值的舊值和新值. 2. Hebb學習神經心里學家Hebb提出學習規那么可歸結為“當某一突觸連接兩端的神經元的激活同步同為激活或同為抑制時,

24、該連接的強度應增強,反之應減弱.用數學方式可描述為 1-13式中,分別為兩端的神經元的狀態,其中最常用的一種情況為 1-14由于與,的相關成比例,有時稱之為相關學習規那么. 3. 競爭學習顧名思義,在競爭中學習時網絡各輸出單元相互競爭,最后到達只有一個最強者激活.最常見的一種情況是輸出神經元之間有側向抑制性連接,這樣眾多輸出單元中如有某一單元較強,那么它將獲勝并抑制其他單元,最后只有比較強者處于激活狀態.最常用的競爭學習規那么可寫為 1-15此外,還有兩個 基本的神經網絡學習規那么,即基于記憶的學習和隨機學習算法.在此不詳加討論.三種神經網絡模型及其MATLB仿真算法單層前向網絡模型及其仿真算

25、法2.1.1 感知器的概念感知器Perceptron是美國心理學家Rosenblatt于1957年提出來的,它是最 基本的但具有學習功能的層狀網絡Layed Network.最初的感知器由三層組成,即SSensory層、AAssociation層和RResponse層,如圖3-1所示.S層和A層之間的耦合是固定的,只有A層和R層之間的耦合程度即權值可通過學習改變.假設在感知器的A層和R層加上一層或多層隱單元,那么構成的多層感知器具有很強的處理功能,假設感知器隱層的節點可根據需要自由設置,那么用三層不包括S層的閾值網絡可以實現任意的二值邏輯函數.應注意,感知器學習方法在函數不是線性可分時得不出任

26、何結果,另外也不能推廣到一般前向網絡中去.其主要原因是轉移函數為閾值函數,為此,人們用可微函數如Sigmoid函數來代替閾值函數,然后采用梯度算法來修正權值.BP網絡就是采用這種算法的典型網絡.圖2-1圖2-22.1.2 單層感知器單層感知器是指包含一個突觸權值可調的神經元的感知器模型,它的訓練算法是Rosenblatt在1958年提出來的.感知器是神經網絡用來進展模式識別的一種最簡單模型,但是由單個神經元組成的單層感知器只能用來實現線性可分的兩類模式的識別. 單層感知器模型如圖1-2所示,它包括一個線性累加器和一個二值閥值元件,同時還有一個外部偏差.當二值閥值元件的輸入是正數,神經元就輸出+

27、1,反之其輸入是負數,那么產生輸出-1.即 2-1 2-22.1.3 單層感知器神經網絡的學習感知器權值的學習是通過給定的教師信號即希望的輸出按學習規那么,即式2-3進展的: 2-3式中,為當前的權值矩陣;為教師信號;為控制權值修正速度的常數;為感知器的輸出值;即2-4由于感知器一般用于線性可分樣本的分類,激發函數選為閾值型函數,因而當式2-1-4中的時,該式可寫成2-5權值的初值一般取較小的非零隨機數.線性神經網絡線性神經網絡同感知器相似,是最簡單的一種神經元絡,同感知器不同的是,在MATLAB中,線性神經網絡輸出的激發函數為線性函數purelin,而感知器模型的激發函數為符號函數hardl

28、im,因此感知器模型中只可取0或者1,而線性神經網絡輸出的數值可以是任意數值,這一點也決定了線性神經網絡同感知器應用范圍的不同.本節將簡單介紹線性神經網絡的原理,通過實例演示MATLAB神經網絡工具箱線性神經網絡涉及函數,并講解線性神經網絡的應用.2.2.1 線性神經網絡原理性神經網絡由多個線性神經元模型構成,單個線性神經元模型的構造可以參考圖2-3.線性網格的激發函數為線性purelin函數,其輸出可以為任意值.圖2-3 單線性神經元模型構造當輸入向量為的個數為N,單線性神經元同樣由輸入系數和閥值.當感知器神經元模型中包含多個神經元時,只需要將多個線性神經元串聯,并形成網格拓撲機構,同時對應

29、于個神經元輸出,那么第個神經元的輸出為 2-6感知器的輸出函數由線性傳遞函數使用purelin函數實現.第個神經元經過線性傳遞函數后的輸出為 2-7在MATLAB命令窗口輸入:x=-5:0.01:5;y=purelin(x);plot(x,y) 運行程序后得到線性神經元purelin函數曲線如圖2-4所示.圖2-4 線性神經元purelin函數曲線線性神經網絡相關的MATLAB函數MATLAB神經網絡工具箱提供了一系列函數進展線性神經網絡的設計和分析,下面主要分別介紹線性神經網絡構建函數newlin、線性神經網絡設計函數newlind.線性神經網絡構建函數newlinnewlin函數的調用格式

30、如下:net=nelin(PR,S,ID,LR)其中,PR為的輸入向量最大最小值構成的矩陣,S為輸出向量的個數,ID為輸入延遲向量,LP為學習速率,學習速率可以使用maxlinlr函數進展計算,通過學習速率越大,網絡訓練時間越短,但同時也導致學習過程不穩定.如果P為訓練樣本數據,那么maxlinlrP返回一個不帶閥值的線性層所需要的最大學習率,而maxlinlrP,bias返回一個帶閥值的線性層所需要的最大學習率.2. 線性層設計函數newlind函數在MATLAB神經網路工具箱中,還可以使用newlind設計一個線性層,其調用格式如下:net=newlind(P,T,Pi)其中P、T分別是訓

31、練樣本的輸入矩陣和目標輸出向量,Pi是初始輸入延時cell向量.多層前向神經網絡模型及BP學習算法前面我們介紹了單層感知器,它的缺點是只能解決線性可分問題,要增強網絡的分類能力唯一的方法是采用多層網絡,即在輸入與輸出之間加上隱含層,從而構成多層感知器Multilayer Perceptrons,MLP.這種由輸入層、隱含層一層或者多層和輸出層構成的神經網絡稱為多層前向神經網絡.本節將介紹兩個常見的多層前向網絡:多層感知器和徑向基函數神經網絡,詳細介紹多層感知器的學習算法著名的誤差反向傳播算法BP算法及其改進算法.BP算法訓練的神經網絡,稱之為BP神經網絡.在人工神經網絡的實際應用中,BP網絡廣

32、泛應用于函數逼近、模式識別/分類、數據壓縮等,的人工神經網絡模型采用BP網絡或它的變化形式,它也是前饋網絡的核心局部,表達了人工神經網絡最精華的局部.所以,本節也會重點探討BP神經網絡的應用.多層感知器多層感知器是單層感知器的推廣,但是它能夠解決單層感知器所不能解決的非線性可分問題.多層感知器由輸入層、隱含層和輸出層組成,其中隱含層可以是一層或多層.其拓撲構造如圖2-5所示.圖2-5 多層感知器模型輸入層神經元的個數為輸入信號的維數,隱含層個數以及隱節點的個數視具體情況而定,輸出神經元的個數為輸出信號的維數.多層感知器同單層感知器比具有四個明顯的特點:1除了輸入輸出層,多層感知器含有一層或者多

33、層隱單元,隱單元從輸入模式中提取更多有用的信息,使網絡可以完成更復雜的任務.2多層感知器中每個神經元的鼓勵函數是可微的Sigmoid函數,如 2-8式中是第個神經元的輸入信號,是該神經元的輸出信號.3多層感知器具有獨特的多個突觸使得網絡更具有連通性,聯接域的變化或權值的變化都會引起連通性的變化.4多層感知器具有獨特的學習算法BP算法,所以多層感知器也常常稱之為BP網絡.多層感知器的這些特點,使它具有強大的計算能力.多層感知器是目前應用最廣泛的一種神經網絡.BP學習算法20世紀80年代中期,美國加利福尼亞的PDPparallel distributed procession小組于1986年發表了

34、Parallel Distributed Procession一書,該書的出版對BP算法產生了重要的影響.BP算法解決了多層感知器的學習問題,促進了神經網絡的開展.BP學習過程的描述1工作信號的傳播:輸入信號從輸入層經隱單元,傳向輸出層,在傳出端產生輸出信號,這是工作信號的正向傳播.在信號的向前傳遞過程中網絡的權值是固定不變的,每一層神經元的狀態只影響下一層神經元的狀態.如果在輸出層不能得到期望的輸出,那么輸入誤差信號反向傳播.2誤差信號反向傳播:網絡的實際輸出與期望輸出之間的差值即為誤差信號,誤差信號由輸出端開場逐層向前傳播,這是誤差信號是反向傳播.在傳播的過程中,網絡的權值由誤差反響進展調

35、節.通過權值的不斷修正使網絡的實際輸出更接近期望輸出.圖2-6 工作信號正向傳播,誤差信號反向傳播圖2-6為多層感知器的一局部,其中有兩種信號:一是工作信號,工作信號正向傳播;二是誤差信號,誤差信號反向傳播.下面以含有兩個隱層的BP網絡為例,如圖2-7所示,具體推導BP算法.圖2-7 含有二個隱含層的BP網絡設輸入層位,即有個輸入信號,其中的任一輸入信號用表示:第1隱層為,即有個神經元,其中的任何一個神經元用表示;第二層為,即有個神經元,其中任一神經元用表示,輸出層為,即有個輸出神經元,其中任一神經元用表示.輸入層與第一隱層的突觸權值用表示;第1隱層與第2隱層的突觸權值用表示;第2隱層與輸出層

36、用的突觸權值用表示.神經元的輸入用表示,鼓勵輸出用表示,的上標表示層,下標表示層中的某個神經元,如A表示層即第1層的第個神經元輸入.設所有的神經元的鼓勵函數均用Sigmoid函數.設訓練樣本集為,對應任一訓練樣本,的實際輸出為,期望輸出為.設n為迭代次數,權值和實際輸出是n的函數.網絡輸入訓練樣本,由工作信號的正向傳播可得:輸出層第個神經元的誤差信號為定義神經元的誤差能量為,那么輸出層所有神經元的誤差能量總和為: 2-9誤差信號從后向前傳遞,在反向傳播的過程中,逐層修改聯接權值.下面計算誤差信號的反向傳播過程:1隱層與輸出層之間的權值修正量.BP算法中權值的修正量與誤差絕對值的偏微分成正比,即

37、:因為又,那么設局部梯度2-10當鼓勵函數為邏輯函數,即從而有那么 2-11 根據Delta學習規那么,的修正量為 2-12式中,是學習步長,可由式2-11求得,可由正向傳播求得.那么下一次的迭代時隱層上任一節點與輸出層上任一節點之間的權值為 2-132隱層與隱層之間的權值修正量: 2-14與式2-14相類似,局部梯度為 2-15因為 2-16又 那么 2-17由式2-15和式2-17得將式2-10代入上式得 2-18式中可由式2-11求得,.為隱含層與輸出層任一節點之間的權值,已由式2-13求得.所以 2-19那么下一次迭代時,隱層上任一節點與隱層上任一節點之間的權值為 2-203與隱層和隱

38、層之間的權值修正量的推導方法一樣,輸入層上任一節點與隱層任一節點之間權值的修正量為 2-21其中 2-22式中可由式3-17求出,.為隱層與隱層之間任一節點之間的權值,已由式2-20求得.那么下一次迭代時,輸入層上任一節點與隱層上任一節點之間的權值為 2-232.3.3 BP網絡的MATLAB仿真程序設計的 基本方法 BP網絡設計主要包括輸入層、隱層、輸出層及各層之間的傳輸函數幾個方面.網絡層數大多數通用的神經網絡都預先確定了網絡的層數,而BP網絡可以包括不同的隱層.但理論上已經證明,在不限隱層節點數的情況下,兩層只有一個隱層的BP網絡可以實現任意非線性映射.在模式樣本相對較少的情況下,較少的

39、隱層節點,可以實現模式樣本空間的超平面劃分,此時,選擇兩層BP網絡就可以了;當模式樣本數很多時,減少網絡規模,增加一個隱層是必要的,但BP網絡隱層數一般不超過兩層.輸入層的節點數輸入層起緩沖存儲器的作用,它接收外部的輸入數據,因此其節點數取決于輸入矢量的維數.比方,當把大小的圖像作為輸入數據時,輸入節點數將為1024個.輸出層的節點數輸出層的節點數取決于兩個方面,輸出數據類型和表示該類型所需要的數據大小.當BP網絡用于模式分類時,以二進制形式來表示不同模式的輸出結果,那么輸出層的節點數可根據待分類模式數來確定.假設設待分類模式的總數為,那么有兩種方法確定輸出層的節點數:節點數即為待分類模式總數

40、,此時對應第個待分類模式的輸出為即第個節點輸出為1,其余為0.而以輸出全為0表示拒識,即所輸入的模式不屬于待分類模式中的任一種模式.節點數為個.這種輸出方式是種輸出模式的二進制編碼.隱層的節點數一個具有無限隱層節點的兩層BP網絡可以實現任意從輸入到輸出的非線性映射.但對于有限個輸入模式到輸出模式的映射,并不需要無限個隱層節點,這就涉及到如何選擇隱層節點數的問題,而這一問題的復雜性,即到至今為止,尚未找到一個很好的解析式,隱層節點數往往根據前人設計所得的經歷和自己進展試驗來確定.一般認為,隱層節點數與求解問題的要求、輸出單元多少都有直接的聯系.另外,隱層節點數太多會導致學習時間過長;而節點數太少

41、,容差性差,識別未經學習的樣本能力低,所以必須綜合多方面因素進展時設計.傳輸函數通常采用型函數:在某些特定情況下,還可能采用純線性函數.如果BP網絡最后一層是函數,那么整個函數的輸出就限制在一個較小的范圍內之間的任意連續量;如果BP網絡的最后一層是純線性函數,那么整個網絡的輸出可以是任意值. 創立和訓練BP的MATLAB程序如下:clear all%定義輸入向量和目標向量p=1 2;-1 1;-2 1;4 0;t=0.2 0.8 0.8 0.2;%創立BP網絡和定義訓練函數及參數net=newff(-1 1;-1 1,5 1,logsig logsig,taingd);net.trainPar

42、am.goal=0.001;net.trainParam.epochs=5000;%訓練神經網絡net,tr=train(net,p,t);%輸出訓練后的權值和閥值iw1=net.IW1b1=net.b1lw2=net.LW2b2=net.b2神經網絡在數學建模中的應用3.1神經網絡算法在非線性方程與微分方程方面的應用3.1.1 非線性函數的逼近使用神經網絡逼近非線性函數,繪制非線性函數,并產生網絡訓練數據點.解:非線性神經網絡的輸出函數為非線性傳遞函數purelin,其輸出可以為任意數值,因此非線性神經網絡應用范圍非常廣泛,可以應用于非線性系統擬合、函數逼近、系統識別等方面.%matlab程

43、序x=-2:.01:1;y=2*x.6+3*x.5+3*x.3-2*x.2;p=x(1:15:end);t=y(1:15:end);plot(x,y,p,t,ko)legend(逼近函數,網絡訓練點)其中,數據作為線性神經網絡的訓練數據點集,程序運行結果如圖3-1所示.使用newlind函數訓練線性神經網絡:q=length(y);r=zeros(6,q);r(1,2:q)=y(1,1:(q-1);r(2,3:q)=y(1,1:(q-2);r(3,4:q)=y(1,1:(q-3);r(4,5:q)=y(1,1:(q-4);r(5,6:q)=y(1,1:(q-5);r(6,7:q)=y(1,1:

44、(q-6);net=newlind(r,y);a=sim(net,r);figureplot(x,y,x,a,k-o)legend(給定輸入信號,網絡輸出信號)運行結果如圖3-1所示.圖3-1 非線性逼近函數和網絡訓練圖3-2 線性神經網絡非線性曲線逼近結果3.1.2線性神經網絡逼近函數使用newlin函數構建線性神經網絡逼近函數:首先,產生輸入訓練樣本和訓練目標樣本.%matlab程序time1=0:.01:2;time2=2:.01:4;time3=4:.01:6;time=time1 time2 time3;t=cos(time1*pi) cos(time2*3*pi) cos(time

45、3*5*pi);t=con2seq(t); %將向量轉化為序列cell向量p=t; %輸出向量等于給定輸出向量使用newlin函數構建線性神經網絡,并使用adapt函數訓練網絡.lr=0.1;delays=1 2 3 4 5 6;net=newlin(minmax(cat(2,p:),1,delays,lr);net,a,e=adapt(net,p,t);繪制網格輸出信號和給定信號以及殘差信號曲線.plot(time,cat(2,p:),time,cat(2,a:),k-o)legend(給定輸入信號,網格輸出信號)figureplot(time,cat(2,e:)title(誤差曲線) 結果

46、如圖3-3和圖3-4所示.圖3-3 使用newlin函數進展逼近效果曲線圖3-4 newlin函數逼近的誤差圖下面使用實例演示newlind函數的使用.首先,產生輸入訓練樣本和訓練目標樣本.%matlab程序time1=0:.01:2;time2=2:.01:4;time3=4:.01:6;time=time1 time2 time3;t=cos(time1*pi) cos(time2*3*pi) cos(time3*5*pi);q=length(t);p=zeros(6,q);p(1,2:q)=t(1,1:(q-1);p(2,3:q)=t(1,1:(q-2);p(3,4:q)=t(1,1:(

47、q-3);p(4,5:q)=t(1,1:(q-4);p(5,6:q)=t(1,1:(q-5);p(6,7:q)=t(1,1:(q-6);使用newlind函數設計線性層.net=newlind(p,t);a=sim(net,p);plot(time,t,time,a,k-o)legend(給定輸入信號,網絡輸出信號)figureplot(time,a-t)title(誤差曲線) 線性層網絡函數逼近效果如圖3-5和圖3-6所示.圖3-5線性層設計函數newlind函數逼近效果圖3-6線性層設計函數newlind函數逼近誤差圖3.1.3基于神經網絡定積分計算模型人工神經網絡的主要特點是其非線性映射

48、能力,這種能力使得神經網絡能夠逼近任何給定的連續函數.從應用的角度來看,一個人工神經網絡是根據某種“目標而構造的,這樣的目標一般情形下是一個多元或一元函數,稱之為“目標函數,可通過對權值的學習,使得目標函數盡可能逼近于人們理想中目標函數.基于這些思想,提出了一種基于積分定義的神經網絡模型.現我們來確定學習訓練樣本數據,首先對訓練樣本數據作預處理:假設被積在區間上有種分法,其中劃分為:,令,其中:,那么學習訓練樣本數據集為,其中為積分的準確值.那么,基于積分定義的神經網絡求解數值積分模型如圖3-7所示.圖3-7 求解數值積分模型其中為神經網絡權值,設神經網絡的權值矩陣為:,其中,;鼓勵函數為恒等

49、函數,閥值取0,那么該網絡輸出定義誤差代價函數:,其中為訓練樣本點數,為被積函數.設誤差矩陣為,那么有性能指標:為Euclidean范式的平方.根據梯度下降法學習規那么,故權值調整公式如下:其中為學習效率,且.基于神經網絡的定積分學習算法神經網絡學習的目標就是對權值的學習,參照一般神經網絡的學習過程,那么,神經網絡求積分的學習步驟如下:step1 獲取神經網絡訓練樣本集:;隨機產生網絡權值,;給定誤差精度;令.step2 計算網絡輸出:step3 計算誤差函數:step4 計算性能指標:step5 計算學習率:step6 權值調整:step7 如果樣本集未訓練完,返回step2重復上述步驟;否

50、那么,判斷性能指標是否,如果是,令,返回step2重復上述步驟,否那么,完畢網格訓練,輸出網格權值:.如求解定積分,準確到8位有效數字.MATLAB編程實現:%定積分函數function y=f(x)y=exp(x).*cos(100.*x);clc;format longa=0;b=pi; %a,b為積分區間tol=0.00000001; %tol為準確度J=2*tol;m=20; %將區間a,b分為m+1個不等距的區間p=6.389; %p為定積分的準確值n=50; %n為訓練樣本個數X=zeros(m+1,n);x=zeros(m,n);c=zeros(m,n);w=zeros(m,n)

51、;X(1,:)=a;X(m+1,:)=b;for i=1:nX(2,i)=a+0.1*rand;X(m,i)=b-0.1*rand;endfor i=3:(m-1)for j=1:nX(i,j)=X(2,j)+(X(m,j)-X(2,j)*rand;endendX=sort(X);for i=1:mfor j=1:nx(i,j)=X(i+1,j)-X(i,j);endendx;for i=1:mfor j=1:nc(i,j)=X(i,j)+x(i,j)*rand;endendc;epoch=0;TT=;while JtolJ=0;epoch=epoch+1;for k=1:nt=x(:,k);

52、w=f(c(:,k); %w為網絡權值y=w*t;EK=p-y;u=1./(abs(t*(df(c(:,k)2; %學習率u的取值c(:,k)=c(:,k)+u*(p-y)*t*(df(c(:,k);J=J+sum(EK.2)/2;endTT(epoch)=J;Jif J0; %求感知器閾值激發后的輸出,F表示式2-5中的y(k) F(1,i)=1; else,F(1,i)=0; end end %一次分類循環完畢 if all(F=T) %感知器的輸出F和目標T不等時修正權值陣和閾值 break enddW=(T-F)*X;E=0.01;0.01;0.0;0.0;0.01;0.01;0.01

53、;0.01; %dC=0.1*(T-F)*E,表示閾值不修正W=W+dW; Wz(:,j)=W; %存儲分類過程中的動態權值%C=C+dC; %表示閾值不修正Y=W*X+C;end %循環完畢Wz %打印分類過程中的動態權值 %開場繪圖plotpv(X,T); %繪點plotpc(W,C); %繪分割線grid onxlabel(x1),ylabel(x2) 2感知器分類結果如圖3-12所示.圖3-12 例2-1單神經元感知器分類結果圖中,“o代表目標向量中的“0,“+代表目標向量中的“1,橫軸x1表示樣本,縱軸x2表示樣本.感知器的參數.感知器的權值矩陣初值Wc、閾值初值C和分類過程中的動態

54、權值矩陣Wz如下:Wc = -0.1000 0.2000C = 0.9003Wz =0.7000 1.5000 1.7000 2.2000 2.4000 2.6000 2.8000 3.3000 3.5000 3.7000 4.2000 3.9000 4.4000 4.1000 從程序看,分類循環次數M設置為20次;從打印出的分類過程中的動態權值矩陣Wz來看,Wz只有5組權值,說明程序之循環了5次就滿足了分類的誤差要求:4程序分析. 在程序中權值矩陣的初值Wc和閾值初值可以分別采用W=rands(S,R);Wc=W 和C=rands(S,1)產生隨機數,也可以直接設置隨機小數.程序中Wc采用置

55、隨機小數,而閾值初值C采用產生隨機數指令實現.如果Wc和C均采用rands指令產生隨機數實現,也可以得到類似圖3-6所示的分類結果,讀者不妨一試. 本例的樣本為隨機數,無量綱,無規律.目標向量正好與樣本巧合,才得到了圖3-6所示的分類結果.如果目標向量隨機給定,如,那么該程序無法分類,相當于對線性不可分的樣本分類,單神經元感知器無能為力如例2-2.樣本矩陣同上例,隨機目標向量T=1,0,0,1,0,1,0,0.解 clearX=-0.5,-0.5,0.3,0.1,-0.1,0.8,0.2,0.3;0.3,-0.2,-0.6,0.1,-0.5,1.0,0.3,0.9;T=1,0,0,1,0,1,

56、0,0;M=20;R,Q=size(X); %R=2;Q=8為X矩陣的維數S,Q=size(T); %S=1;Q=8為T矩陣的維數%W=rands(S,R); %根據輸入樣本X和目標向量T的維數產生隨機權值陣W%初值W=-0.1 0.2;Wc=W %打印權值的初值C=rands(S,1); %產生隨機閾值初值C %打印隨機產生的閾值初值Y=W*X+C; %計算感知器輸出for j=1:M %循環開場 for i=1:8 %對感知器輸出分類 if Y(1,i)0; %求感知器閾值激發后的輸出,F表示式3-8)中的y(k) F(1,i)=1; else,F(1,i)=0; end end %一次分

57、類循環完畢 if all(F=T) %感知器的輸出F和目標T不等時修正權值陣和閾值 break enddW=(T-F)*X;E=0.01;0.01;0.0;0.0;0.01;0.01;0.01;0.01; %dC=0.1*(T-F)*E,表示閾值不修正W=W+dW; Wz(:,j)=W; %存儲分類過程中的動態權值%C=C+dC; %表示閾值不修正Y=W*X+C;end %循環完畢Wz %打印分類過程中的動態權值 %開場繪圖plotpv(X,T); %繪點plotpc(W,C); %繪分割線grid onxlabel(x1),ylabel(x2) 2感知器分不開類的結果如圖3-13所示.圖3-

58、13 感知器分不開類的結果3感知器的參數.感知器的權值矩陣初值Wc、閾值初值C和分類過程中的動態權值矩陣Wz如下:Wc = -0.1000 0.2000C = -0.5377Wz = 0.3000 -0.6000 0 -0.7000 -0.3000 -0.5000 -0.7000 -0.3000 -0.5000 -0.4000 -0.6000 -0.2000由圖2-4可知,隨機目標向量與樣本規律不同,單神經元感知器不能分類.如過輸入樣本具有物理量綱,并對樣本從小到大或從大到小排列,目標向量要符合樣本的排列規律,即使目標向量在一定范圍內變化,那么分類問題無疑可實現.3.4.2 蠓蟲分類問題生物學

59、家試圖對兩類蠓蟲與進展鑒別,依據的資料是蠓蟲的觸角和翅膀的長度,已經測得9只和6只的數據,(觸角長度用表示,翅膀長度用表示)具體數據為:;現需要解決二個問題:1如何憑借原始資料(15 對數據,被稱之為學習樣本)制定一種方法,正確區分兩類蠓蟲;2依據確立的方法,對題目提供的三個樣本:(1.24,1.80),(1.28,1.84),(1.40,2.04)加以識別.解:我們使用神經網絡來實現分類蠓蟲問題首先,輸入訓練樣本、訓練目標樣本及測試樣本:%輸入向量p=1.24 1.36 1.38 1.38 1.38 1.40 1.48 1.54 1.56 1.14 1.18 1.20 1.26 1.28 1

60、.30;1.72 1.74 1.64 1.82 1.90 1.70 1.82 1.82 2.08 1.78 1.96 1.86 2.00 2.00 1.96;%輸出向量t=1 1 1 1 1 1 1 1 1 0 0 0 0 0 0;s=1.24 1.28 1.40;1.80 1.84 2.04; 使用newff函數建設BP神經網絡,并且使用訓練樣本數據訓練網絡:net=newff(minmax(p),5,1,logsig,purelin,traingdx);net.trainParam.show=50;net.trainParam.lr=0.1;net.trainParam.lr_inc=1.

溫馨提示

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

評論

0/150

提交評論