Matlab_中神經(jīng)網(wǎng)絡(luò)算法指令newff的使用_第1頁(yè)
Matlab_中神經(jīng)網(wǎng)絡(luò)算法指令newff的使用_第2頁(yè)
Matlab_中神經(jīng)網(wǎng)絡(luò)算法指令newff的使用_第3頁(yè)
Matlab_中神經(jīng)網(wǎng)絡(luò)算法指令newff的使用_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、Matlab中神經(jīng)網(wǎng)絡(luò)算法指令newff的使用設(shè)P,T是訓(xùn)練樣本,X,Y是測(cè)試樣本;net=newrb(P,T,err_goal,spread);%建立網(wǎng)絡(luò)q=sim(net,p);e=q-T;plot(p,q);%畫訓(xùn)練誤差曲線q=sim(net,X);e=q-Y;plot(X,q);%畫測(cè)試誤差曲線訓(xùn)練前饋網(wǎng)絡(luò)的第一步是建立網(wǎng)絡(luò)對(duì)象。函數(shù)newff建立一個(gè)可訓(xùn)練的前饋網(wǎng)絡(luò)。這需要4個(gè)輸入?yún)?shù)。第一個(gè)參數(shù)是一個(gè)Rx2的矩陣以定義R個(gè)輸入向量的最小值和最大值。第二個(gè)參數(shù)是一個(gè)設(shè)定每層神經(jīng)元個(gè)數(shù)的數(shù)組。第三個(gè)參數(shù)是包含每層用到的傳遞函數(shù)名稱的細(xì)胞數(shù)組。最后一個(gè)參數(shù)是用到的訓(xùn)練函數(shù)的名稱。舉個(gè)例子

2、,下面命令將創(chuàng)建一個(gè)二層網(wǎng)絡(luò)。它的輸入是兩個(gè)元素的向量,第一層有三個(gè)神經(jīng)元(3),第二層有一個(gè)神經(jīng)元(1)。第一層的傳遞函數(shù)是tan-sigmoid,輸出層的傳遞函數(shù)是linear。輸入向量的第一個(gè)元素的范圍是-1到2-12,輸入向量的第二個(gè)元素的范圍是0到505,訓(xùn)練函數(shù)是traingd。net=newff(-12;05,3,1,tansig,purelin,traingd);這個(gè)命令建立了網(wǎng)絡(luò)對(duì)象并且初始化了網(wǎng)絡(luò)權(quán)重和偏置,因此網(wǎng)絡(luò)就可以進(jìn)行訓(xùn)練了。我們可能要多次重新初始化權(quán)重或者進(jìn)行自定義的初始化。下面就是初始化的詳細(xì)步驟。在訓(xùn)練前饋網(wǎng)絡(luò)之前,權(quán)重和偏置必須被初始化。初始化權(quán)重和偏置的工

3、作用命令init來(lái)實(shí)現(xiàn)。這個(gè)函數(shù)接收網(wǎng)絡(luò)對(duì)象并初始化權(quán)重和偏置后返回網(wǎng)絡(luò)對(duì)象。下面就是網(wǎng)絡(luò)如何初始化的:net=init(net);我們可以通過設(shè)定網(wǎng)絡(luò)參數(shù)net.initFcn和net.layeri.initFcn這一技巧來(lái)初始化一個(gè)給定的網(wǎng)絡(luò)。net.initFcn用來(lái)決定整個(gè)網(wǎng)絡(luò)的初始化函數(shù)。前饋網(wǎng)絡(luò)的缺省值為initlay,它允許每一層用單獨(dú)的初始化函數(shù)。設(shè)定了net.initFcn,那么參數(shù)net.layeri.initFcn也要設(shè)定用來(lái)決定每一層的初始化函數(shù)。對(duì)前饋網(wǎng)絡(luò)來(lái)說(shuō),有兩種不同的初始化方式經(jīng)常被用到:initwb和initnw。initwb函數(shù)根據(jù)每一層自己的初始化參數(shù)(n

4、et.inputWeightsi,j.initFcn)初始化權(quán)重矩陣和偏置。前饋網(wǎng)絡(luò)的初始化權(quán)重通常設(shè)為rands,它使權(quán)重在-1到1之間隨機(jī)取值。這種方式經(jīng)常用在轉(zhuǎn)換函數(shù)是線性函數(shù)時(shí)。initnw通常用于轉(zhuǎn)換函數(shù)是曲線函數(shù)。它根據(jù)Nguyen和WidrowNgWi90為層產(chǎn)生初始權(quán)重和偏置值,使得每層神經(jīng)元的活動(dòng)區(qū)域能大致平坦的分布在輸入空間。它比起單純的給權(quán)重和偏置隨機(jī)賦值有以下優(yōu)點(diǎn):減少神經(jīng)元的浪費(fèi)(因?yàn)樗猩窠?jīng)元的活動(dòng)區(qū)域都在輸入空間內(nèi))。有更快的訓(xùn)練速度(因?yàn)檩斎肟臻g的每個(gè)區(qū)域都在活動(dòng)的神經(jīng)元范圍中)。初始化函數(shù)被newff所調(diào)用。因此當(dāng)網(wǎng)絡(luò)創(chuàng)建時(shí),它根據(jù)缺省的參數(shù)自動(dòng)初始化。ini

5、tEditedbyFoxitReaderCopyright(C)byFoxitSoftwareCompany,2005-2008ForEvaluationOnly.不需要單獨(dú)的調(diào)用。可是我們可能要重新初始化權(quán)重和偏置或者進(jìn)行自定義的初始化。例如,我們用newff創(chuàng)建的網(wǎng)絡(luò),它缺省用initnw來(lái)初始化第一層。如果我們想要用rands重新初始化第一層的權(quán)重和偏置,我們用以下命令:net.layers1.initFcn=initwb;net.inputWeights1,1.initFcn=rands;net.biases1,1.initFcn=rands;net.biases2,1.initFcn

6、=rands;net=init(net);IW:輸入層到隱含層的權(quán)重矩陣LW:隱含層和輸出層間的權(quán)重矩陣b:閥值向量如網(wǎng)絡(luò)為net,輸入層和輸出均為一個(gè)接點(diǎn)情況下,則用net.IWl,l可以看到第一個(gè)輸入接點(diǎn)到第一隱含層的權(quán)重向量;net.LW2,l可以看到隱含層到輸出層的權(quán)值向量;net.b1,1是隱含層的閥值向量,net.b2,1是輸出接點(diǎn)的閥值;在多輸入輸出下先用net.IWnet.LWnet.b查看各矩陣結(jié)構(gòu),再相應(yīng)用net.IW?,?等語(yǔ)句查到相關(guān)的向量clearall;%definetheinputandoutputp=974874527;3884661764;1316243922

7、51;183624101860;155723011578;149018772749;151312782026;107015612794;134724153306;132427461233;138314631847;128202347;t=197972428234548;%創(chuàng)建bp網(wǎng)絡(luò)和定義訓(xùn)練函數(shù)%這里是為了方便而建立一個(gè)矩陣,注意是12x2,不是3x2pr=527974;3881764;13162439;18362410;15572301;14902749;12782026;10702794;13473306;12332746;13831847;02347net=newff(pr,15,1,

8、tansigpurelin,trainlm);%這里要加入輸出層的轉(zhuǎn)移函數(shù),一般是trainlmnet.trainparam.goal=50;net.trainparam.epochs=5000;%訓(xùn)練神經(jīng)網(wǎng)絡(luò)net,tr=train(net,p,t);%輸出訓(xùn)練后的權(quán)值和閾值iw1=net.IW1;b1=net.b1;lw2=net.LW2;b2=net.b2;%存儲(chǔ)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)savenetkohlernet怎樣知道m(xù)atlab已經(jīng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)的權(quán)值、步長(zhǎng)以及闕值用matlab訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí)不需輸入權(quán)值、步長(zhǎng)以及闕值,如果我想知道m(xù)atlab已經(jīng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)的權(quán)值、步長(zhǎng)以及闕值

9、該怎末操作?訓(xùn)練好的權(quán)值、閾值的輸出方法是:輸入到隱層權(quán)值:w1=net.iw1,1隱層閾值:theta1=net.b1隱層到輸出層權(quán)值:w2=net.lw2,1;輸出層閾值:theta2=net.b2幫我看看matlab的這段程序(有關(guān)神經(jīng)網(wǎng)絡(luò)BP算法)在一位老師的講義上看到的程序,但是有些東西不太明白,請(qǐng)求幫助程序如下:TxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxclf;figur

10、e(gcf)echoon%NEWFF建立一個(gè)BP網(wǎng)絡(luò)%TRAIN對(duì)BP網(wǎng)絡(luò)進(jìn)行訓(xùn)練%SIM對(duì)BP網(wǎng)絡(luò)進(jìn)行仿真pauseP=-1:0.1:1;T=-.9602-.5770-.0729.3771.6405.6600.4609.1336-.2013-.4344-.5000-.3930-.1647.0988.3072.3960.3449.1816-.0312-.2189-.3201;plot(P,T,+);title(TrainingVectors);xlabel(InputVectorP);ylabel(TargetVectorT);pausenet=newff(minmax(P),51,tansi

11、gpurelin,traingd,learngd,sse);echooffk=pickic;ifk=2net.iw1,1=3.5000;3.5000;3.5000;3.5000;3.5000;net.b1=-2.8562;1.0774;-0.5880;1.4083;2.8722;net.lw2,1=0.2622-0.2375-0.45250.2361-0.1718;net.b2=0.1326;endnet.iw1,1net.b1net.lw2,1net.b2pauseechoonme=8000;net.trainParam.show=10;net.trainParam.goal=0.02;ne

12、t.trainParam.lr=0.01;A=sim(net,P);sse=sumsqr(T-A);fori=1:me/100ifssenet.trainparam.goal,i=i-1;break,endnet.trainParam.epochs=100;net,tr=train(net,P,T);trp(1+100*(i-1):(max(tr.epoch)+100*(i-1)=tr.perf(1:max(tr.epoch);A=sim(net,P);sse=sumsqr(T-A);plot(P,T,+);holdonplot(P,A)holdoffpauseendmessage=sprintf(Traingd,Epoch%g/%g,SS

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論