資源描述:
《代碼BP神經(jīng)網(wǎng)絡(luò).docx》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、1、數(shù)據(jù)歸一化2、數(shù)據(jù)分類,主要包括打亂數(shù)據(jù)順序,抽取正常訓(xùn)練用數(shù)據(jù)、變量數(shù)據(jù)、測試數(shù)據(jù)3、建立神經(jīng)網(wǎng)絡(luò),包括設(shè)置多少層網(wǎng)絡(luò)(一般3層以內(nèi)既可以,每層的節(jié)點(diǎn)數(shù)(具體節(jié)點(diǎn)數(shù),尚無科學(xué)的模型和公式方法確定,可采用試湊法,但輸出層的節(jié)點(diǎn)數(shù)應(yīng)和需要輸出的量個(gè)數(shù)相等),設(shè)置隱含層的傳輸函數(shù)等。關(guān)于網(wǎng)絡(luò)具體建立使用方法,在后幾節(jié)的例子中將會(huì)說到。4、指定訓(xùn)練參數(shù)進(jìn)行訓(xùn)練,這步非常重要,在例子中,將詳細(xì)進(jìn)行說明5、完成訓(xùn)練后,就可以調(diào)用訓(xùn)練結(jié)果,輸入測試數(shù)據(jù),進(jìn)行測試6、數(shù)據(jù)進(jìn)行反歸一化7、誤差分析、結(jié)果預(yù)測或分類,作圖等數(shù)據(jù)歸一化問題歸一化的意義:首先說一下,在工程應(yīng)用領(lǐng)域中,應(yīng)用BP網(wǎng)絡(luò)的好壞最關(guān)鍵的仍
2、然是輸入特征選擇和訓(xùn)練樣本集的準(zhǔn)備,若樣本集代表性差、矛盾樣本多、數(shù)據(jù)歸一化存在問題,那么,使用多復(fù)雜的綜合算法、多精致的網(wǎng)絡(luò)結(jié)構(gòu),建立起來的模型預(yù)測效果不會(huì)多好。若想取得實(shí)際有價(jià)值的應(yīng)用效果,從最基礎(chǔ)的數(shù)據(jù)整理工作做起吧,會(huì)少走彎路的。歸一化是為了加快訓(xùn)練網(wǎng)絡(luò)的收斂性,具體做法是:1把數(shù)變?yōu)椋?,1)之間的小數(shù)主要是為了數(shù)據(jù)處理方便提出來的,把數(shù)據(jù)映射到0~1范圍之內(nèi)處理,更加便捷快速,應(yīng)該歸到數(shù)字信號(hào)處理范疇之內(nèi)。2把有量綱表達(dá)式變?yōu)闊o量綱表達(dá)式歸一化是一種簡化計(jì)算的方式,即將有量綱的表達(dá)式,經(jīng)過變換,化為無量綱的表達(dá)式,成為純量比如,復(fù)數(shù)阻抗可以歸一化書寫:Z=R+jωL=R(1+jωL
3、/R),復(fù)數(shù)部分變成了純數(shù)量了,沒有量綱。另外,微波之中也就是電路分析、信號(hào)系統(tǒng)、電磁波傳輸?shù)?,有很多運(yùn)算都可以如此處理,既保證了運(yùn)算的便捷,又能凸現(xiàn)出物理量的本質(zhì)含義。神經(jīng)網(wǎng)絡(luò)歸一化方法:由于采集的各數(shù)據(jù)單位不一致,因而須對數(shù)據(jù)進(jìn)行[-1,1]歸一化處理,歸一化方法主要有如下幾種,供大家參考:1、線性函數(shù)轉(zhuǎn)換,表達(dá)式如下:復(fù)制內(nèi)容到剪貼板代碼:y=(x-MinValue)/(MaxValue-MinValue)說明:x、y分別為轉(zhuǎn)換前、后的值,MaxValue、MinValue分別為樣本的最大值和最小值。2、對數(shù)函數(shù)轉(zhuǎn)換,表達(dá)式如下:復(fù)制內(nèi)容到剪貼板代碼:y=log10(x)說明:以10為底
4、的對數(shù)函數(shù)轉(zhuǎn)換。3、反余切函數(shù)轉(zhuǎn)換,表達(dá)式如下:復(fù)制內(nèi)容到剪貼板代碼:y=atan(x)*2/PImatlab中歸一化的實(shí)現(xiàn):matlab中的歸一化處理有五種方法,只會(huì)其中一種就可以了,我喜歡用第4種,因?yàn)榱?xí)慣和方便注意:第一組和第二組歸一化函數(shù)在Matlab7.0以上已遺棄,他們的用法相似,pre**是歸一化,post**是反歸一化,tram**是使用同樣的設(shè)置歸一化另外一組數(shù)據(jù)1.內(nèi)部函數(shù)premnmx、postmnmx、tramnmx,將數(shù)據(jù)歸一化到(-1,1)premnmx的語法格式是復(fù)制內(nèi)容到剪貼板代碼:[Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T)
5、其中P,T分別為原始輸入和輸出數(shù)據(jù),minp和maxp分別為P中的最小值和最大值。mint和maxt分別為T的最小值和最大值。我們在訓(xùn)練網(wǎng)絡(luò)時(shí),如果所用的是經(jīng)過歸一化的樣本數(shù)據(jù),那么以后使用網(wǎng)絡(luò)時(shí)所用的新數(shù)據(jù)也應(yīng)該和樣本數(shù)據(jù)接受相同的預(yù)處理,這就要用到tramnmx,換句話說使用同一個(gè)歸一化設(shè)置(setting)歸一化另外一組數(shù)據(jù)。如下所示:復(fù)制內(nèi)容到剪貼板代碼:[Pn]=tramnmx(P,minp,maxp)其中P和Pn分別為變換前、后的輸入數(shù)據(jù),maxp和minp分別為premnmx函返回的最大值maxp和最小值minp。2、prestd、poststd、trastd歸化數(shù)據(jù)到(0,1)
6、用法與1差不多。詳細(xì)可以helpprestd。上述兩種方法是可以相互轉(zhuǎn)化的,比如,第一種歸化后的數(shù)據(jù)為p,則(1+p)./2的結(jié)果就是第二種了3、mapminmax()將數(shù)據(jù)歸一化到(-1,1),是6.5中**mnmx系列的替換函數(shù)該函數(shù)同時(shí)可以執(zhí)行歸一化、反歸一化和歸一化其他數(shù)據(jù)的功能,具體看幫助和后面的實(shí)例復(fù)制內(nèi)容到剪貼板代碼:%歸一化數(shù)據(jù)輸入為p,輸出為t[normInput,ps]=mapminmax(p);[normTarget,ts]=mapminmax(t);%反歸一化trainOutput=mapminmax('reverse',normTrainOutput,ts);trai
7、nInsect=mapminmax('reverse',trainSamples.T,ts);validateOutput=mapminmax('reverse',normValidateOutput,ts);validateInsect=mapminmax('reverse',validateSamples.T,ts);testOutput=mapminmax('reverse',normTes