bp神經(jīng)網(wǎng)絡(luò)matlab工具箱和matlab實現(xiàn)使用實例

bp神經(jīng)網(wǎng)絡(luò)matlab工具箱和matlab實現(xiàn)使用實例

ID:23180314

大小:66.19 KB

頁數(shù):5頁

時間:2018-11-05

bp神經(jīng)網(wǎng)絡(luò)matlab工具箱和matlab實現(xiàn)使用實例_第1頁
bp神經(jīng)網(wǎng)絡(luò)matlab工具箱和matlab實現(xiàn)使用實例_第2頁
bp神經(jīng)網(wǎng)絡(luò)matlab工具箱和matlab實現(xiàn)使用實例_第3頁
bp神經(jīng)網(wǎng)絡(luò)matlab工具箱和matlab實現(xiàn)使用實例_第4頁
bp神經(jīng)網(wǎng)絡(luò)matlab工具箱和matlab實現(xiàn)使用實例_第5頁
資源描述:

《bp神經(jīng)網(wǎng)絡(luò)matlab工具箱和matlab實現(xiàn)使用實例》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、BP神經(jīng)網(wǎng)絡(luò)matlab工具箱和matlab實現(xiàn)使用實例經(jīng)過最近一段時間的神經(jīng)網(wǎng)絡(luò)學習,終于能初步使用matlab實現(xiàn)BP網(wǎng)絡(luò)仿真試驗。這里特別感謝研友sistor2004的帖子《自己編的BP算法(工具:matlab)》和研友wangleisxcc的帖子《用C++,Matlab,F(xiàn)ortran實現(xiàn)的BP算法》前者幫助我對BP算法有了更明確的認識,后者讓我對matlab下BP函數(shù)的使用有了初步了解。因為他們發(fā)的帖子都沒有加注釋,對我等新手閱讀時有一定困難,所以我把sistor2004發(fā)的程序稍加修改后加

2、注了詳細解釋,方便新手閱讀。%嚴格按照BP網(wǎng)絡(luò)計算公式來設(shè)計的一個matlab程序,對BP網(wǎng)絡(luò)進行了優(yōu)化設(shè)計%yyy,即在o(k)計算公式時,當網(wǎng)絡(luò)進入平坦區(qū)時(<0.0001)學習率加大,出來后學習率又還原%v(i,j)=v(i,j)+deltv(i,j)+a*dv(i,j);動量項clearallclcinputNums=3;%輸入層節(jié)點outputNums=3;%輸出層節(jié)點hideNums=10;%隱層節(jié)點數(shù)maxcount=20000;%最大迭代次數(shù)samplenum=3;%一個計數(shù)器,無意義

3、precision=0.001;%預(yù)設(shè)精度yyy=1.3;%yyy是幫助網(wǎng)絡(luò)加速走出平坦區(qū)alpha=0.01;%學習率設(shè)定值a=0.5;%BP優(yōu)化算法的一個設(shè)定值,對上組訓練的調(diào)整值按比例修改字串9error=zeros(1,maxcount+1);%error數(shù)組初始化;目的是預(yù)分配內(nèi)存空間errorp=zeros(1,samplenum);%同上v=rand(inputNums,hideNums);%3*10;v初始化為一個3*10的隨機歸一矩陣;v表輸入層到隱層的權(quán)值deltv=zeros(i

4、nputNums,hideNums);%3*10;內(nèi)存空間預(yù)分配dv=zeros(inputNums,hideNums);%3*10;w=rand(hideNums,outputNums);%10*3;同Vdeltw=zeros(hideNums,outputNums);%10*3dw=zeros(hideNums,outputNums);%10*3samplelist=[0.1323,0.323,-0.132;0.321,0.2434,0.456;-0.6546,-0.3242,0.3255];%3

5、*3;指定輸入值3*3(實為3個向量)expectlist=[0.5435,0.422,-0.642;0.1,0.562,0.5675;-0.6464,-0.756,0.11];%3*3;期望輸出值3*3(實為3個向量),有導(dǎo)師的監(jiān)督學習count=1;while(count<=maxcount)%結(jié)束條件1迭代20000次c=1;while(c<=samplenum)fork=1:outputNumsd(k)=expectlist(c,k);%獲得期望輸出的向量,d(1:3)表示一個期望向量內(nèi)的值e

6、ndfori=1:inputNumsx(i)=samplelist(c,i);%獲得輸入的向量(數(shù)據(jù)),x(1:3)表一個訓練向量字串4end%Forward();forj=1:hideNumsnet=0.0;fori=1:inputNumsnet=net+x(i)*v(i,j);%輸入層到隱層的加權(quán)和∑X(i)V(i)endy(j)=1/(1+exp(-net));%輸出層處理f(x)=1/(1+exp(-x))單極性sigmiod函數(shù)endfork=1:outputNumsnet=0.0;forj

7、=1:hideNumsnet=net+y(j)*w(j,k);endifcount>=2&&error(count)-error(count+1)<=0.0001o(k)=1/(1+exp(-net)/yyy);%平坦區(qū)加大學習率elseo(k)=1/(1+exp(-net));%同上endend%BpError(c)反饋/修改;errortmp=0.0;fork=1:outputNumserrortmp=errortmp+(d(k)-o(k))^2;%第一組訓練后的誤差計算enderrorp(c)=

8、0.5*errortmp;%誤差E=∑(d(k)-o(k))^2*1/2%end%Backward();fork=1:outputNumsyitao(k)=(d(k)-o(k))*o(k)*(1-o(k));%輸入層誤差偏導(dǎo)字串5endforj=1:hideNumstem=0.0;fork=1:outputNumstem=tem+yitao(k)*w(j,k);%為了求隱層偏導(dǎo),而計算的∑endyitay(j)=tem*y(j)*(1-y(j));%隱層

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。