孫弋清
摘 要:在BP神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)中,輸入節(jié)點(diǎn)和輸出節(jié)點(diǎn)個(gè)數(shù)的確定取決于問(wèn)題本身,構(gòu)建神經(jīng)網(wǎng)絡(luò)的關(guān)鍵點(diǎn)就在于隱含層層數(shù)以及隱含層節(jié)點(diǎn)數(shù)的確定。如何合理的對(duì)網(wǎng)絡(luò)的結(jié)構(gòu)進(jìn)行設(shè)計(jì)以及隱含層節(jié)點(diǎn)數(shù)的設(shè)定至今沒(méi)有嚴(yán)格的理論指導(dǎo),只能借助學(xué)者給出的經(jīng)驗(yàn)公式并進(jìn)行多次試驗(yàn)得以確定。針對(duì)該問(wèn)題,提出了一種“進(jìn)退法”算法可快速確定隱含層節(jié)點(diǎn)數(shù)的最優(yōu)解區(qū)間。運(yùn)用Matlab進(jìn)行仿真實(shí)驗(yàn),結(jié)果表明該算法在合理有效的基礎(chǔ)上極大地提高了網(wǎng)絡(luò)的運(yùn)行效率。
關(guān)鍵詞:神經(jīng)網(wǎng)絡(luò);隱含層節(jié)點(diǎn)數(shù);最優(yōu)解區(qū)間;進(jìn)退法
中圖分類(lèi)號(hào):TB 文獻(xiàn)標(biāo)識(shí)碼: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é)點(diǎn)數(shù)可根據(jù)具體情況任意設(shè)定,并且隨著結(jié)構(gòu)的差異其性能也有所不同。但也正因如此,如何合理的對(duì)網(wǎng)絡(luò)的結(jié)構(gòu)進(jìn)行設(shè)計(jì)以及隱含層節(jié)點(diǎn)數(shù)的設(shè)定并沒(méi)有嚴(yán)格的理論指導(dǎo)。在BP神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)中,輸入節(jié)點(diǎn)和輸出節(jié)點(diǎn)的數(shù)目取決于問(wèn)題本身,最關(guān)鍵的就是對(duì)隱含層層數(shù)以及隱含層節(jié)點(diǎn)數(shù)的確定。
針對(duì)具體問(wèn)題,不同的網(wǎng)絡(luò)結(jié)構(gòu)直接影響著神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果,若隱含層節(jié)點(diǎn)數(shù)目太少,所能獲取的信息太少,解決問(wèn)題的依據(jù)少,預(yù)測(cè)精度必然降低;若隱含層節(jié)點(diǎn)數(shù)目太多,不僅會(huì)增加訓(xùn)練所需時(shí)間,而且極容易導(dǎo)致過(guò)擬合問(wèn)題,泛化能力差,預(yù)測(cè)精度也必然降低,因此快速合理選擇隱含層節(jié)點(diǎn)數(shù)對(duì)于BP神經(jīng)網(wǎng)絡(luò)模型至關(guān)重要。
1 預(yù)備知識(shí)
1.1 BP神經(jīng)網(wǎng)絡(luò)介紹
人工神經(jīng)網(wǎng)絡(luò)是解決信息處理問(wèn)題而建立的一種數(shù)學(xué)模型,之所以被稱(chēng)為神經(jīng)網(wǎng)絡(luò)是因?yàn)檫@類(lèi)數(shù)學(xué)模型所應(yīng)用的結(jié)構(gòu)是一種類(lèi)似大腦神經(jīng)突觸的連接結(jié)構(gòu)。人工神經(jīng)網(wǎng)絡(luò)是對(duì)學(xué)習(xí)方法進(jìn)行優(yōu)化的算法,主要基于數(shù)學(xué)和統(tǒng)計(jì)學(xué)理論建立而成,因此可以把神經(jīng)網(wǎng)絡(luò)看作是數(shù)學(xué)統(tǒng)計(jì)學(xué)的一個(gè)實(shí)際應(yīng)用。神經(jīng)網(wǎng)絡(luò)可以在不揭示輸入與輸出變量的數(shù)學(xué)關(guān)系的基礎(chǔ)上,通過(guò)不斷學(xué)習(xí)輸入結(jié)構(gòu)以及輸出結(jié)果,便可得到輸入模式和輸出模式之間的映射關(guān)系,因而優(yōu)勢(shì)明顯強(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ò),運(yùn)行速度很快,可操作性強(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),由若干個(gè)輸入節(jié)點(diǎn)組成,起到傳輸信號(hào)的作用;第二部分為隱含層(Hide layer),由若干個(gè)隱含層節(jié)點(diǎn)組成,主要負(fù)責(zé)信息變換,接收輸入節(jié)點(diǎn)的輸入與輸出節(jié)點(diǎn)的反饋,根據(jù)實(shí)際需要會(huì)被設(shè)計(jì)成一層或者兩層;第三部分為輸出層(Output layer),由若干輸出節(jié)點(diǎn)組成,接收隱含層節(jié)點(diǎn)的輸入并向外界輸出最終結(jié)果。各層神經(jīng)節(jié)點(diǎn)分別與下一層神經(jīng)節(jié)點(diǎn)全連接且不跨層連接,層內(nèi)節(jié)點(diǎn)之間無(wú)連接。傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1。
2 算法原理
2.1 隱層節(jié)點(diǎn)數(shù)確定的常用方法
在隱含層層數(shù)和節(jié)點(diǎn)數(shù)的選取方面,張德賢等人利用模糊等價(jià)關(guān)系分析的方法,估計(jì)隱含層神經(jīng)元的個(gè)數(shù);焦斌等人將現(xiàn)有經(jīng)驗(yàn)公式進(jìn)行對(duì)比并在此基礎(chǔ)上進(jìn)行改進(jìn);嚴(yán)鴻等人借助經(jīng)驗(yàn)公式確定取值范圍,在擴(kuò)大的范圍內(nèi)尋找最優(yōu)值確定隱含層神經(jīng)元個(gè)數(shù);夏克文等人提出黃金分割原理的優(yōu)化算法,確定隱含層節(jié)點(diǎn)數(shù)頻繁出現(xiàn)的區(qū)間;王云等人提出粗決策樹(shù)算法,利用決策規(guī)則的個(gè)數(shù)等于隱含層神經(jīng)元個(gè)數(shù)來(lái)確定神經(jīng)網(wǎng)絡(luò)的隱含層節(jié)點(diǎn)數(shù);王嶸冰等人提出“ 三分法”算法結(jié)合暴力破解法確定隱含層神經(jīng)元個(gè)數(shù)。
其中酒的成分種類(lèi)13個(gè),酒的類(lèi)別屬性3個(gè),因此設(shè)置輸入層節(jié)點(diǎn)為13,輸出層節(jié)點(diǎn)為3。為了消除指標(biāo)間量綱的影響且確保網(wǎng)絡(luò)學(xué)習(xí)更穩(wěn)定,將原始數(shù)據(jù)進(jìn)行歸一化處理:x1=(x-xmin)/(xmax-x),其中xmax為樣本中的最大值,xmin為樣本中的最小值,經(jīng)過(guò)處理的數(shù)據(jù)均映射到[0,1]之間。在隱含層節(jié)點(diǎn)尋優(yōu)過(guò)程中,輸出層的傳輸函數(shù)為purelin,隱含層的傳輸函數(shù)為S型函數(shù),訓(xùn)練過(guò)程采用收斂速度快且有效避免陷入局部最小化的Levenberg-Marquardt算法,學(xué)習(xí)率設(shè)置為0.01,目標(biāo)誤差為0.001。
(1)首先,我們將隱含層節(jié)點(diǎn)在整個(gè)區(qū)間內(nèi)的所有網(wǎng)絡(luò)加以訓(xùn)練,圖2為隱含層節(jié)點(diǎn)數(shù)為1-20時(shí)對(duì)應(yīng)的網(wǎng)絡(luò)輸出誤差,由圖可見(jiàn),隨著隱含層節(jié)點(diǎn)數(shù)的增加網(wǎng)絡(luò)輸出誤差大體呈現(xiàn)先減小后增大的趨勢(shì),證明了“進(jìn)退法”的理論基礎(chǔ)有效。
(2)下面按照本文提出優(yōu)化算法確定該模型的隱含層節(jié)點(diǎn)數(shù)。
在范圍[1,20]內(nèi)首先設(shè)定初始點(diǎn)為x1=(b+a)/2=8,步長(zhǎng)h0=(b-a)/4=4,則x2=12,因?yàn)閥1 該結(jié)果與上圖結(jié)果吻合,均證明隱含層節(jié)點(diǎn)數(shù)為9的網(wǎng)絡(luò)誤差最小,精度最高,這表明本文的優(yōu)化算法有效且結(jié)果令人滿意,具有簡(jiǎn)單高效的優(yōu)勢(shì)。 4 結(jié)束語(yǔ) 針對(duì)隱含層節(jié)點(diǎn)數(shù)的確定問(wèn)題,提出了“進(jìn)退法”方法,逐步逼近最佳的隱含層節(jié)點(diǎn)數(shù)。經(jīng)檢驗(yàn),該算法切實(shí)可行,而且能起到節(jié)省成本、提升建模效率的功效。算法中既快速地鎖定了最優(yōu)解區(qū)間又驗(yàn)證了最優(yōu)解為全局最小值而非局部最小值點(diǎn)。算法簡(jiǎn)單實(shí)用,具有很好的應(yīng)用價(jià)值。
參考文獻(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ì)算機(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é)報(bào),2008,24(5):13-15.
[7]張德賢.前向神經(jīng)網(wǎng)絡(luò)合理隱含層結(jié)點(diǎn)個(gè)數(shù)估計(jì)[J].計(jì)算機(jī)工程與應(yīng)用,2003,39(5):21-23.
[8]夏克文,李昌彪,沈鈞毅.前向神經(jīng)網(wǎng)絡(luò)隱含層節(jié)點(diǎn)數(shù)的一種優(yōu)化算法[J].計(jì)算機(jī)科學(xué),2005,32(10):143-145.
[9]田國(guó)鈺,黃海洋.神經(jīng)網(wǎng)絡(luò)中隱含層的確定[J].信息技術(shù),2010,(10):79-81.
[10]溫文.基于改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的產(chǎn)品質(zhì)量合格率預(yù)測(cè)研究[D].廣州:華南理工大學(xué),2014,(4).