《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 基于BP神經網絡的函數逼近方法及其MATLAB實現

基于BP神經網絡的函數逼近方法及其MATLAB實現

2009-08-18
作者:蔣良孝, 李超群

  摘? 要: MATLAB軟件及其BP神經網絡工具箱函數的應用,結合一個實際的例子詳細闡述了基于BP神經網絡的函數逼近過程及其MATLAB實現方法。

  關鍵詞: 函數逼近? BP神經網絡? MATLAB軟件

?

  數值計算方法已經在各個學科領域得到了廣泛應用,并且促使新的有效數值方法不斷出現。計算工具的使用為科學計算帶來了很大的方便,但由于計算機字長的限制,許多復雜的、大規模的計算問題需簡化。神經網絡是對生物神經系統的模擬,其信息處理功能是由網絡單元(神經元)的輸入輸出特性(激活特性)、網絡的拓撲結構(神經元的連接方式)、連接權的大小(突觸聯系強度)和神經元的閾值(視作特殊的連接權)所決定的。在神經網絡的實際應用中,絕大部分的神經網絡模型使用的是BP神經網絡或其變化形式,它也是前饋神經網絡的核心部分。BP神經網絡的主要特點是非線性映射能力,這種能力使其能夠對任意非線性函數進行很好的逼近。鑒于函數逼近及BP神經網絡的這些特點,本文提出了基于BP神經網絡的函數逼近方法。此外,本文開創性地遺棄了C、C++、VC等傳統的高級編程語言,采用功能強大的MATLAB語言編程,直接調用MATLAB軟件包中的BP神經網絡工具箱函數,使程序簡捷明了,達到了事半功倍的效果。

1? BP神經網絡及其函數逼近能力

  BP神經網絡是一種單向傳播的多層前饋網絡,網絡除了有輸入輸出節點外,還有一層或多層的隱含層節點,同層節點中沒有任何連接,層間節點中實行全連接。輸入信號從輸入層節點依次傳過各隱含層節點,最后傳到輸出層節點。每層節點的輸出只影響下一層節點的輸出。各層節點的傳遞函數通常為雙曲正切S型(sigmoid)函數,但輸出層節點的傳遞函數有時為線性函數。

BP神經網絡可以看作是一個從輸入到輸出的高度非線性映射,即F:Rn→Rm,f(X)=Y。對于樣本集合:輸入xi(∈Rn)和輸出yi(∈Rm),可認為存在某一映射g使得g(xi)=yi(i=1,2,∧n)成立?,F要求出一個映射f,使得在某種意義下(通常是最小二乘意義下),f是g的最佳逼近。BP神經網絡通過對簡單的非線性函數進行數次復合,可以近似復雜的函數。Kolmogorov定理(即映射網絡存在定理)保證任一連續函數可由一個三層前向網絡實現,但它沒有提供任何構造這樣一個網絡的可行方法。通過BP定理可知,只要用一個三層BP神經網絡就可在任意希望的精度上實現任意的連續函數。但實際上,還要使用更多層的BP神經網絡,其原因是用三層BP神經網絡來實現往往需要大量的隱含層節點,而使用更多層的BP神經網絡來實現可減少隱含層節點的數目。如何選取隱含層的層數和節點數,至今還沒有確切的方法和理論,通常是憑借對學習樣本和測試樣本的誤差交叉評價的試錯法選取。

  BP神經網絡的學習過程由正向和反向傳播二部分組成。在正向傳播過程中,每一層神經元的狀態只影響到下一層神經元網格。如果輸出層不能得到期望輸出,就是實際輸出值和期望輸出值之間存在誤差,從而轉入反向傳播過程,將誤差信號沿原來的連接通路返回。通過修改各層神經元的權值,逐次地向輸入層傳播并進行計算,再進行正向傳播。這二個過程的反復運用,使得誤差信號最小。實際上,誤差達到人們所希望的要求時,網絡的學習過程就結束。

2? MATLAB軟件及其BP神經網絡工具箱函數

  為了解決數值計算與計算機仿真之間的矛盾,美國Math Works公司推出了一套高性能的數值計算和可視化軟件包MATLAB。它集數值計算、圖形計算、語言設計、計算機仿真等于一體,具有極高的編程效率。更具特色的是MATLAB集中了許多領域專家學者的智慧,成功地擴展了30多個專業領域工具箱,如生物醫學工程、圖像處理、模糊控制、神經網絡等。其中,神經網絡工具箱是MATLAB環境下開發出來的許多工具箱之一,它是以神經網絡理論為基礎,用MATLAB語言構造出典型神經網絡的工具函數。MATLAB中專門編制了大量有關BP神經網絡的工具箱函數,為BP神經網絡的應用研究提供了強有力的工具。本文用到的主要工具箱函數有:(1)神經元傳遞函數:purelin()為一線性傳遞函數,利用BP算法訓練的輸出層神經元經常采用它;tansig()為一雙曲正切S型(sigmoid)傳遞函數,用于將神經元上范圍為(-∞,+∞)的輸入值映射到區間(-1,+1)上,利用BP算法訓練的隱含層神經元中經常采用它。(2)網絡建立函數:newff()用于建立一個前饋BP神經網絡。(3)網絡訓練函數:train()用于訓練建立的BP神經網絡。(4)網絡仿真函數:sim()用于仿真訓練前后的BP神經網絡。

3? 基于BP神經網絡的函數逼近過程及其MATLAB實現

  下面將結合一個實例詳細闡述基于BP神經網絡的函數逼近過程及其MATLAB實現方法。設要逼近的非線性函數為:。

  (1)網絡建立:使用“net=newff(minmax(x),[20,1],{′tansig′′purelin′});”語句建立一個前饋BP神經網絡。該BP神經網絡只含一個隱含層,且神經元的個數為20。隱含層和輸出層神經元的傳遞函數分別為tansig和purelin。其他參數默認。

  (2)網絡訓練:使用“net=train(net,x,y);”語句訓練建立好的BP神經網絡。當然在網絡訓練之前必須設置好訓練參數。如設定訓練時間為50個單位時間,訓練目標的誤差小于0.01,用“net.trainParam.epochs=50;net.trainParam.goal=0.01;”語句實現。其他參數默認。

  (3)網絡仿真:使用“y1=sim(net,x);y2=sim(net,x);”語句仿真訓練前后的BP神經網絡。

  程序1是該例程的源代碼。由程序可知,采用功能強大的MATLAB語言編程,可直接調用MATLAB軟件包中的BP神經網絡工具箱函數。圖1為原函數與網絡訓練前后的仿真結果比較圖。由圖1可知,用工具箱函數newff建立網絡時,對權值和閾值的初始化是隨機的,所以未訓練網絡的仿真輸出效果很差,并且每次運行的結果也不相同。訓練網絡的仿真輸出曲線和原始曲線非常接近,這說明訓練后的網絡對非線性函數的逼近效果很好。網絡訓練過程中誤差隨訓練時間的變化迅速減少,在經過5個單位時間以后,網絡的誤差就達到了逼近要求(圖略)。

?

  程序1:MATLAB程序源代碼

  

  

4? 結? 論

  BP神經網絡最強大的應用之一就是函數逼近,即從訓練樣本出發,對未知函數進行非線性逼近。而網絡的拓撲結構直接影響網絡對函數的逼近能力和效果。因此,在實際應用中,應根據具體問題,選擇一個合適的網絡結構。應用BP神經網絡進行函數逼近,不僅在純數學和應用數學領域有意義,而且在工程和物理學領域也非常有用。這種逼近方式已被廣泛地應用于系統辨識與建模、信號處理及模式識別等多個方面。

?

參考文獻

1? 飛思科技產品研發中心編著.MATLAB6.5輔助神經網絡分析與設計.北京:電子工業出版社,2003

2? 廖寧放.BP神經網絡用于函數逼近的最佳隱層結構.北京理工大學學報,1998;(8)

3? 王美玲.一種用于非線性函數逼近的小波神經網絡算法仿真.北京理工大學學報,2002;(6)

4? 王強.利用人工神經網絡實現函數逼近.計算機仿真,2002;(9)

5? 劉延年.多層前向BP網絡函數逼近能力的研究.南京航空航天大學學報,1994;(1)

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 又黄又骚的网站| 久久久久久综合网天天| 精品一区二区三区四区| 国产欧美日韩亚洲| flstingextreme头交| 日韩亚洲欧美性感视频影片免费看| 亚洲综合区小说区激情区| 色香蕉在线观看网站| 国产精品久久久久aaaa| ipx-412天海翼在线播放| 日产乱码卡一卡2卡3卡.章节| 亚洲伊人久久精品影院| 男人天堂网2017| 国产va免费精品高清在线观看| 4480yy苍苍私人| 在线观看精品视频网站www| 中文无码精品一区二区三区| 有没有毛片网站| 亚洲毛片免费看| 精品中文字幕在线| 国产一级做美女做受视频| 日韩一区二三区国产好的精华液| 在线中文字幕网| 一个人hd高清在线观看| 无码人妻精品一区二区在线视频 | 韩国三级香港三级日本三级| 国产精品自在线拍国产手青青机版| 一个人看的片免费高清大全| 日产精品卡二卡三卡四卡乱码视频| 亚洲av永久无码精品水牛影视| 永久免费视频v片www| 免费看美女被靠到爽的视频| 色吊丝最新网站| 国产性夜夜春夜夜爽| 网站在线观看你懂的| 在线观看国产欧美| 一个色中文字幕| 成全视频在线观看免费高清动漫视频下载 | 人妻18毛片a级毛片免费看| 美女扒开粉嫩尿口漫画| 国产免费一区二区三区免费视频|