




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、學(xué)習(xí)內(nèi)容總結(jié)成4個小節(jié),具體內(nèi)容如下:第一節(jié)內(nèi)容:包括神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)知識,BP網(wǎng)絡(luò)的特點,bp主要應(yīng)用的場合,使用時應(yīng)注意的問題。第二節(jié)內(nèi)容:主要是闡述BP中幾個容易混淆的概念和問題,包括什么是網(wǎng)絡(luò)的泛化能力?過擬合是什么,怎么處理?學(xué)習(xí)速率有什么作用?神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值分別是個什么概念?用BP逼近非線性函數(shù),如何提高訓(xùn)練精度?第三節(jié)內(nèi)容:主要闡述使用matlab實現(xiàn),為了充分利用數(shù)據(jù),得到最優(yōu)的網(wǎng)絡(luò)訓(xùn)練結(jié)果,在網(wǎng)絡(luò)建立前,應(yīng)該進行的基本數(shù)據(jù)處理問題,包括:BP神經(jīng)網(wǎng)絡(luò)matlab實現(xiàn)的基本步驟,數(shù)據(jù)歸一化問題和方法,輸入訓(xùn)練數(shù)據(jù)的順序排法,以及分類方法,如何查看和保存訓(xùn)練的結(jié)果,每次結(jié)果不
2、一樣問題。第四節(jié)內(nèi)容:bp神經(jīng)網(wǎng)絡(luò)進行交通預(yù)測的Matlab例子及源代碼,bp神經(jīng)網(wǎng)絡(luò)進行交通預(yù)測的Matlab程序的優(yōu)化(主要是根據(jù)設(shè)置誤差要求,尋找最優(yōu)網(wǎng)絡(luò)過程)什么是神經(jīng)網(wǎng)絡(luò)?神經(jīng)網(wǎng)絡(luò)是由很多神經(jīng)元組成的,首先我們看一下,什么是神經(jīng)元上面這個圖表示的就是一個神經(jīng)元,不管其它書上說的那些什么樹突,軸突的。用個比較粗淺的解釋,可能不太全面科學(xué),但對初學(xué)者很容易理解:1、我們把輸入信號看成你在matlab中需要輸入的數(shù)據(jù),輸進去神經(jīng)網(wǎng)絡(luò)后2、這些數(shù)據(jù)的每一個都會被乘上一個數(shù),即權(quán)值w,然后這些東東相加后得到u,3、上面只是線性變化,為了達到能處理非線性的目的,u做了個變換,變換的規(guī)則和傳輸函數(shù)
3、有關(guān) 可能還有人問,那么那個閥值是什么呢?簡單理解就是讓這些數(shù)據(jù)做了個平移,這就是神經(jīng)元工作的過程。處理后的結(jié)果又作為輸入,可輸給別的神經(jīng)元,很多這樣的神經(jīng)元,就組成了網(wǎng)絡(luò)。在matlab中具體用什么算法實現(xiàn)這些,我們先不管,我們需要注意的是怎么使用。比如使用BP的神經(jīng)網(wǎng)絡(luò)newff()構(gòu)建一個網(wǎng)絡(luò),這些在后面的學(xué)習(xí)將提到。BP網(wǎng)絡(luò)的特點網(wǎng)絡(luò)實質(zhì)上實現(xiàn)了一個從輸入到輸出的映射功能,而數(shù)學(xué)理論已證明它具有實現(xiàn)任何復(fù)雜非線性映射的功能。這使得它特別適合于求解內(nèi)部機制復(fù)雜的問題。無需建立模型,或了解其內(nèi)部過程,只需輸入,獲得輸出。只要BPNN結(jié)構(gòu)優(yōu)秀,一般20個輸入函數(shù)以下的問題都能在50000次的
4、學(xué)習(xí)以內(nèi)收斂到最低誤差附近。而且理論上,一個三層的神經(jīng)網(wǎng)絡(luò),能夠以任意精度逼近給定的函數(shù),這是非常誘人的期望;網(wǎng)絡(luò)能通過學(xué)習(xí)帶正確答案的實例集自動提取“合理的”求解規(guī)則,即具有自學(xué)習(xí)能力;網(wǎng)絡(luò)具有一定的推廣、概括能力。bp主要應(yīng)用回歸預(yù)測(可以進行擬合,數(shù)據(jù)處理分析,事物預(yù)測,控制等)分類識別(進行類型劃分,模式識別等),在后面的學(xué)習(xí)中,將給出實例程序。但無論那種網(wǎng)絡(luò),什么方法,解決問題的精確度都無法打到100%的,但并不影響其使用,因為現(xiàn)實中很多復(fù)雜的問題,精確的解釋是毫無意義的,有意義的解析必定會損失精度。BP注意問題1、BP算法的學(xué)習(xí)速度很慢,其原因主要有:a 由于BP算法本質(zhì)上為梯度下
5、降法,而它所要優(yōu)化的目標(biāo)函數(shù)又非常復(fù)雜,因此,必然會出現(xiàn)“鋸齒形現(xiàn)象”,這使得BP算法低效;b 存在麻痹現(xiàn)象,由于優(yōu)化的目標(biāo)函數(shù)很復(fù)雜,它必然會在神經(jīng)元輸出接近0或1的情況下,出現(xiàn)一些平坦區(qū),在這些區(qū)域內(nèi),權(quán)值誤差改變很小,使訓(xùn)練過程幾乎停頓;c 為了使網(wǎng)絡(luò)執(zhí)行BP算法,不能用傳統(tǒng)的一維搜索法求每次迭代的步長,而必須把步長的更新規(guī)則預(yù)先賦予網(wǎng)絡(luò),這種方法將引起算法低效。2、網(wǎng)絡(luò)訓(xùn)練失敗的可能性較大,其原因有:a 從數(shù)學(xué)角度看,BP算法為一種局部搜索的優(yōu)化方法,但它要解決的問題為求解復(fù)雜非線性函數(shù)的全局極值,因此,算法很有可能陷入局部極值,使訓(xùn)練失??;b 網(wǎng)絡(luò)的逼近、推廣能力同學(xué)習(xí)樣本的典型性密
6、切相關(guān),而從問題中選取典型樣本實例組成訓(xùn)練集是一個很困難的問題。3、網(wǎng)絡(luò)結(jié)構(gòu)的選擇:尚無一種統(tǒng)一而完整的理論指導(dǎo),一般只能由經(jīng)驗選定。為此,有人稱神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)選擇為一種藝術(shù)。而網(wǎng)絡(luò)的結(jié)構(gòu)直接影響網(wǎng)絡(luò)的逼近能力及推廣性質(zhì)。因此,應(yīng)用中如何選擇合適的網(wǎng)絡(luò)結(jié)構(gòu)是一個重要的問題。4、新加入的樣本要影響已學(xué)習(xí)成功的網(wǎng)絡(luò),而且刻畫每個輸入樣本的特征數(shù)目也必須相同。5、采用s型激活函數(shù),由于輸出層各神經(jīng)元的理想輸出值只能接近于1或0,而不能打到1或0,因此設(shè)置各訓(xùn)練樣本的期望輸出分量Tkp時,不能設(shè)置為1或0,設(shè)置0.9或0.1較為適宜。 第二節(jié) 本節(jié)主要學(xué)習(xí)BP中幾個容易混淆的概念和問題:什么是網(wǎng)絡(luò)的泛
7、化能力?過擬合是什么,怎么處理?學(xué)習(xí)速率有什么作用?神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值分別是個什么概念?用BP逼近非線性函數(shù),如何提高訓(xùn)練精度?什么是網(wǎng)絡(luò)的泛化能力? 一個神經(jīng)網(wǎng)路是否優(yōu)良,與傳統(tǒng)最小二乘之類的擬合評價不同(主要依據(jù)殘差,擬合優(yōu)度等),不是體現(xiàn)在其對已有的數(shù)據(jù)擬合能力上,而是對后來的預(yù)測能力,既泛化能力。 網(wǎng)絡(luò)的預(yù)測能力(也稱泛化能力、推廣能力)與訓(xùn)練能力(也稱逼近能力、學(xué)習(xí)能力)的矛盾。一般情況下,訓(xùn)練能力差時,預(yù)測能力也差,并且一定程度上,隨訓(xùn)練能力地提高,預(yù)測能力也提高。但這種趨勢有一個極限,當(dāng)達到此極限時,隨著訓(xùn)練能力的提高,預(yù)測能力反而下降,即出現(xiàn)所謂“過擬合”現(xiàn)象。此時,網(wǎng)絡(luò)學(xué)習(xí)
8、了過多的樣本細節(jié),而不能反映樣本內(nèi)含的規(guī)律。過擬合是什么,怎么處理? 神經(jīng)網(wǎng)絡(luò)計算不能一味地追求訓(xùn)練誤差最小,這樣很容易出現(xiàn)“過擬合”現(xiàn)象,只要能夠?qū)崟r檢測誤差率的變化就可以確定最佳的訓(xùn)練次數(shù),比如15000次左右的學(xué)習(xí)次數(shù),如果你不觀察,設(shè)成500000次學(xué)習(xí),不僅需要很長時間來跑,而且最后結(jié)果肯定令人大失所望。避免過擬合的一種方法是:在數(shù)據(jù)輸入中,把訓(xùn)練的數(shù)據(jù)分類,分為正常訓(xùn)練用、變量數(shù)據(jù)、測試數(shù)據(jù),在后面節(jié)將講到如何進行這種分類。其中變量數(shù)據(jù),在網(wǎng)絡(luò)訓(xùn)練中,起到的作用就是防止過擬合狀態(tài)。學(xué)習(xí)速率有什么作用? 學(xué)習(xí)速率這個參數(shù)可以控制能量函數(shù)的步幅,并且如果設(shè)為自動調(diào)整的話,可以在誤差率經(jīng)
9、過快速下降后,將學(xué)習(xí)速率變慢,從而增加BPNN的穩(wěn)定性。此時訓(xùn)練方法采用 net.trainFcn = 'traingda' % 變學(xué)習(xí)率梯度下降算法net.trainFcn = 'traingdx' % 變學(xué)習(xí)率動量梯度下降算法可以定義一個變動的學(xué)習(xí)速率,如 p = -1 -1 2 2; 0 5 0 5;t = -1 -1 1 1;net = newff(p,t,3,'traingda');net.trainParam.lr = 0.05;net.trainParam.lr_inc = 1.05;net = train(net,p,t);y =
10、 sim(net,p)在后面的擬合例題中,將用到學(xué)習(xí)速率這個參數(shù)。神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值分別是個什么概念?第一節(jié)中,已經(jīng)談到了權(quán)值和閥值的概念。這里更深入的說明一下,因為他們很重要,關(guān)系到網(wǎng)絡(luò)最后的結(jié)果。權(quán)值和閾值是神經(jīng)元之間的連接,將數(shù)據(jù)輸入計算出一個輸出,然后與實際輸出比較,誤差反傳,不斷調(diào)整權(quán)值和閾值。假如下面兩個點屬于不同的類,設(shè)計分類器將他們分開p1=1 1 -1'p2=1 -1 -1'這里用單層神經(jīng)元感知器,假設(shè)初始權(quán)值 w=0.2 0.2 0.3同時假設(shè)初始閥值 b=-0.3輸出 a1 a2 a1=hardlims(w*p1+b)a2=hardlims(w*p2+b
11、)如果不能分開,還須不斷調(diào)整w,b用BP逼近非線性函數(shù),如何提高訓(xùn)練精度(1)調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)增加網(wǎng)絡(luò)的層數(shù)可以進一步降低誤差,提高精度但會使網(wǎng)絡(luò)復(fù)雜化,從而增加網(wǎng)絡(luò)的訓(xùn)練時間。精度的提高實際上也可以通過增加隱層神經(jīng)元的數(shù)目來獲得,其效果更容易觀察和掌握,所以應(yīng)優(yōu)先考慮。(2)初始值選取為了使誤差盡可能小 ,需要合理選擇初始權(quán)重和閾值,如果太大就容易陷入飽和區(qū),導(dǎo)致停頓 。一般應(yīng)選為均勻分布的小數(shù),介于 (-1,1) 。(3)學(xué)習(xí)速率調(diào)整學(xué)習(xí)速率的選取很重要 ,大了可能導(dǎo)致系統(tǒng)不穩(wěn)定,小了會導(dǎo)致訓(xùn)練周期過長、收斂慢,達不到要求的誤差。一般傾向于選取較小的學(xué)習(xí)速率以保持系統(tǒng)穩(wěn)定,通過觀察誤差下降曲線
12、來判斷。下降較快說明學(xué)習(xí)率比較合適,若有較大振蕩則說明學(xué)習(xí)率偏大。同時,由于網(wǎng)絡(luò)規(guī)模大小的不同,學(xué)習(xí)率選擇應(yīng)當(dāng)針對其進行調(diào)整。采用變學(xué)習(xí)速率的方案,令學(xué)習(xí)速率隨學(xué)習(xí)進展而逐步減少,可收到良好的效果。(4)期望誤差期望誤差當(dāng)然希望越小越好,但是也要有合適值。 第三節(jié) 本節(jié)主要學(xué)習(xí)使用matlab實現(xiàn)bp算法的一般步驟和過程。為了充分利用數(shù)據(jù),得到最優(yōu)的網(wǎng)絡(luò)訓(xùn)練結(jié)果,在網(wǎng)絡(luò)建立前應(yīng)該進行的基本數(shù)據(jù)處理問題,包括:(1)BP神經(jīng)網(wǎng)絡(luò)matlab實現(xiàn)的基本步驟(2)數(shù)據(jù)歸一化問題和方法(3)輸入訓(xùn)練數(shù)據(jù)的亂序排法,以及分類方法(4)如何查看和保存訓(xùn)練的結(jié)果(5)每次結(jié)果不一樣問題。用matlab實現(xiàn)b
13、p,其實很簡單,按下面步驟基本可以了BP神經(jīng)網(wǎng)絡(luò)matlab實現(xiàn)的基本步驟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é)點數(shù)(具體節(jié)點數(shù),尚無科學(xué)的模型和公式方法確定,可采用試湊法,但輸出層的節(jié)點數(shù)應(yīng)和需要輸出的量個數(shù)相等),設(shè)置隱含層的傳輸函數(shù)等。關(guān)于網(wǎng)絡(luò)具體建立使用方法,在后幾節(jié)的例子中將會說到。4、指定訓(xùn)練參數(shù)進行訓(xùn)練,這步非常重要,在例子中,將詳細進行說明5、完成訓(xùn)練后,就可以調(diào)用訓(xùn)練結(jié)果,輸入測試數(shù)據(jù),進行測試6、數(shù)據(jù)進行反歸一化7、誤差分析、結(jié)果預(yù)測或分類,作圖等數(shù)據(jù)歸一化問
14、題歸一化的意義:首先說一下,在工程應(yīng)用領(lǐng)域中,應(yīng)用BP網(wǎng)絡(luò)的好壞最關(guān)鍵的仍然是輸入特征選擇和訓(xùn)練樣本集的準(zhǔn)備,若樣本集代表性差、矛盾樣本多、數(shù)據(jù)歸一化存在問題,那么,使用多復(fù)雜的綜合算法、多精致的網(wǎng)絡(luò)結(jié)構(gòu),建立起來的模型預(yù)測效果不會多好。若想取得實際有價值的應(yīng)用效果,從最基礎(chǔ)的數(shù)據(jù)整理工作做起吧,會少走彎路的。歸一化是為了加快訓(xùn)練網(wǎng)絡(luò)的收斂性,具體做法是:1 把數(shù)變?yōu)椋?,1)之間的小數(shù)主要是為了數(shù)據(jù)處理方便提出來的,把數(shù)據(jù)映射到01范圍之內(nèi)處理,更加便捷快速,應(yīng)該歸到數(shù)字信號處理范疇之內(nèi)。2 把有量綱表達式變?yōu)闊o量綱表達式歸一化是一種簡化計算的方式,即將有量綱的表達式,經(jīng)過變換,化為無量綱的
15、表達式,成為純量比如,復(fù)數(shù)阻抗可以歸一化書寫:Z = R + jL = R(1 + jL/R) ,復(fù)數(shù)部分變成了純數(shù)量了,沒有量綱。另外,微波之中也就是電路分析、信號系統(tǒng)、電磁波傳輸?shù)?,有很多運算都可以如此處理,既保證了運算的便捷,又能凸現(xiàn)出物理量的本質(zhì)含義。神經(jīng)網(wǎng)絡(luò)歸一化方法:由于采集的各數(shù)據(jù)單位不一致,因而須對數(shù)據(jù)進行-1,1歸一化處理,歸一化方法主要有如下幾種,供大家參考:1、線性函數(shù)轉(zhuǎn)換,表達式如下: y=(x-MinValue)/(MaxValue-MinValue)說明:x、y分別為轉(zhuǎn)換前、后的值,MaxValue、MinValue分別為樣本的最大值和最小值。2、對數(shù)函數(shù)轉(zhuǎn)換,表達
16、式如下: y=log10(x)說明:以10為底的對數(shù)函數(shù)轉(zhuǎn)換。3、反余切函數(shù)轉(zhuǎn)換,表達式如下: y=atan(x)*2/PImatlab中歸一化的實現(xiàn):matlab中的歸一化處理有以下幾種方法,只會其中一種就可以了。注意:第一組和第二組歸一化函數(shù)在Matlab7.0以上已遺棄,他們的用法相似,pre*是歸一化,post*是反歸一化,tram*是使用同樣的設(shè)置歸一化另外一組數(shù)據(jù)1. 內(nèi)部函數(shù)premnmx、postmnmx、tramnmx,將數(shù)據(jù)歸一化到(-1,1)premnmx的語法格式是 Pn,minp,maxp,Tn,mint,maxt=premnmx(P,T)其中P,T分別為原始輸入和輸
17、出數(shù)據(jù),minp和maxp分別為P中的最小值和最大值。mint和maxt分別為T的最小值和最大值。在訓(xùn)練網(wǎng)絡(luò)時,如果所用的是經(jīng)過歸一化的樣本數(shù)據(jù),那么以后使用網(wǎng)絡(luò)時所用的新數(shù)據(jù)也應(yīng)該和樣本數(shù)據(jù)接受相同的預(yù)處理,這就要用到tramnmx,換句話說使用同一個歸一化設(shè)置(setting)歸一化另外一組數(shù)據(jù)。如下所示: Pn=tramnmx(P,minp,maxp)其中P和Pn分別為變換前、后的輸入數(shù)據(jù),maxp和minp分別為premnmx函返回的最大值maxp和最小值minp。2、prestd、poststd、trastd歸化數(shù)據(jù)到(0,1)用法與1差不多。詳細可以help prestd。上述兩種
18、方法是可以相互轉(zhuǎn)化的,比如,第一種歸化后的數(shù)據(jù)為p,則(1+p)./2的結(jié)果就是第二種了3、mapminmax()將數(shù)據(jù)歸一化到(-1,1),是6.5中*mnmx系列的替換函數(shù)該函數(shù)同時可以執(zhí)行歸一化、反歸一化和歸一化其他數(shù)據(jù)的功能,具體看幫助和后面的實例 % 歸一化數(shù)據(jù)輸入為p,輸出為tnormInput,ps = mapminmax(p);normTarget,ts = mapminmax(t);% 反歸一化trainOutput = mapminmax('reverse',normTrainOutput,ts);trainInsect = mapminmax('r
19、everse',trainSamples.T,ts);validateOutput = mapminmax('reverse',normValidateOutput,ts);validateInsect = mapminmax('reverse',validateSamples.T,ts);testOutput = mapminmax('reverse',normTestOutput,ts);testInsect = mapminmax('reverse',testSamples.T,ts);%例子:x1 = 1 2 4;
20、 1 1 1; 3 2 2; 0 0 0y1,PS = mapminmax(x1,0,1)% 歸化到 0,1,若不填,則默認(rèn)為-1,1%還原:x1_again = mapminmax('reverse',y1,PS)4、mapstd()將數(shù)據(jù)歸一化到(0,1),是6.5中*std系列的替代函數(shù)3和4兩種方法是可以相互轉(zhuǎn)化的,比如,第一種歸化后的數(shù)據(jù)為p,則(1+p)./2的結(jié)果就是第二種了。把數(shù)據(jù)重新打亂順序,進行輸入,可以讓數(shù)據(jù)更加具備典型性和更優(yōu)良的泛化能力!把數(shù)據(jù)進行打亂,并分類為:訓(xùn)練輸入數(shù)據(jù)、變量數(shù)據(jù)、測試數(shù)據(jù)的方法如何查看和保存結(jié)果訓(xùn)練好的權(quán)值、閾值的輸出方法是:輸
21、入到隱層權(quán)值: w1=net.iw1,1隱層閾值: theta1=net.b1隱層到輸出層權(quán)值: w2=net.lw2,1;輸出層閾值: theta2=net.b2訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)保存: save file_name net_name %Matlab自動將網(wǎng)絡(luò)保存為mat數(shù)據(jù)文件,下次使用時可以直接載入load file_name每次結(jié)果不一樣問題因為每次初始化網(wǎng)絡(luò)時都是隨機的,而且訓(xùn)練終止時的誤差也不完全相同,結(jié)果訓(xùn)練后的權(quán)植和閥也不完全相同(大致是一樣的),所以每次訓(xùn)練后的結(jié)果也略有不同。找到比較好的結(jié)果后,用命令save filen_ame net_name保存網(wǎng)絡(luò),可使預(yù)測的結(jié)果不
22、會變化,在需要的調(diào)用時用命令load filename載入。第四節(jié) 根據(jù)前面三節(jié)的學(xué)習(xí)內(nèi)容,可以基本編寫一個BP神經(jīng)網(wǎng)絡(luò),來處理一些問題了。下面給出一個bp神經(jīng)網(wǎng)絡(luò)進行交通預(yù)測的Matlab源代碼,里面?zhèn)溆休^為詳細的注釋, %bp神經(jīng)網(wǎng)絡(luò)進行交通預(yù)測的Matlab源代碼% BP 神經(jīng)網(wǎng)絡(luò)用于預(yù)測% 使用平臺 - Matlab7.10.0(R2010a)% 數(shù)據(jù)為1986年到2000年的交通量 ,網(wǎng)絡(luò)為3輸入,1輸出% 15組數(shù)據(jù),其中9組為正常訓(xùn)練數(shù)據(jù),3組為變量數(shù)據(jù),3組為測試數(shù)據(jù)clcclear%原始數(shù)據(jù)year=1986:2000;%數(shù)據(jù)是從1986到2000年的p=493 372 44
23、5;372 445 176;445 176 235;176 235 378;235 378 429;. 378 429 561;429 561 651;561 651 467;651 467 527;467 527 668;. 527 668 841; 668 841 526;841 526 480;526 480 567;480 567 685'%輸入數(shù)據(jù),共15組,每組3個輸入t=176 235 378 429 561 651 467 527 668 841 526 480 567 685 507;%輸出數(shù)據(jù),共15組,每組1個輸出%數(shù)據(jù)歸一化處理%mapminmax函數(shù)默認(rèn)將數(shù)據(jù)
24、歸一化到-1,1,調(diào)用形式如下%y,ps =%mapminmax(x,ymin,ymax)%x需歸化的數(shù)據(jù)輸入%ymin,ymax為需歸化到的范圍,不填默認(rèn)為歸化到-1,1%y歸一化后的樣本數(shù)據(jù)%ps處理設(shè)置,ps主要在結(jié)果反歸一化中需要調(diào)用,或者使用同樣的settings歸一化另外一組數(shù)據(jù)%-normInput,ps = mapminmax(p);normTarget,ts = mapminmax(t);%-%數(shù)據(jù)亂序,及分類處理%將輸入的15組數(shù)據(jù)的20%,即3組,用來作為測試數(shù)據(jù);% 樣本的20%,即3組,用來作為變化數(shù)據(jù);%另外9組用來正常輸入,用來訓(xùn)練;%dividevec()用來重
25、新隨機抽取上述三種分類的數(shù)據(jù),原來的順序被打亂%函數(shù)調(diào)用的語法%trainV,valV,testV = dividevec(p,t,valPercent,testPercent)%輸入p為輸入數(shù)據(jù),t為輸出數(shù)據(jù)%valPercent為訓(xùn)練用的變化數(shù)據(jù)在總輸入中的百分比%testPercent為訓(xùn)練用的測試數(shù)據(jù)在總輸入中的百分比%輸出trainV,valV,testV分別為按亂序及相應(yīng)百分比,抽取得到的數(shù)據(jù)%另外,打亂后的數(shù)據(jù),p和t都是對應(yīng)的,請放心使用%-testPercent = 0.20; % Adjust as desiredvalidatePercent = 0.20; % Adus
26、t as desiredtrainSamples,validateSamples,testSamples = dividevec(normInput,normTarget,validatePercent,testPercent);%-% 設(shè)置網(wǎng)絡(luò)參數(shù)NodeNum1 = 20; % 隱層第一層節(jié)點數(shù)NodeNum2=40; % 隱層第二層節(jié)點數(shù)TypeNum = 1; % 輸出維數(shù)TF1 = 'tansig'TF2 = 'tansig' TF3 = 'tansig'%各層傳輸函數(shù),TF3為輸出層傳輸函數(shù)%如果訓(xùn)練結(jié)果不理想,可以嘗試更改傳輸函數(shù),
27、以下這些是各類傳輸函數(shù)%TF1 = 'tansig'TF2 = 'logsig'%TF1 = 'logsig'TF2 = 'purelin'%TF1 = 'tansig'TF2 = 'tansig'%TF1 = 'logsig'TF2 = 'logsig'%TF1 = 'purelin'TF2 = 'purelin' %注意創(chuàng)建BP網(wǎng)絡(luò)函數(shù)newff()的參數(shù)調(diào)用,在新版本(7.6)中已改變net=newff(minmax(normIn
28、put),NodeNum1,NodeNum2,TypeNum,TF1 TF2 TF3,'traingdx');%創(chuàng)建四層BP網(wǎng)絡(luò)%-% 設(shè)置訓(xùn)練參數(shù)net.trainParam.epochs=10000;%訓(xùn)練次數(shù)設(shè)置net.trainParam.goal=1e-6;%訓(xùn)練目標(biāo)設(shè)置net.trainParam.lr=0.01;%學(xué)習(xí)率設(shè)置,應(yīng)設(shè)置為較少值,太大雖然會在開始加快收斂速度,但臨近最佳點時,會產(chǎn)生動蕩,而致使無法收斂%-% 指定訓(xùn)練函數(shù)% net.trainFcn = 'traingd' % 梯度下降算法% net.trainFcn = 'tr
29、aingdm' % 動量梯度下降算法% net.trainFcn = 'traingda' % 變學(xué)習(xí)率梯度下降算法% net.trainFcn = 'traingdx' % 變學(xué)習(xí)率動量梯度下降算法% (大型網(wǎng)絡(luò)的首選算法)% net.trainFcn = 'trainrp' % RPROP(彈性BP)算法,內(nèi)存需求最小% (共軛梯度算法)% net.trainFcn = 'traincgf' % Fletcher-Reeves修正算法% net.trainFcn = 'traincgp' % Polak
30、-Ribiere修正算法,內(nèi)存需求比Fletcher-Reeves修正算法略大% net.trainFcn = 'traincgb' % Powell-Beal復(fù)位算法,內(nèi)存需求比Polak-Ribiere修正算法略大% (大型網(wǎng)絡(luò)的首選算法)%net.trainFcn = 'trainscg' % Scaled Conjugate Gradient算法,內(nèi)存需求與Fletcher-Reeves修正算法相同,計算量比上面三種算法都小很多% net.trainFcn = 'trainbfg' % Quasi-Newton Algorithms -
31、BFGS Algorithm,計算量和內(nèi)存需求均比共軛梯度算法大,但收斂比較快% net.trainFcn = 'trainoss' % One Step Secant Algorithm,計算量和內(nèi)存需求均比BFGS算法小,比共軛梯度算法略大% (中型網(wǎng)絡(luò)的首選算法)%net.trainFcn = 'trainlm' % Levenberg-Marquardt算法,內(nèi)存需求最大,收斂速度最快% net.trainFcn = 'trainbr' % 貝葉斯正則化算法% 有代表性的五種算法為:'traingdx','trainrp','trainscg','trainoss', 'trainlm'net.trainfcn='traingdm'net,tr = train(net,trainSamples.P,trainSamples.T,validateSamples,testSamples);%-% 訓(xùn)練完成后,就可以調(diào)用sim()函數(shù),進行仿真了%- normTrainOutput,Pf,Af,E,trainPerf = sim(net,trainSamples.P,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 部門培訓(xùn)課件激勵話語
- 2025至2030寵物疫苗行業(yè)市場深度研究及發(fā)展前景投資可行性分析報告
- 2025至2030充電隨身電源市場行業(yè)市場深度研究與戰(zhàn)略咨詢分析報告
- 2024年上海市閔行區(qū)諸翟學(xué)校招聘筆試真題
- 家用紡織品市場線上線下融合策略分析考核試卷
- 低溫倉儲綠色建筑經(jīng)濟效益分析考核試卷
- 藁城九年級月考數(shù)學(xué)試卷
- 第七章 數(shù)學(xué)試卷
- 職場心理安全感與員工工作壓力感知的關(guān)系研究考核試卷
- 高考一九七七數(shù)學(xué)試卷
- 2024版《中醫(yī)基礎(chǔ)理論經(jīng)絡(luò)》課件完整版
- OCEAN腳本簡明教程
- GB/T 28267.3-2024鋼絲繩芯輸送帶第3部分:井下用輸送帶的特殊安全要求
- 2024年上海復(fù)旦大學(xué)附中自主招生數(shù)學(xué)試卷真題(含答案詳解)
- 骨質(zhì)疏松性椎體壓縮骨折診治專家共識
- 2024年廣東惠州市市直醫(yī)療衛(wèi)生事業(yè)單位招聘衛(wèi)生專業(yè)技術(shù)人才歷年高頻難、易錯點500題模擬試題附帶答案詳解
- 內(nèi)蒙古呼和浩特市(2024年-2025年小學(xué)四年級語文)部編版期末考試(下學(xué)期)試卷及答案
- 2024-2030年中國循環(huán)水養(yǎng)殖系統(tǒng)行業(yè)發(fā)展態(tài)勢及前景需求潛力建議研究報告
- 重癥醫(yī)學(xué)質(zhì)量控制中心督查評價標(biāo)準(zhǔn)及評分細則
- 2025年日歷A4紙打印
- 2024年廣東省廣州市市中考英語試卷真題(含答案解析)
評論
0/150
提交評論