資源描述:
《BP神經(jīng)網(wǎng)絡(luò)的Matlab語法.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、1.數(shù)據(jù)預(yù)處理???????在訓(xùn)練神經(jīng)網(wǎng)絡(luò)前一般需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,一種重要的預(yù)處理手段是歸一化處理。下面簡(jiǎn)要介紹歸一化處理的原理與方法。(1)什么是歸一化??數(shù)據(jù)歸一化,就是將數(shù)據(jù)映射到[0,1]或[-1,1]區(qū)間或更小的區(qū)間,比如(0.1,0.9)。(2)為什么要?dú)w一化處理??<1>輸入數(shù)據(jù)的單位不一樣,有些數(shù)據(jù)的范圍可能特別大,導(dǎo)致的結(jié)果是神經(jīng)網(wǎng)絡(luò)收斂慢、訓(xùn)練時(shí)間長(zhǎng)。<2>數(shù)據(jù)范圍大的輸入在模式分類中的作用可能會(huì)偏大,而數(shù)據(jù)范圍小的輸入作用就可能會(huì)偏小。<3>由于神經(jīng)網(wǎng)絡(luò)輸出層的激活函數(shù)的值域是有限制的,因此需要將網(wǎng)絡(luò)訓(xùn)練的
2、目標(biāo)數(shù)據(jù)映射到激活函數(shù)的值域。例如神經(jīng)網(wǎng)絡(luò)的輸出層若采用S形激活函數(shù),由于S形函數(shù)的值域限制在(0,1),也就是說神經(jīng)網(wǎng)絡(luò)的輸出只能限制在(0,1),所以訓(xùn)練數(shù)據(jù)的輸出就要?dú)w一化到[0,1]區(qū)間。<4>S形激活函數(shù)在(0,1)區(qū)間以外區(qū)域很平緩,區(qū)分度太小。例如S形函數(shù)f(X)在參數(shù)a=1時(shí),f(100)與f(5)只相差0.0067。(3)歸一化算法? 一種簡(jiǎn)單而快速的歸一化算法是線性轉(zhuǎn)換算法。線性轉(zhuǎn)換算法常見有兩種形式:??????<1>y=(x-min)/(max-min) 其中min為x的最小值,max為x的最大值,輸入向
3、量為x,歸一化后的輸出向量為y。上式將數(shù)據(jù)歸一化到[0,1]區(qū)間,當(dāng)激活函數(shù)采用S形函數(shù)時(shí)(值域?yàn)?0,1))時(shí)這條式子適用。??????<2>y=2*(x-min)/(max-min)-1??????這條公式將數(shù)據(jù)歸一化到[-1,1]區(qū)間。當(dāng)激活函數(shù)采用雙極S形函數(shù)(值域?yàn)?-1,1))時(shí)這條式子適用。(4)Matlab數(shù)據(jù)歸一化處理函數(shù)? Matlab中歸一化處理數(shù)據(jù)可以采用premnmx,postmnmx,tramnmx這3個(gè)函數(shù)。<1>premnmx語法:[pn,minp,maxp,tn,mint,maxt]=premnm
4、x(p,t)參數(shù):pn:p矩陣按行歸一化后的矩陣minp,maxp:p矩陣每一行的最小值,最大值tn:t矩陣按行歸一化后的矩陣mint,maxt:t矩陣每一行的最小值,最大值作用:將矩陣p,t歸一化到[-1,1],主要用于歸一化處理訓(xùn)練數(shù)據(jù)集。<2>tramnmx語法:[pn]=tramnmx(p,minp,maxp)參數(shù):minp,maxp:premnmx函數(shù)計(jì)算的矩陣的最小,最大值pn:歸一化后的矩陣作用:主要用于歸一化處理待分類的輸入數(shù)據(jù)。<3>postmnmx語法:[p,t]=postmnmx(pn,minp,maxp,tn
5、,mint,maxt)參數(shù):minp,maxp:premnmx函數(shù)計(jì)算的p矩陣每行的最小值,最大值mint,maxt:premnmx函數(shù)計(jì)算的t矩陣每行的最小值,最大值作用:將矩陣pn,tn映射回歸一化處理前的范圍。postmnmx函數(shù)主要用于將神經(jīng)網(wǎng)絡(luò)的輸出結(jié)果映射回歸一化前的數(shù)據(jù)范圍。2.使用Matlab實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)?使用Matlab建立前饋神經(jīng)網(wǎng)絡(luò)主要會(huì)使用到下面3個(gè)函數(shù):newff:前饋網(wǎng)絡(luò)創(chuàng)建函數(shù)train:訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)sim:使用網(wǎng)絡(luò)進(jìn)行仿真?下面簡(jiǎn)要介紹這3個(gè)函數(shù)的用法。(1)newff函數(shù)<1>newff函數(shù)語法
6、???????newff函數(shù)參數(shù)列表有很多的可選參數(shù),具體可以參考Matlab的幫助文檔,這里介紹newff函數(shù)的一種簡(jiǎn)單的形式。語法:net=newff(A,B,{C},‘trainFun’)參數(shù):A:一個(gè)n×2的矩陣,第i行元素為輸入信號(hào)xi的最小值和最大值;B:一個(gè)k維行向量,其元素為網(wǎng)絡(luò)中各層節(jié)點(diǎn)數(shù);C:一個(gè)k維字符串行向量,每一分量為對(duì)應(yīng)層神經(jīng)元的激活函數(shù);trainFun:為學(xué)習(xí)規(guī)則采用的訓(xùn)練算法。表3.1BP網(wǎng)絡(luò)的常用函數(shù)表函數(shù)類型函數(shù)名稱函數(shù)用途前向網(wǎng)絡(luò)創(chuàng)建函數(shù)newcf創(chuàng)建級(jí)聯(lián)前向網(wǎng)絡(luò)Newff創(chuàng)建前向BP網(wǎng)絡(luò)lo
7、gsigS型的對(duì)數(shù)函數(shù)傳遞函數(shù)tansigS型的正切函數(shù)purelin純線性函數(shù)學(xué)習(xí)函數(shù)learngd基于梯度下降法的學(xué)習(xí)函數(shù)learngdm梯度下降動(dòng)量學(xué)習(xí)函數(shù)性能函數(shù)mse均方誤差函數(shù)msereg均方誤差規(guī)范化函數(shù)顯示函數(shù)plotperf繪制網(wǎng)絡(luò)的性能plotes繪制一個(gè)單獨(dú)神經(jīng)元的誤差曲面plotep繪制權(quán)值和閾值在誤差曲面上的位置errsurf計(jì)算單個(gè)神經(jīng)元的誤差曲面3.1.1BP網(wǎng)絡(luò)創(chuàng)建函數(shù)1)newff該函數(shù)用于創(chuàng)建一個(gè)BP網(wǎng)絡(luò)。調(diào)用格式為:net=newffnet=newff(PR,[S1S2..SN1],{TF1TF
8、2..TFN1},BTF,BLF,PF)其中,net=newff;用于在對(duì)話框中創(chuàng)建一個(gè)BP網(wǎng)絡(luò)。net為創(chuàng)建的新BP神經(jīng)網(wǎng)絡(luò);PR為網(wǎng)絡(luò)輸入向量取值范圍的矩陣;[S1S2…SNl]表示網(wǎng)絡(luò)隱含層和輸出層神經(jīng)元的個(gè)數(shù);{TFlTF2…