何志連,王福林,董慧英,王會(huì)鵬
(東北農(nóng)業(yè)大學(xué) 工程學(xué)院,哈爾濱 150030)
?
BP神經(jīng)網(wǎng)絡(luò)最佳停止法對(duì)農(nóng)機(jī)總動(dòng)力的預(yù)測(cè)
何志連,王福林,董慧英,王會(huì)鵬
(東北農(nóng)業(yè)大學(xué) 工程學(xué)院,哈爾濱 150030)
在分析和研究了基于神經(jīng)網(wǎng)絡(luò)的農(nóng)機(jī)總動(dòng)力預(yù)測(cè)的基礎(chǔ)上,指出了神經(jīng)網(wǎng)絡(luò)傳統(tǒng)預(yù)測(cè)方法預(yù)測(cè)精度低的原因是神經(jīng)網(wǎng)絡(luò)訓(xùn)練階段和預(yù)測(cè)階段的矛盾性。通過(guò)一系列實(shí)驗(yàn)表明:隨著擬合誤差的逐漸減小,預(yù)測(cè)誤差出現(xiàn)了先下降后上升的規(guī)律,即所謂的“過(guò)擬合”問(wèn)題。為了解決這個(gè)問(wèn)題,應(yīng)用最佳停止法對(duì)農(nóng)機(jī)總動(dòng)力進(jìn)行預(yù)測(cè),該方法把樣本集分成訓(xùn)練樣本集、確認(rèn)樣本集及驗(yàn)證樣本集3部分。在訓(xùn)練過(guò)程中監(jiān)測(cè)訓(xùn)練樣本集和確認(rèn)樣本集的誤差,當(dāng)確認(rèn)樣本集的誤差連續(xù)20次不減小時(shí),退出訓(xùn)練,返回最小確認(rèn)樣本集誤差所對(duì)應(yīng)的網(wǎng)絡(luò)數(shù)據(jù),并用驗(yàn)證樣本集來(lái)檢驗(yàn)最佳停止法的預(yù)測(cè)精度。實(shí)驗(yàn)數(shù)據(jù)表明:最佳停止法避免了網(wǎng)絡(luò)出現(xiàn)的“過(guò)擬合”問(wèn)題,有效提高了預(yù)測(cè)精度。最后,用這個(gè)訓(xùn)練好的網(wǎng)絡(luò)模型預(yù)測(cè)了黑龍江省2015-2020年的農(nóng)機(jī)總動(dòng)力。
農(nóng)機(jī)總動(dòng)力;最佳停止法;神經(jīng)網(wǎng)絡(luò);時(shí)間序列;過(guò)擬合
農(nóng)機(jī)總動(dòng)力(農(nóng)業(yè)機(jī)械總動(dòng)力的簡(jiǎn)稱(chēng))指主要用于農(nóng)、林、牧、漁業(yè)的各種動(dòng)力機(jī)械的動(dòng)力總和, 包括耕作機(jī)械、排灌機(jī)械、收獲機(jī)械、農(nóng)用運(yùn)輸機(jī)械、植物保護(hù)機(jī)械、牧業(yè)機(jī)械、林業(yè)機(jī)械、漁業(yè)機(jī)械和其他農(nóng)業(yè)機(jī)械。某地區(qū)的農(nóng)機(jī)總動(dòng)力是衡量該地區(qū)農(nóng)業(yè)機(jī)械化水平的主要指標(biāo),也是該地區(qū)政府部門(mén)制定農(nóng)業(yè)機(jī)械化發(fā)展規(guī)劃及農(nóng)機(jī)生產(chǎn)企業(yè)指定產(chǎn)品結(jié)構(gòu)調(diào)整方案的重要參考數(shù)據(jù)[1]。因此,做好農(nóng)機(jī)總動(dòng)力的預(yù)測(cè)具有十分重要的意義。目前,關(guān)于農(nóng)機(jī)總動(dòng)力的預(yù)測(cè)方法主要有線(xiàn)性回歸模型、移動(dòng)平均法、指數(shù)平滑法、灰色GM(1,1)模型、龔珀茲曲線(xiàn)、組合預(yù)測(cè)和人工神經(jīng)網(wǎng)絡(luò)等[2],但預(yù)測(cè)效果都不太理想。BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單,且BP算法易于實(shí)現(xiàn),有很強(qiáng)的非線(xiàn)性函數(shù)映射能力,在時(shí)間序列預(yù)測(cè)方面得到了廣泛的應(yīng)用。但是,傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)方法的泛化能力不足,預(yù)測(cè)的精度難以保證。針對(duì)這個(gè)問(wèn)題,本文提出最佳停止法來(lái)改善BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)能力。
1.1 BP算法的分析
BP算法是BP神經(jīng)網(wǎng)絡(luò)的核心,由信息的正向傳遞和誤差的反向傳播兩部分組成。3層的BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 3層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
1)信息的正向傳遞:設(shè)X=[x0,x1,x2,…,xI]T,V=(vij)I×J,W=(wjk)J×K,Y=[y1,y2,…,yK]T,Z=[z1,z2,…,zj,…,zJ]T。其中,I、J、K分別表示輸入層、隱含層和輸出層神經(jīng)元的個(gè)數(shù);i、j、k分別表示輸入層、隱含層和輸出層任一神經(jīng)元。
(1)
(2)
ek=dk-yk
(3)
(4)
2)誤差的反向傳播:誤差首先由輸出層傳播到隱含層,計(jì)算出誤差對(duì)隱含層到輸出層連接權(quán)值的梯度矩陣W;再由隱含層傳播到輸入層,計(jì)算出誤差對(duì)輸入層到隱含層連接權(quán)值的梯度矩陣V。調(diào)整公式分別為
(5)
wjk(n+1)=wjk(n)+Δwjk(n)
(6)
(7)
vij(n+1)=vij(n)+Δvij(n)
(8)
其中,n表示迭代次數(shù),η表示學(xué)習(xí)率。
1.2 BP神經(jīng)網(wǎng)絡(luò)傳統(tǒng)預(yù)測(cè)方法存在的問(wèn)題
1)BP神經(jīng)網(wǎng)絡(luò)采取的是有導(dǎo)師學(xué)習(xí)方式,在對(duì)訓(xùn)練樣本進(jìn)行擬合的時(shí)候,理論上如果隱含層神經(jīng)元個(gè)數(shù)足夠多,輸出層神經(jīng)元的輸出信號(hào)可以以任意精度逼近導(dǎo)師信號(hào),但是不一定擬合精度越高,預(yù)測(cè)的精度也越高。擬合精度太高有可能會(huì)出現(xiàn)“過(guò)擬合”的現(xiàn)象。也就是說(shuō),BP神經(jīng)網(wǎng)絡(luò)在學(xué)習(xí)過(guò)程中學(xué)習(xí)了樣本過(guò)多的細(xì)節(jié),反而失去了這些樣本中蘊(yùn)藏的一般規(guī)律,這就是所謂的“過(guò)學(xué)習(xí)”現(xiàn)象。“過(guò)學(xué)習(xí)”導(dǎo)致“過(guò)擬合”,過(guò)擬合導(dǎo)致預(yù)測(cè)精度低,預(yù)測(cè)的時(shí)間序列越多,誤差越大。
2)傳統(tǒng)的預(yù)測(cè)方法隱含層神經(jīng)元的傳遞函數(shù)采用對(duì)數(shù)S型函數(shù)或者雙曲正切S型函數(shù),輸出層神經(jīng)元的傳遞函數(shù)采用線(xiàn)性函數(shù)。這樣的組合雖然能夠提高收斂速度和非線(xiàn)性擬合能力,而且輸出層神經(jīng)元的輸出信號(hào)的取值范圍也不受限;但是,實(shí)際上對(duì)增長(zhǎng)型的時(shí)間序列的預(yù)測(cè)效果并不理想。因?yàn)殡[含層神經(jīng)元采用S型函數(shù)為傳遞函數(shù)時(shí),由于其函數(shù)值是受限的,那么在預(yù)測(cè)階段其函數(shù)值已經(jīng)達(dá)到飽和,會(huì)導(dǎo)致訓(xùn)練階段與預(yù)測(cè)階段的矛盾性。
3)時(shí)間序列的預(yù)測(cè)往往給出的數(shù)據(jù)有限,如何選擇輸入樣本的維數(shù)直接關(guān)系著網(wǎng)絡(luò)結(jié)構(gòu)的確定,同時(shí)也決定了輸入樣本的個(gè)數(shù)。輸入樣本的維數(shù)不宜過(guò)多也不宜過(guò)少。輸入維數(shù)過(guò)多則輸入樣本個(gè)數(shù)會(huì)過(guò)少,網(wǎng)絡(luò)就難以學(xué)習(xí)到蘊(yùn)藏在樣本中的一般規(guī)律。時(shí)間序列預(yù)測(cè)是一種讓歷史告訴未來(lái)的預(yù)測(cè)方法,輸入樣本維數(shù)過(guò)少意味著歷史太少,難以預(yù)測(cè)未來(lái)。
2.1 最佳停止法的原理
最佳停止法是一種有效提高網(wǎng)絡(luò)泛化能力的方法,解決了傳統(tǒng)方法訓(xùn)練階段和預(yù)測(cè)階段的矛盾及網(wǎng)絡(luò)的“過(guò)擬合”問(wèn)題。
在最佳停止法中,樣本數(shù)據(jù)被劃分成3部分:一是訓(xùn)練樣本集,在網(wǎng)絡(luò)訓(xùn)練過(guò)程中用來(lái)計(jì)算梯度和修正網(wǎng)絡(luò)的權(quán)值和閾值;二是確認(rèn)樣本集,在訓(xùn)練過(guò)程中監(jiān)控確認(rèn)樣本集的誤差;三是驗(yàn)證樣本集,是用來(lái)檢驗(yàn)網(wǎng)絡(luò)的預(yù)測(cè)效果的。這部分樣本在網(wǎng)絡(luò)訓(xùn)練中并沒(méi)有用到,也就是說(shuō)事先假設(shè)確認(rèn)樣本集的輸出是不知道的。在訓(xùn)練的過(guò)程中,每訓(xùn)練一次不僅要計(jì)算出訓(xùn)練樣本集的誤差,同時(shí)也要計(jì)算出確認(rèn)樣本集的誤差。訓(xùn)練樣本集的誤差在BP算法的操作下進(jìn)行反向傳播,層層修正網(wǎng)絡(luò)的權(quán)值和閾值。在訓(xùn)練初期,訓(xùn)練樣本集和確認(rèn)樣本集的誤差都會(huì)連續(xù)減??;在訓(xùn)練達(dá)到一定程度時(shí),訓(xùn)練樣本集的誤差還在繼續(xù)減小,但確認(rèn)樣本集的誤差可能會(huì)增大。以確認(rèn)樣本集的誤差第1次開(kāi)始增大為計(jì)數(shù)點(diǎn),保留前一次確認(rèn)樣本集的誤差和網(wǎng)絡(luò)的各項(xiàng)數(shù)據(jù)。網(wǎng)絡(luò)繼續(xù)訓(xùn)練,當(dāng)確認(rèn)樣本集的誤差連續(xù)不減小的次數(shù)達(dá)到設(shè)定次數(shù)時(shí),網(wǎng)絡(luò)退出訓(xùn)練,返回最小確認(rèn)樣本集誤差所對(duì)應(yīng)的網(wǎng)絡(luò)數(shù)據(jù),即為網(wǎng)絡(luò)訓(xùn)練的最終結(jié)果。
2.2 最佳停止法的實(shí)現(xiàn)
最佳停止法可以用于MatLab神經(jīng)網(wǎng)絡(luò)工具箱中的各種訓(xùn)練函數(shù),僅需要將確認(rèn)樣本集的數(shù)據(jù)傳送給訓(xùn)練函數(shù)。但在收斂速度太快的算法(如trainlm)中使用最佳停止法要特別謹(jǐn)慎,需要設(shè)置訓(xùn)練參數(shù)(如將系數(shù)mu設(shè)置得相對(duì)大一些,如設(shè)為1;將mu_dec和mu_inc設(shè)為接近1的數(shù)值,如分別為0.8和1.5),以減小收斂速度;而對(duì)于采用收斂速度較慢的算法的訓(xùn)練函數(shù)(如trainscg和trainrp),通常應(yīng)用最佳停止法的效果很好。另外,確認(rèn)樣本集的選擇也是很重要的,確認(rèn)樣本集應(yīng)該要有代表性。實(shí)現(xiàn)最佳停止法的參數(shù)設(shè)置如下:
Net.divideFcn=’divideind’; %樣本劃分函數(shù)
Net.divideparam.trainind=train_ind; %訓(xùn)練樣本
Net.divideparam.valind=val_ind; %確認(rèn)樣本
Net.divideparam.testind=test_ind; %驗(yàn)證樣本
Net.trainparam.max_fail=20; %最大失敗次數(shù)
其中,divideind只是樣本劃分函數(shù)的其中一種,除此之外還有dividedblock、dividedint、dividerand和dividetrain函數(shù)。
根據(jù)2015年黑龍江省統(tǒng)計(jì)年鑒,黑龍江省1980-2014年農(nóng)機(jī)總動(dòng)力數(shù)據(jù)如表1所示。
表1 黑龍江省1980-2014年農(nóng)機(jī)總動(dòng)力
3.1 BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型建立
1)網(wǎng)絡(luò)結(jié)構(gòu)的確定。設(shè)時(shí)間序列數(shù)為M=2014-1980=35,樣本輸入的維數(shù)I=6,樣本個(gè)數(shù)為R=M-I=29,隱含層神經(jīng)元個(gè)數(shù)J=6,樣本輸出維數(shù)為1,建立6-6-1的3層BP神經(jīng)網(wǎng)絡(luò),如圖1所示。
2) BP算法的選擇。為了觀測(cè)在網(wǎng)絡(luò)訓(xùn)練過(guò)程中誤差的變化規(guī)律,以及考慮到運(yùn)用最佳停止法進(jìn)行訓(xùn)練時(shí)觀測(cè)訓(xùn)練樣本和確認(rèn)樣本的誤差變化規(guī)律,選擇收斂速度適中的彈性BP算法。
3) 歸一化。根據(jù)輸入維數(shù)為6,輸出維數(shù)為1,生成樣本原始數(shù)據(jù)表,再把樣本原始數(shù)據(jù)按照式(9)歸一化到[0,1]區(qū)間,則
(9)
其中,xmin為數(shù)據(jù)序列中的最小數(shù),xmax為數(shù)據(jù)序列中的最大數(shù)。
3.2 農(nóng)機(jī)總動(dòng)力的傳統(tǒng)方法預(yù)測(cè)
以輸出為1986-2010年黑龍江省農(nóng)機(jī)總動(dòng)力數(shù)據(jù)對(duì)應(yīng)的樣本作為訓(xùn)練樣本,以輸出為2011-2014年黑龍江省農(nóng)機(jī)總動(dòng)力數(shù)據(jù)對(duì)應(yīng)的樣本作為驗(yàn)證樣本。為了驗(yàn)證擬合誤差與預(yù)測(cè)誤差的關(guān)系,設(shè)計(jì)不同均方誤差精度的網(wǎng)絡(luò)訓(xùn)練仿真實(shí)驗(yàn)得到實(shí)驗(yàn)數(shù)據(jù),如表2所示。
表2 擬合誤差與預(yù)測(cè)誤差關(guān)系
表中的數(shù)據(jù)都是訓(xùn)練10次取平均值得到的。由表2可見(jiàn):擬合平均相對(duì)誤差隨著均方誤差的減小而減小,預(yù)測(cè)平均相對(duì)誤差隨著擬合平均相對(duì)誤差的減小而先減小后增大。這驗(yàn)證了傳統(tǒng)預(yù)測(cè)方法訓(xùn)練階段和預(yù)測(cè)階段的矛盾性,即所謂的“過(guò)擬合”問(wèn)題。
3.3 農(nóng)機(jī)總動(dòng)力的最佳停止法預(yù)測(cè)
以輸出為1986、1987、1989、1990、1992、1993、1995、1996、1998、1999、2001、2002、2004、2005、2007、2008、2010年黑龍江省農(nóng)機(jī)總動(dòng)力數(shù)據(jù)所對(duì)應(yīng)的樣本為訓(xùn)練樣本;以輸出為1988、1991、1994、1997、2000、2003、2006、2009年黑龍江省農(nóng)機(jī)總動(dòng)力數(shù)據(jù)所對(duì)應(yīng)的樣本為確認(rèn)樣本;以2011-2014年數(shù)據(jù)所對(duì)應(yīng)的樣本為驗(yàn)證樣本。仿真實(shí)驗(yàn)數(shù)據(jù)如表3所示。
由表3可見(jiàn):采用最佳停止法的預(yù)測(cè)誤差為2.87%,訓(xùn)練樣本平均相對(duì)誤差(即擬合平均相對(duì)誤差)為3.37%,確認(rèn)樣本平均相對(duì)誤差為3.59%。采用最佳停止法預(yù)測(cè)誤差的2.87%比傳統(tǒng)方法預(yù)測(cè)誤差處于最低時(shí)的4.54%還低1.67%,即誤差減小了36.78%。另外,最佳停止法的訓(xùn)練樣本平均相對(duì)誤差和確認(rèn)樣本平均相對(duì)誤差相當(dāng),說(shuō)明了樣本劃分的合理性,有效避免了出現(xiàn)“過(guò)擬合”。
為了直觀地看到最佳停止法的誤差變化規(guī)律,畫(huà)出圖2。圖2中,橫坐標(biāo)為迭代次數(shù),縱坐標(biāo)為均方誤差。由圖2可知:網(wǎng)絡(luò)訓(xùn)練開(kāi)始時(shí),訓(xùn)練樣本和確認(rèn)樣本的均方誤差都在持續(xù)減小,迭代次數(shù)為69后,確認(rèn)樣本均方誤差持續(xù)增大;迭代次數(shù)為89次時(shí),到達(dá)設(shè)定的max_fail=20,網(wǎng)絡(luò)退出訓(xùn)練,返回最小確認(rèn)樣本誤差對(duì)應(yīng)的網(wǎng)絡(luò)。
表3 最佳停止法預(yù)測(cè)
圖2 最佳停止法誤差曲線(xiàn)
1)實(shí)驗(yàn)表明:隨著擬合誤差的逐漸減小,預(yù)測(cè)誤差出現(xiàn)了先下降后上升的規(guī)律,即所謂的“過(guò)擬合”現(xiàn)象。
2)實(shí)驗(yàn)表明:采用BP神經(jīng)網(wǎng)絡(luò)最佳停止法進(jìn)行黑龍江省農(nóng)機(jī)總動(dòng)力預(yù)測(cè)解決了采用BP神經(jīng)網(wǎng)絡(luò)傳統(tǒng)預(yù)測(cè)方法出現(xiàn)的“過(guò)擬合”問(wèn)題,有效提高了預(yù)測(cè)的精度。最佳停止法的平均預(yù)測(cè)誤差為2.87%,比傳統(tǒng)方法預(yù)測(cè)處于最好情況時(shí)的4.54%還低1.67%,即預(yù)測(cè)誤差下降了36.78%。同時(shí),用最佳停止法訓(xùn)練好的網(wǎng)絡(luò),預(yù)測(cè)了2015-2020年的黑龍江省農(nóng)機(jī)總動(dòng)力。
[1] 楊軍強(qiáng).中國(guó)農(nóng)機(jī)總動(dòng)力預(yù)測(cè)分析[J].湖南農(nóng)機(jī),2008(11):19-20.
[2] 朱瑞祥,黃玉祥,楊曉輝.用灰色神經(jīng)網(wǎng)絡(luò)組合模型預(yù)測(cè)農(nóng)機(jī)總動(dòng)力發(fā)展[J].農(nóng)業(yè)工程學(xué)報(bào),2006(2):107-110.
[3] 王吉權(quán),王福林,邱立春. 基于BP神經(jīng)網(wǎng)絡(luò)的農(nóng)機(jī)總動(dòng)力預(yù)測(cè)[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2011(12):121-126.
[4] 周金勇.混沌時(shí)間序列預(yù)測(cè)模型研究[D].武漢:武漢理工大學(xué),2009.
[5] 宋琿,董欣,王兵.基于BP神經(jīng)網(wǎng)絡(luò)的農(nóng)機(jī)總動(dòng)力預(yù)測(cè)模型研究[J].東北農(nóng)業(yè)大學(xué)學(xué)報(bào),2009(4):116-120.
[6] 張淑娟,趙飛.基于Shapley值的農(nóng)機(jī)總動(dòng)力組合預(yù)測(cè)方法[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2008(5):60-64.
[7] 鄭建紅.組合預(yù)測(cè)方法研究及其在農(nóng)機(jī)總動(dòng)力預(yù)測(cè)中的應(yīng)用[D].哈爾濱:東北農(nóng)業(yè)大學(xué),2012.
[8] 嚴(yán)磊,毛鳳梅,雷邦軍,等.農(nóng)機(jī)總動(dòng)力預(yù)測(cè)的灰色神經(jīng)網(wǎng)絡(luò)新方法[J].中國(guó)農(nóng)機(jī)化,2013(3):45-48.
[9] 劉玉靜,李成華,楊升明. 遼寧省農(nóng)機(jī)總動(dòng)力組合預(yù)測(cè)與分析[J].農(nóng)機(jī)化研究,2007(5):31-33.
[10] 王笑巖,王石. 基于BP神經(jīng)網(wǎng)絡(luò)的遼寧省農(nóng)機(jī)總動(dòng)力預(yù)測(cè)[J].中國(guó)農(nóng)機(jī)化,2015(2):314-317.
The Application of the BP Neural Network with the Best Method of Stop in Forecast of Total Power of Agriculture Machinery
He Zhilian , Wang Fulin , Dong Huiying , Wang Huipeng
(Northeast Agricultural University , Engineering College , Harbin 150030, China)
Based on the analysis and research of the application of Neural Network in forecast of total power of agriculture machinery , the reason for the low prediction accuracy is pointed out . That is the contradiction between training period and forecast period . Through a series of related simulation experiments conducted in Matlab , the law that as the error of fitting decreased gradually , the error of forecast decreased firstly and then increased has been proved . This is the “over fitting” problem . In order to solve the problem , the best method of stop which separate the sample set into training sample set , validation sample set and test sample set is put forward to forecast the total power of agriculture machinery . During the training period , the error of training sample set and the error of validation sample set are monitored . When the error of validation sample set begin to increase and cannot decrease in 20 iterations , the training is stopped and the minimum error of validation sample set and its related neural network are saved . Then the test sample set is used to test the forecast error . Experiments prove that the problem of “over fitting” is solved by the best method of stop and forecast accuracy is improved.Finally, the total power of agriculture machinery of Heilongjiang province from 2015 to 2020 is predicted by this trained neural network.
power of agriculture machineny; best method of stop; neural network; time series; over fitting
2016-03-17
國(guó)家自然科學(xué)基金項(xiàng)目(31071331);黑龍江省教育廳科學(xué)技術(shù)研究項(xiàng)目(12511049)
何志連(1989-),男,湖南永州人,碩士研究生,(E-mail)295952258@qq.com。
王福林(1959-),男,黑龍江安達(dá)人,教授,博士生導(dǎo)師,(E-mail)fulinwang1462@126.com。
S23-01
A
1003-188X(2017)02-0001-05