孫弋清
摘 要:在BP神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)中,輸入節(jié)點和輸出節(jié)點個數(shù)的確定取決于問題本身,構(gòu)建神經(jīng)網(wǎng)絡(luò)的關(guān)鍵點就在于隱含層層數(shù)以及隱含層節(jié)點數(shù)的確定。如何合理的對網(wǎng)絡(luò)的結(jié)構(gòu)進(jìn)行設(shè)計以及隱含層節(jié)點數(shù)的設(shè)定至今沒有嚴(yán)格的理論指導(dǎo),只能借助學(xué)者給出的經(jīng)驗公式并進(jìn)行多次試驗得以確定。針對該問題,提出了一種“進(jìn)退法”算法可快速確定隱含層節(jié)點數(shù)的最優(yōu)解區(qū)間。運用Matlab進(jìn)行仿真實驗,結(jié)果表明該算法在合理有效的基礎(chǔ)上極大地提高了網(wǎng)絡(luò)的運行效率。
關(guān)鍵詞:神經(jīng)網(wǎng)絡(luò);隱含層節(jié)點數(shù);最優(yōu)解區(qū)間;進(jìn)退法
中圖分類號:TB 文獻(xiàn)標(biāo)識碼:A doi:10.19311/j.cnki.1672-3198.2018.35.091
0 引言
BP神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Network)是由Rumelhart和McCelland在上世紀(jì)80年代中期首次提出的一種被廣泛應(yīng)用的多層前饋神經(jīng)網(wǎng)絡(luò)。該神經(jīng)網(wǎng)絡(luò)在理論和性能方面已相當(dāng)成熟,不僅具有較強(qiáng)的非線性映射能力而且具有柔性的網(wǎng)絡(luò)結(jié)構(gòu),網(wǎng)絡(luò)的隱含層層數(shù)、各層的節(jié)點數(shù)可根據(jù)具體情況任意設(shè)定,并且隨著結(jié)構(gòu)的差異其性能也有所不同。但也正因如此,如何合理的對網(wǎng)絡(luò)的結(jié)構(gòu)進(jìn)行設(shè)計以及隱含層節(jié)點數(shù)的設(shè)定并沒有嚴(yán)格的理論指導(dǎo)。在BP神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)中,輸入節(jié)點和輸出節(jié)點的數(shù)目取決于問題本身,最關(guān)鍵的就是對隱含層層數(shù)以及隱含層節(jié)點數(shù)的確定。
針對具體問題,不同的網(wǎng)絡(luò)結(jié)構(gòu)直接影響著神經(jīng)網(wǎng)絡(luò)的預(yù)測結(jié)果,若隱含層節(jié)點數(shù)目太少,所能獲取的信息太少,解決問題的依據(jù)少,預(yù)測精度必然降低;若隱含層節(jié)點數(shù)目太多,不僅會增加訓(xùn)練所需時間,而且極容易導(dǎo)致過擬合問題,泛化能力差,預(yù)測精度也必然降低,因此快速合理選擇隱含層節(jié)點數(shù)對于BP神經(jīng)網(wǎng)絡(luò)模型至關(guān)重要。
1 預(yù)備知識
1.1 BP神經(jīng)網(wǎng)絡(luò)介紹
人工神經(jīng)網(wǎng)絡(luò)是解決信息處理問題而建立的一種數(shù)學(xué)模型,之所以被稱為神經(jīng)網(wǎng)絡(luò)是因為這類數(shù)學(xué)模型所應(yīng)用的結(jié)構(gòu)是一種類似大腦神經(jīng)突觸的連接結(jié)構(gòu)。人工神經(jīng)網(wǎng)絡(luò)是對學(xué)習(xí)方法進(jìn)行優(yōu)化的算法,主要基于數(shù)學(xué)和統(tǒng)計學(xué)理論建立而成,因此可以把神經(jīng)網(wǎng)絡(luò)看作是數(shù)學(xué)統(tǒng)計學(xué)的一個實際應(yīng)用。神經(jīng)網(wǎng)絡(luò)可以在不揭示輸入與輸出變量的數(shù)學(xué)關(guān)系的基礎(chǔ)上,通過不斷學(xué)習(xí)輸入結(jié)構(gòu)以及輸出結(jié)果,便可得到輸入模式和輸出模式之間的映射關(guān)系,因而優(yōu)勢明顯強(qiáng)于正式的邏輯學(xué)推理演算。隨著學(xué)者的不斷深入研究,現(xiàn)有的人工神經(jīng)網(wǎng)絡(luò)已有很多分支,其中最為典型的就是BP神經(jīng)網(wǎng)絡(luò)。BP神經(jīng)網(wǎng)絡(luò)是一種多層的前饋神經(jīng)網(wǎng)絡(luò),它的學(xué)習(xí)算法是典型的誤差逆向傳播算法,這一算法使得網(wǎng)絡(luò)具有記憶和學(xué)習(xí)能力。在理論上,BP神經(jīng)網(wǎng)絡(luò)能夠逼近任意的連續(xù)的非線性函數(shù),而且其算法推導(dǎo)清楚,學(xué)習(xí)精度高,并且經(jīng)訓(xùn)練后的BP網(wǎng)絡(luò),運行速度很快,可操作性強(qiáng)。
1.2 網(wǎng)絡(luò)結(jié)構(gòu)
傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)由三部分組成:第一部分為輸入層(Input layer),由若干個輸入節(jié)點組成,起到傳輸信號的作用;第二部分為隱含層(Hide layer),由若干個隱含層節(jié)點組成,主要負(fù)責(zé)信息變換,接收輸入節(jié)點的輸入與輸出節(jié)點的反饋,根據(jù)實際需要會被設(shè)計成一層或者兩層;第三部分為輸出層(Output layer),由若干輸出節(jié)點組成,接收隱含層節(jié)點的輸入并向外界輸出最終結(jié)果。各層神經(jīng)節(jié)點分別與下一層神經(jīng)節(jié)點全連接且不跨層連接,層內(nèi)節(jié)點之間無連接。傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1。
2 算法原理
2.1 隱層節(jié)點數(shù)確定的常用方法
在隱含層層數(shù)和節(jié)點數(shù)的選取方面,張德賢等人利用模糊等價關(guān)系分析的方法,估計隱含層神經(jīng)元的個數(shù);焦斌等人將現(xiàn)有經(jīng)驗公式進(jìn)行對比并在此基礎(chǔ)上進(jìn)行改進(jìn);嚴(yán)鴻等人借助經(jīng)驗公式確定取值范圍,在擴(kuò)大的范圍內(nèi)尋找最優(yōu)值確定隱含層神經(jīng)元個數(shù);夏克文等人提出黃金分割原理的優(yōu)化算法,確定隱含層節(jié)點數(shù)頻繁出現(xiàn)的區(qū)間;王云等人提出粗決策樹算法,利用決策規(guī)則的個數(shù)等于隱含層神經(jīng)元個數(shù)來確定神經(jīng)網(wǎng)絡(luò)的隱含層節(jié)點數(shù);王嶸冰等人提出“ 三分法”算法結(jié)合暴力破解法確定隱含層神經(jīng)元個數(shù)。
其中酒的成分種類13個,酒的類別屬性3個,因此設(shè)置輸入層節(jié)點為13,輸出層節(jié)點為3。為了消除指標(biāo)間量綱的影響且確保網(wǎng)絡(luò)學(xué)習(xí)更穩(wěn)定,將原始數(shù)據(jù)進(jìn)行歸一化處理:x1=(x-xmin)/(xmax-x),其中xmax為樣本中的最大值,xmin為樣本中的最小值,經(jīng)過處理的數(shù)據(jù)均映射到[0,1]之間。在隱含層節(jié)點尋優(yōu)過程中,輸出層的傳輸函數(shù)為purelin,隱含層的傳輸函數(shù)為S型函數(shù),訓(xùn)練過程采用收斂速度快且有效避免陷入局部最小化的Levenberg-Marquardt算法,學(xué)習(xí)率設(shè)置為0.01,目標(biāo)誤差為0.001。
(1)首先,我們將隱含層節(jié)點在整個區(qū)間內(nèi)的所有網(wǎng)絡(luò)加以訓(xùn)練,圖2為隱含層節(jié)點數(shù)為1-20時對應(yīng)的網(wǎng)絡(luò)輸出誤差,由圖可見,隨著隱含層節(jié)點數(shù)的增加網(wǎng)絡(luò)輸出誤差大體呈現(xiàn)先減小后增大的趨勢,證明了“進(jìn)退法”的理論基礎(chǔ)有效。
(2)下面按照本文提出優(yōu)化算法確定該模型的隱含層節(jié)點數(shù)。
在范圍[1,20]內(nèi)首先設(shè)定初始點為x1=(b+a)/2=8,步長h0=(b-a)/4=4,則x2=12,因為y1 該結(jié)果與上圖結(jié)果吻合,均證明隱含層節(jié)點數(shù)為9的網(wǎng)絡(luò)誤差最小,精度最高,這表明本文的優(yōu)化算法有效且結(jié)果令人滿意,具有簡單高效的優(yōu)勢。 4 結(jié)束語 針對隱含層節(jié)點數(shù)的確定問題,提出了“進(jìn)退法”方法,逐步逼近最佳的隱含層節(jié)點數(shù)。經(jīng)檢驗,該算法切實可行,而且能起到節(jié)省成本、提升建模效率的功效。算法中既快速地鎖定了最優(yōu)解區(qū)間又驗證了最優(yōu)解為全局最小值而非局部最小值點。算法簡單實用,具有很好的應(yīng)用價值。
參考文獻(xiàn)
[1]RUMELHART D E.Learning representation by back-propagating errors[J].Nature,1986,323(6088):533-536.
[2]BAHADIRE.Prediction of prospective mathematics teachersacademic success in entering graduate education by using back-propagation neural network[J].Journal of Educationand Training Studies,2016,4(5):113-122.
[3]AZGHADI S M R,BONYADI M R,SHAHHOSSEINI H.Gender classification based on feed forward back propagation neural network [C]//International conference on artificial intelligence & innovations:from theory to applications.[s.l.]:[s.n.],2007:299-304.
[4]周啟超.BP算法改進(jìn)及在軟件成本估算中的應(yīng)用[J].計算機(jī)技術(shù)與發(fā)展,2016,26(2):195-198.
[5]師梨,陳鐵軍.智能控制理論及應(yīng)用[M].北京:清華大學(xué)出版社,2009:104-105.
[6]沈花玉,王兆霞,高成耀,等.BP神經(jīng)網(wǎng)絡(luò)隱含層單元數(shù)的確定[J].天津理工大學(xué)學(xué)報,2008,24(5):13-15.
[7]張德賢.前向神經(jīng)網(wǎng)絡(luò)合理隱含層結(jié)點個數(shù)估計[J].計算機(jī)工程與應(yīng)用,2003,39(5):21-23.
[8]夏克文,李昌彪,沈鈞毅.前向神經(jīng)網(wǎng)絡(luò)隱含層節(jié)點數(shù)的一種優(yōu)化算法[J].計算機(jī)科學(xué),2005,32(10):143-145.
[9]田國鈺,黃海洋.神經(jīng)網(wǎng)絡(luò)中隱含層的確定[J].信息技術(shù),2010,(10):79-81.
[10]溫文.基于改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的產(chǎn)品質(zhì)量合格率預(yù)測研究[D].廣州:華南理工大學(xué),2014,(4).