資源描述:
《bp神經(jīng)網(wǎng)絡(luò)的matlab實(shí)現(xiàn)學(xué)習(xí)歷程》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、考拉BP神經(jīng)網(wǎng)絡(luò)的matlab實(shí)現(xiàn)學(xué)習(xí)歷程(一)考拉BP神經(jīng)網(wǎng)絡(luò)的matlab實(shí)現(xiàn)學(xué)習(xí)歷程(一)本文《考拉BP神經(jīng)網(wǎng)絡(luò)的matlab實(shí)現(xiàn)學(xué)習(xí)歷程》系列由論壇超級(jí)版主akjuan整理和原創(chuàng),我們?cè)诖吮硎咎貏e感謝這兩天在學(xué)習(xí)bp,總結(jié)和匯報(bào)一下,和大家一起學(xué)習(xí)。希望初入神經(jīng)網(wǎng)絡(luò)能有所收獲,給新手一些幫組和啟發(fā)。也希望熟悉bp的高手,多提寶貴意見和建議。學(xué)習(xí)內(nèi)容總結(jié)成五個(gè)小節(jié),具體內(nèi)容如下:第一節(jié)內(nèi)容:包括神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)知識(shí),BP網(wǎng)絡(luò)的特點(diǎn),bp主要應(yīng)用的場(chǎng)合,使用時(shí)應(yīng)注意的問題。第二節(jié)內(nèi)容:主要是闡述BP中幾個(gè)容易混繞的概念和問題,包括什么是網(wǎng)絡(luò)的泛化能力?過擬合是什么,怎么處理?
2、學(xué)習(xí)速率有什么作用?神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值分別是個(gè)什么概念?用BP逼近非線性函數(shù),如何提高訓(xùn)練精度?第三節(jié)內(nèi)容:主要闡述使用matlab實(shí)現(xiàn),為了充分利用數(shù)據(jù),得到最優(yōu)的網(wǎng)絡(luò)訓(xùn)練結(jié)果,在網(wǎng)絡(luò)建立前,應(yīng)該進(jìn)行的基本數(shù)據(jù)處理問題,包括:BP神經(jīng)網(wǎng)絡(luò)matlab實(shí)現(xiàn)的基本步驟,數(shù)據(jù)歸一化問題和方法,輸入訓(xùn)練數(shù)據(jù)的亂序排法,以及分類方法,如何查看和保存訓(xùn)練的結(jié)果,每次結(jié)果不一樣問題。第四節(jié)內(nèi)容:bp神經(jīng)網(wǎng)絡(luò)進(jìn)行交通預(yù)測(cè)的Matlab例子及源代碼,bp神經(jīng)網(wǎng)絡(luò)進(jìn)行交通預(yù)測(cè)的Matlab程序的優(yōu)化(主要是按設(shè)置誤差要求,尋找最優(yōu)網(wǎng)絡(luò)過程)第五節(jié)內(nèi)容:bp神經(jīng)網(wǎng)絡(luò)處理蠓蟲分類問題的matlab
3、例子及源代碼。不多說,先如主題,第一節(jié),很基礎(chǔ),高手見諒。什么是神經(jīng)網(wǎng)絡(luò)?神經(jīng)網(wǎng)絡(luò)是由很多神經(jīng)元組成的,首先我們看一下,什么是神經(jīng)元上面這個(gè)圖表示的就是一個(gè)神經(jīng)元,我們不管其它書上說的那些什么樹突,軸突的。我用個(gè)比較粗淺的解釋,可能不太全面科學(xué),但對(duì)初學(xué)者很容易理解:1、我們把輸入信號(hào)看成你在matlab中需要輸入的數(shù)據(jù),輸進(jìn)去神經(jīng)網(wǎng)絡(luò)后2、這些數(shù)據(jù)的每一個(gè)都會(huì)被乘個(gè)數(shù),即權(quán)值w,然后這些東東與閥值b相加后求和得到u,3、上面只是線性變化,為了達(dá)到能處理非線性的目的,u做了個(gè)變換,變換的規(guī)則和傳輸函數(shù)有關(guān)可能還有人問,那么那個(gè)閥值是什么呢?簡(jiǎn)單理解就是讓這些數(shù)據(jù)做了個(gè)平移,這就
4、是神經(jīng)元工作的過程。處理后的結(jié)果又作為輸入,可輸給別的神經(jīng)元,很多這樣的神經(jīng)元,就組成了網(wǎng)絡(luò)。在matlab中具體用什么算法實(shí)現(xiàn)這些,我們先不管,我們需要注意的是怎么使用。比如使用BP的神經(jīng)網(wǎng)絡(luò)newff()構(gòu)建一個(gè)網(wǎng)絡(luò),這些在后面的學(xué)習(xí)將提到。BP網(wǎng)絡(luò)的特點(diǎn)①網(wǎng)絡(luò)實(shí)質(zhì)上實(shí)現(xiàn)了一個(gè)從輸入到輸出的映射功能,而數(shù)學(xué)理論已證明它具有實(shí)現(xiàn)任何復(fù)雜非線性映射的功能。這使得它特別適合于求解內(nèi)部機(jī)制復(fù)雜的問題。我們無需建立模型,或了解其內(nèi)部過程,只需輸入,獲得輸出。只要BPNN結(jié)構(gòu)優(yōu)秀,一般20個(gè)輸入函數(shù)以下的問題都能在50000次的學(xué)習(xí)以內(nèi)收斂到最低誤差附近。而且理論上,一個(gè)三層的神經(jīng)網(wǎng)絡(luò)
5、,能夠以任意精度逼近給定的函數(shù),這是非常誘人的期望;②網(wǎng)絡(luò)能通過學(xué)習(xí)帶正確答案的實(shí)例集自動(dòng)提取“合理的”求解規(guī)則,即具有自學(xué)習(xí)能力;③網(wǎng)絡(luò)具有一定的推廣、概括能力。bp主要應(yīng)用回歸預(yù)測(cè)(可以進(jìn)行擬合,數(shù)據(jù)處理分析,事物預(yù)測(cè),控制等)、分類識(shí)別(進(jìn)行類型劃分,模式識(shí)別等),在后面的學(xué)習(xí)中,我都將給出實(shí)例程序。但無論那種網(wǎng)絡(luò),什么方法,解決問題的精確度都無法打到100%的,但并不影響其使用,因?yàn)楝F(xiàn)實(shí)中很多復(fù)雜的問題,精確的解釋是毫無意義的,有意義的解析必定會(huì)損失精度。BP注意問題1、BP算法的學(xué)習(xí)速度很慢,其原因主要有:a由于BP算法本質(zhì)上為梯度下降法,而它所要優(yōu)化的目標(biāo)函數(shù)又非常
6、復(fù)雜,因此,必然會(huì)出現(xiàn)“鋸齒形現(xiàn)象”,這使得BP算法低效;b存在麻痹現(xiàn)象,由于優(yōu)化的目標(biāo)函數(shù)很復(fù)雜,它必然會(huì)在神經(jīng)元輸出接近0或1的情況下,出現(xiàn)一些平坦區(qū),在這些區(qū)域內(nèi),權(quán)值誤差改變很小,使訓(xùn)練過程幾乎停頓;c為了使網(wǎng)絡(luò)執(zhí)行BP算法,不能用傳統(tǒng)的一維搜索法求每次迭代的步長(zhǎng),而必須把步長(zhǎng)的更新規(guī)則預(yù)先賦予網(wǎng)絡(luò),這種方法將引起算法低效。2、網(wǎng)絡(luò)訓(xùn)練失敗的可能性較大,其原因有:a從數(shù)學(xué)角度看,BP算法為一種局部搜索的優(yōu)化方法,但它要解決的問題為求解復(fù)雜非線性函數(shù)的全局極值,因此,算法很有可能陷入局部極值,使訓(xùn)練失?。籦網(wǎng)絡(luò)的逼近、推廣能力同學(xué)習(xí)樣本的典型性密切相關(guān),而從問題中選取典型
7、樣本實(shí)例組成訓(xùn)練集是一個(gè)很困難的問題。3、網(wǎng)絡(luò)結(jié)構(gòu)的選擇:尚無一種統(tǒng)一而完整的理論指導(dǎo),一般只能由經(jīng)驗(yàn)選定。為此,有人稱神經(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)是一個(gè)重要的問題。4、新加入的樣本要影響已學(xué)習(xí)成功的網(wǎng)絡(luò),而且刻畫每個(gè)輸入樣本的特征的數(shù)目也必須相同。5、采用s型激活函數(shù),由于輸出層各神經(jīng)元的理想輸出值只能接近于1或0,而不能打到1或0,因此設(shè)置各訓(xùn)練樣本的期望輸出分量Tkp時(shí),不能設(shè)置為1或0,設(shè)置0.9或0.