BP神經網絡擬合函數_第1頁
BP神經網絡擬合函數_第2頁
BP神經網絡擬合函數_第3頁
BP神經網絡擬合函數_第4頁
BP神經網絡擬合函數_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

BP神經網絡用于函數擬合的實驗一、實驗目的本實驗規定掌握前向型神經網絡的基本工作原理及運用反向傳輸擬定權系數的辦法,并能在MATLAB仿真環境下設計對應的神經網絡,實現對非線性函數的逼近與擬合,并分析影響函數擬合效果的有關因素。二、實驗規定設計神經網絡的基本構造與激勵函數,實現對非線性函數y=sin(x)的逼近與擬合,并分析影響函數擬合效果的有關參數(涉及激勵函數的選擇sigmoid、線性函數、權系數的初值、步長的大小、訓練樣本的多少等),并對比實驗效果。三、實驗環節1.擬定神經網絡的構造本次實驗采用前向型BP神經網絡,神經元分層排列,每一層的神經元只接受前一層神經元的輸入。輸入模式通過各層的次序變換后,得到輸出層輸出。各神經元之間不存在反饋。該實驗神經網絡含輸入層和輸出層兩層神經元,其中輸入層含六個神經元,輸出層含一種神經元。輸入信號傳輸到輸入層,在輸出層得到擬合成果。擬定采用的激勵函數、擬合辦法選擇激勵函數為sigmoid的函數,因其便于求導,且值域在(0,1)之間,含有較好的收斂特性。擬合辦法采用梯度下降法,該辦法使實驗數值沿梯度方向增加有限步長,避免了盲目搜索,提高搜索效率。訓練流程初始化各參數開始訓練計算誤差計算廣義誤差調節連接權系數,直到誤差不大于設定值編寫程序實現對非線性函數y=sin(x)的逼近與擬合算法流程圖如圖4.1所示。圖4.1算法流程圖四、實驗成果及分析通過BP網絡學習逼近sin(x)函數的實驗發現,不同的初值對逼近效果有較大影響。權系數初值隨機選用時,多次運行程序,得到一組較好的擬合成果(見圖1),其權系數為w1=[-2.9880,-1.9267,-1.3569,-1.5064,-0.6377,-2.3899]w2=[2.0316,2.1572,-1.1427,-1.3108,-0.6328,-1.8135],閾值yw1=[-11.3291,-4.0186,-6.6926,-7.6080,-0.5955,-2.1247],yw2=-0.4377。圖SEQ圖\*ARABIC1固定選用初值為較好的擬合成果的權系數w1,w2及閾值yw1,yw2,變化其學習步長,發現適宜步長能夠使網絡擬合得更加好,但過小及過大的步長都會加大誤差(見圖2.1,圖2.2,圖2.3),圖2.1設立的步長為0.2,最后擬合誤差在0.1左右,圖2.2設立的步長為0.02,最后擬合誤差靠近0.02,圖2.3設立的步長為0.002,最后擬合誤差在0.03左右。由此可見,步長在0.02時,擬合得最佳,誤差最低。圖SEQ圖\*ARABIC2.1圖2.2圖2.3固定選用初值為較好的擬合成果的權系數w1,w2及閾值yw1,yw2,取步長為0.02,變化樣本數n,發現適宜樣本數能夠使網絡擬合得更加好(見圖3.1,圖3.2,圖3.3),圖3.1設立的樣本數為10,最后擬合誤差即使趨近于0,但通過圖像我們能夠直觀地看出,樣本數過少使BP網絡擬合出的是分段函數,而不是平滑的sin(x),圖3.2設立的樣本數為30,最后擬合誤差靠近0.02,圖2.3設立的樣本數為300,最后擬合誤差靠近0.004,但是通過逼近圖像能夠直觀看到,300的樣本數擬合程度并不如30樣本數的好。可見,樣本數為30時,擬合得最佳,誤差最低。圖SEQ圖\*ARABIC3.1圖3.2圖3.3固定選用初值為較好的擬合成果的權系數w1,w2及閾值yw1,yw2,取步長為0.02,樣本數為30,變化學習次數,發現學習次數越多,BP網絡擬合越好,但是達成一定程度后,由于學習規定的存在(均方差不大于0.008),學習次數對擬合性的影響便會達成飽和,增加學習次數對擬合程度影響不大(見圖4.1,圖4.2,圖4.3)。圖4.1設立的學習次數為3000,最后擬合誤差靠近0.02,圖4.2設立的學習次數為30000,最后擬合誤差0.02左右,圖4.3設立的學習次數為300000,最后擬合誤差還是在0.02左右。可見,學習次數為30000時,就已經足夠。圖SEQ圖\*ARABIC4.1圖4.2圖4.3通過以上實驗對比發現,選用初值為較好的擬合成果的權系數w1,w2及閾值yw1,yw2,取步長為0.02,樣本數為30,學習次數為30000,在不變化BP網絡內部構造的狀況下擬合程度最佳。變化BP網絡構造,把第一層6個神經元改為3個神經元,權系數和閾值初值隨機選用,步長0.02,樣本數30,選用學習次數為3000時(如圖5.1),能夠發現擬合度十分差,而最大學習次數到30000時(如圖5.2),擬合程度改善不少,最后誤差靠近于0,進一步證明學習次數越大,BP網絡擬合程度比較好。圖SEQ圖\*ARABIC5.1圖5.2變化BP網絡構造,把第二層神經元的激勵函數改為sigmoid函數,第一層神經元仍然為6個,權系數和閾值初值隨機選用,步長0.02,樣本數30,選用學習次數為3000時(如圖6.1),能夠發現擬合度十分差,而最大學習次數到30000時(如圖6.2),擬合程度改善不少。但激勵函數改為sigmoid函數后,發現BP網絡只能擬合sin(x)的前半周期,后半周期輸出都為0,這是由于sigmoid函數的值域為[0,1],而sin(x)函數的值域為[-1,1],因此輸出層的激勵函數不能為sigmoid函數,否則無法擬合sin后半周期。圖SEQ圖\*ARABIC6.1圖6.2通過以上實驗對比,第一層6個神經元,激勵函數為sigmoid函數,第二層1個神經元,激勵函數為線性函數,步長0.02,樣本數30,選用學習次數為30000時,BP網絡擬合sin函數程度最佳。四、MATLAB編程代碼functionbpsin%用BP神經網絡擬合sin(x)函數,兩層神經元,第一層六個,激勵函數為sigmoid函數,第二層一種,激勵函數為線性函數。%********初始化*******************************l=0.2;%學習步長n=30;%輸入樣本數cell=6;%第一層神經元數times=3000;%學習次數x=(linspace(0,2*pi,n));%選用樣本點t=sin(x);%學習擬合的函數w1=rand(cell,1)*0.05;%第一層連接權系數的初始值w2=rand(1,cell)*0.05;%第二層連接權系數的初始值yw1=rand(cell,1)*0.05;%第一層閾值初始值yw2=rand*0.05;%第二層閾值初始值y=rand(1,n)*0.05;%輸出初始值counts=1;%計數e=zeros(1,times);%均方差%***************學習過程*************************fori=1:timesei=0;fora=1:n%遍歷樣本net1=w1*x(a)-yw1;out=logsig(net1);%第一層輸出net2=w2*out-yw2;%y(a)=logsig(net2);y(a)=net2;%第二層輸出(y)%det2=(t(a)-y(a))*y(a)*(1-y(a));det2=(t(a)-y(a));%det2det1=((det2*(w2)').*out).*(1-out);w1=w1+det1*x(a)*l;%更新權系數w2=w2+(det2*out)'*l;yw1=-det1*l+yw1;yw2=-det2*1+yw2;ei=ei+det2^2/2;%累積誤差e(i)=ei;endifei<0.008break;endcounts=counts+1;end%************逼近曲線****************fora=1:nnet1=w1*x(a)-yw1;out=logsig(net1);net2=w2*out-yw2;%y(a)=logsig(net2);y(a)=net2;end%***********畫圖*******************subplot(2,1,1)plot(x,t,'b-',x,y,'k*-');%畫sin函數及bp擬合圖gridon;title('BPmethod,y=sin(x)');xlabel('x');ylabel('y=si

溫馨提示

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

評論

0/150

提交評論