河南師范大學(xué)新聯(lián)學(xué)院 程聰河南師范大學(xué)新聯(lián)學(xué)院 阮瑩開封市兒童醫(yī)院 李舸
BP神經(jīng)網(wǎng)絡(luò)的研究及應(yīng)用
河南師范大學(xué)新聯(lián)學(xué)院程聰1河南師范大學(xué)新聯(lián)學(xué)院阮瑩2開封市兒童醫(yī)院李舸3
摘要:人工神經(jīng)網(wǎng)絡(luò)的應(yīng)用領(lǐng)域非常廣泛,其中大部分的人工神經(jīng)網(wǎng)絡(luò)模型采用BP網(wǎng)絡(luò),它也是前饋網(wǎng)絡(luò)的核心部分,體現(xiàn)了人工神經(jīng)網(wǎng)絡(luò)最精華的部分。通過對BP算法的研究,提出了利用它來實現(xiàn)對我國的三大產(chǎn)業(yè)數(shù)據(jù)的預(yù)測方案。并在MATLAB仿真中取得了很好的效果。
關(guān)鍵詞:BP神經(jīng)網(wǎng)絡(luò);MATLAB仿真
中圖分類號:TP183
文獻(xiàn)標(biāo)識碼:A
文章編號:1671-864X(2015)03-0181-02
BP(Back Propagation)網(wǎng)絡(luò)是1986年由Rumelhart和McCelland為首的科學(xué)家小組提出,是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。它的學(xué)習(xí)規(guī)則是使用最速下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。BP一般為多層神經(jīng)網(wǎng)絡(luò),其模型拓?fù)浣Y(jié)構(gòu)一般包括輸入層(input)、隱層(hide layer)和輸出層(output layer)。如圖1所示:
(一)最速下降BP算法(steepest descent backpropagation,SDBP)
如圖2所示的BP神經(jīng)網(wǎng)絡(luò),設(shè)k為迭代次數(shù),則每一次權(quán)值和閾值的修正案下式進(jìn)行:
式中:w(t)為第k次迭代各層之間的連接權(quán)向量或閾值向量。x(k)=為第k次迭代的神經(jīng)網(wǎng)絡(luò)輸出誤差對個權(quán)值或閾值的梯度向量。負(fù)號代表梯度的反方向,即梯度的最速下降方向。α為學(xué)習(xí)速率,在訓(xùn)練時事一常數(shù)。在MATLAB神經(jīng)網(wǎng)絡(luò)工具箱中,其默認(rèn)值為0.01,可以通過改變訓(xùn)練參數(shù)進(jìn)行設(shè)置。EK為第k次迭代的網(wǎng)絡(luò)輸出的總誤差性能函數(shù),在MATLAB神經(jīng)網(wǎng)絡(luò)工具箱中,BP網(wǎng)絡(luò)誤差性能函數(shù)的默認(rèn)值為均誤差MSE(mean square error)∶
根據(jù)(2.2)式,可以求出第k次迭代的總誤差曲面的梯度x(k)=,分別代入式(2.1)中,就可以逐次修正其權(quán)值和閾值,并使總的誤差向減小的方向變化,最終求出所要求的誤差性能。
(二)沖量BP算法(momentum backpropagation,MOBP)
因為反向傳播算法的應(yīng)用廣泛,所以已經(jīng)開發(fā)出了很多反向傳播算法的變體。其中最常見得事在梯度下降算法的基礎(chǔ)上修改公式(2.1)的權(quán)值更新法則,即引入沖量因子η,并且0≤η<1的常數(shù)。更新后的公式為:
標(biāo)準(zhǔn)BP算法實質(zhì)上是一種簡單的最速下降靜態(tài)尋優(yōu)方法,在修正W(K)時,只按照第K步的負(fù)梯度方向進(jìn)行修正,而沒有考慮到以前積累的經(jīng)驗,即以前時刻的梯度方向,從而常常使學(xué)習(xí)過程發(fā)生振蕩,收斂緩慢。動量法權(quán)值調(diào)整算法的具體做法是:將上一次權(quán)值調(diào)整量的一部分迭加到按本次誤差計算所得的權(quán)值調(diào)整量上,作為本次的實際權(quán)值調(diào)整量,即公式(2.3)所示:η是沖量系數(shù),通常0≤η<1;α為學(xué)習(xí)率,范圍在0.001~1之間。這種方法所加的沖量因子實際上相當(dāng)于阻尼項,它減小了學(xué)習(xí)過程中的振蕩趨勢,來改善收斂性。沖量法降低了網(wǎng)絡(luò)對誤差曲面局部細(xì)節(jié)的敏感性,有效的抑制了網(wǎng)絡(luò)陷入局部極小值。
(三)學(xué)習(xí)率可變的BP算法(variable learnling rate backpropagation, VLBP)
標(biāo)準(zhǔn)BP算法收斂速度緩慢的一個重要原因是學(xué)習(xí)率選擇不當(dāng),學(xué)習(xí)率選得太小,收斂慢;反之,則有可能修正的過頭,導(dǎo)致振蕩甚至發(fā)散。因此可以采用圖3所示的自適應(yīng)方法調(diào)整學(xué)習(xí)率。
自適應(yīng)調(diào)整學(xué)習(xí)率的梯度下降算法,在訓(xùn)練的過程中,力求使算法穩(wěn)定,而同時又使學(xué)習(xí)的不長盡量地大,學(xué)習(xí)率則是根據(jù)局部誤差曲面作出相應(yīng)的調(diào)整。學(xué)習(xí)率則是通過乘上一個相應(yīng)的增量因子來調(diào)整學(xué)習(xí)率的大小。即公式(2.5)所示:
其中:Kinc為使步長增加的增量因子,Kdec為使步長減小的增量因子;α為學(xué)習(xí)率。
BP預(yù)測模型的設(shè)計主要有輸入層、隱含層、輸出層及各層的個數(shù)和層與層之間的傳輸函數(shù)。
(一)網(wǎng)絡(luò)層數(shù)
BP有一個輸入層和一個輸出層,但可以包含多個隱含層。但理論的上已證明,在不限制隱含層節(jié)點的情況下,只有一個隱含層的BP就可以實現(xiàn)任意非線性映射。
(二)輸入層和輸出層的節(jié)點數(shù)
輸入層是BP的第一層,它的節(jié)點數(shù)由輸入的信號的維數(shù)決定,這里輸入層的個數(shù)為3;輸出層的節(jié)點數(shù)取決于BP的具體應(yīng)用有關(guān),這里輸出節(jié)點為1。
(三)隱含層的節(jié)點數(shù)
隱含層節(jié)點數(shù)的選擇往往是根據(jù)前人設(shè)計所得的經(jīng)驗和自己的進(jìn)行的實驗來確定的。根據(jù)前人經(jīng)驗,可以參考以下公式設(shè)計:
其中:n為隱含層節(jié)點數(shù);m為輸入節(jié)點數(shù);t為輸出節(jié)點數(shù);a為1~10之間的常數(shù)。根據(jù)本文要預(yù)測的數(shù)據(jù)及輸入和輸出節(jié)點的個數(shù),則取隱含層個數(shù)為10。
(四)傳輸函數(shù)
BP神經(jīng)網(wǎng)絡(luò)中的傳輸函數(shù)通常采用S(sigmoid)型函數(shù):
如果BP神經(jīng)網(wǎng)絡(luò)的最后一層是Sigmoid函數(shù),那么整個網(wǎng)絡(luò)的輸出就會限制在0~1之間的連續(xù);而如果選的是Pureline函數(shù),那么整個網(wǎng)絡(luò)輸出可以取任意值。因此函數(shù)選取分別為sigmoid和pureline函數(shù)。
(一)樣本數(shù)據(jù)的預(yù)處理
本文的樣本數(shù)據(jù)來源于中國歷年國內(nèi)生產(chǎn)總值統(tǒng)計表,為了讓樣本數(shù)據(jù)在同一數(shù)量級上,首先對BP輸入和輸出數(shù)據(jù)進(jìn)行預(yù)處理:將原樣本數(shù)據(jù)乘上0.0001,同時將樣本數(shù)據(jù)分為訓(xùn)練樣本集和測試樣本集,1991~1999年我國的三大產(chǎn)業(yè)的各總值的處理結(jié)果作為訓(xùn)練樣本集,即1991~1998年訓(xùn)練樣本作為訓(xùn)練輸入;1999年訓(xùn)練樣本數(shù)據(jù)作為輸出訓(xùn)練輸出;1992~2000年我國的三大產(chǎn)業(yè)的各總值的處理結(jié)果作為測試樣本集,即1992~1999年的測試樣本作為測試輸入,2000年測試樣本數(shù)據(jù)作為測試輸出。
(二)確定傳輸函數(shù)
根據(jù)本文的數(shù)據(jù),如第3節(jié)所述,本文選取S函數(shù)(tansig)和線性函數(shù)(purelin)。
(三)設(shè)定BP的最大學(xué)習(xí)迭代次數(shù)為5000次。
(四)設(shè)定BP的學(xué)習(xí)精度為0.001;BP的學(xué)習(xí)率為0.1。
(五)創(chuàng)建BP結(jié)構(gòu)如圖4所示;訓(xùn)練BP的結(jié)果圖5所示:
正如圖5所示的數(shù)據(jù)與本文所示設(shè)計的網(wǎng)絡(luò)模型相符,且如圖5所示當(dāng)BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)迭代到99次時,就達(dá)到了學(xué)習(xí)精度0.000997788,其學(xué)習(xí)速度比較快。
(六)測試BP神經(jīng)網(wǎng)絡(luò)
通過MATLAB對測試樣本數(shù)據(jù)進(jìn)行仿真,與實際的2000年我國三大產(chǎn)業(yè)的各生產(chǎn)總值比較(見表1),說明BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型是可行的。
表1 2000年我國三大產(chǎn)業(yè)的各生產(chǎn)總值
總之,在人工神經(jīng)網(wǎng)絡(luò)的實際應(yīng)用中,BP神經(jīng)網(wǎng)絡(luò)廣泛應(yīng)用于函數(shù)逼近、模式識別/分類、數(shù)據(jù)壓縮等。通過本文可以體現(xiàn)出MATLAB語言在編程的高效、簡潔和靈活。雖然BP在預(yù)測方面有很多的優(yōu)點,但其還有一定的局限性,還需要進(jìn)一步的改進(jìn)。
參考文獻(xiàn):
[1]周開利,康耀紅.神經(jīng)網(wǎng)絡(luò)模型及其MATLAB仿真程序設(shè)計[M].北京∶清華大學(xué)出版社,2005.7
[2]張德豐等.MATLAB神經(jīng)網(wǎng)絡(luò)應(yīng)用設(shè)計[M].北京∶機械工業(yè)出版社,2009.1
[3](美)米歇爾(Mitchell,T.M.)著;曾華軍等譯.北京∶機械工業(yè)出版社,2003.1
[4]豈興明等編著.MATLAB7.0程序設(shè)計快速入門[M].北京∶人民郵電出版社,2009.7
[5]李正學(xué).神經(jīng)網(wǎng)絡(luò)理論及其在股市短期預(yù)測中的應(yīng)用[D].長春∶吉林大學(xué),2004
1.程聰(1981--)河南省開封市人畢業(yè)于河南財經(jīng)政法大學(xué)計算機應(yīng)用技術(shù)專業(yè)數(shù)字圖像處理方向
2.阮瑩河南師范大學(xué)新聯(lián)學(xué)院畢業(yè)于河南科技大學(xué)計算機應(yīng)用技術(shù)專業(yè)
3.李舸開封市兒童醫(yī)院畢業(yè)于河南大學(xué)護(hù)理學(xué)院兒童護(hù)理智能技術(shù)專業(yè)
作者簡介: