溫雪巖 李鵬程 陳家男 朱泳 吳曉峰
(東北林業(yè)大學(xué),哈爾濱,150040) (哈爾濱林業(yè)機(jī)械研究所)
?
優(yōu)化BP神經(jīng)網(wǎng)絡(luò)算法在油茶產(chǎn)量預(yù)測(cè)中的應(yīng)用1)
溫雪巖 李鵬程 陳家男 朱泳 吳曉峰
(東北林業(yè)大學(xué),哈爾濱,150040) (哈爾濱林業(yè)機(jī)械研究所)
針對(duì)標(biāo)準(zhǔn)的BP神經(jīng)網(wǎng)絡(luò)模型對(duì)我國(guó)南方的重要木本油料樹(shù)種油茶產(chǎn)量進(jìn)行預(yù)測(cè)過(guò)程中存在的缺陷,采用相對(duì)誤差逐步優(yōu)化回溯算法在迭代過(guò)程的參數(shù),使原始的BP神經(jīng)網(wǎng)算法在運(yùn)算精度和計(jì)算速度上均得到顯著的提高,即一種改進(jìn)的回溯算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型。經(jīng)過(guò)試驗(yàn)效驗(yàn)與仿真證明,得到的改進(jìn)算法不僅能提高油茶產(chǎn)量預(yù)測(cè)的收斂速度,而且在油茶產(chǎn)量預(yù)測(cè)精度上也有很大的提高。優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)算法為多要素因子之間相互影響事件的結(jié)果預(yù)測(cè),提供了新的設(shè)計(jì)思路和更好的解決方法。
油茶;BP神經(jīng)網(wǎng)絡(luò)算法;回溯法;相對(duì)誤差
For the defects in predictingCamelliaoleiferayield, we used standard BP neural network model and relative error to optimize the parameters of back-track algorithm in iterative procedure gradually, and improved the calculation precision and calculation speed of original BP neural network algorithm significantly. Through test calibration and simulation proof, the improved algorithm improved not only the convergence rate for predictingC.oleiferayield, but also the prediction precision greatly.
油茶(Camelliaoleifera)是我國(guó)南方的重要木本油料樹(shù)種,也是我國(guó)主要食用油料。我國(guó)每年油茶產(chǎn)量在1.5億kg左右,油茶種植面積為3.7×106hm2,占我國(guó)木本食用油料面積80%以上,同時(shí)具有栽培歷史悠久、分布廣泛、栽培面積大、價(jià)值高和油茶衍生的相關(guān)副產(chǎn)品多等特點(diǎn)。我國(guó)油茶產(chǎn)量發(fā)展大致經(jīng)歷了恢復(fù)階段、有限發(fā)展階段和油茶得到大面積恢復(fù)和科技成果推廣階段,油茶種植面積比建國(guó)初期增長(zhǎng)了幾十倍。由此可見(jiàn),油茶是我國(guó)主要的經(jīng)濟(jì)樹(shù)種之一,甚至是南方部分地區(qū)的經(jīng)濟(jì)發(fā)展支柱。
我國(guó)居民平均每年的食用油量與世界發(fā)達(dá)國(guó)家相比還是存在較大的差距,近年來(lái)我國(guó)進(jìn)口植物油呈上升趨勢(shì),對(duì)油茶及油茶的副產(chǎn)品需求量急劇增長(zhǎng),但是在我國(guó)現(xiàn)有耕地面積緊張的狀況下,尤其是適合油茶生長(zhǎng)的土地面積相對(duì)較小。同時(shí)增加食用油產(chǎn)量又是一個(gè)十分棘手的問(wèn)題,所以提高油茶生產(chǎn)機(jī)械工作效率和控制影響油茶產(chǎn)量的多要素因子是我國(guó)迫在眉睫需要解決的問(wèn)題[1-2]。
BP神經(jīng)網(wǎng)絡(luò)是一種多層前反饋神經(jīng)網(wǎng)絡(luò)。BP神經(jīng)網(wǎng)絡(luò)是向前網(wǎng)絡(luò)的核心部分,它體現(xiàn)了神經(jīng)網(wǎng)絡(luò)中最精華、最完美的內(nèi)容。BP神經(jīng)網(wǎng)絡(luò)由信息的正向傳播和誤差的反向傳播兩個(gè)過(guò)程組成。輸入層各神經(jīng)元負(fù)責(zé)接收外界的輸入信息,并傳遞給隱含層的神經(jīng)元。隱含層是內(nèi)部信息處理層,負(fù)責(zé)信息變換,根據(jù)信息變換能力的需求,隱含層可以設(shè)計(jì)為單隱層或多隱層。最后由隱含層傳遞給輸出層,完成學(xué)習(xí)的正向傳播過(guò)程。當(dāng)實(shí)際期望與輸出期望不相等時(shí),則按照誤差梯度下降的方式修正各層權(quán)值,向隱含層和輸入層反向傳播。
BP神經(jīng)網(wǎng)絡(luò)是一種單項(xiàng)傳播多層向前網(wǎng)絡(luò),其結(jié)構(gòu)如圖1所示。由圖1可知,BP神經(jīng)網(wǎng)絡(luò)是一種3層或者3層以上的神經(jīng)網(wǎng)絡(luò),包括輸入層、隱含層和輸出層。每層都有許多簡(jiǎn)單能夠執(zhí)行并且運(yùn)算的神經(jīng)元,這些神經(jīng)元與生物系統(tǒng)中的神經(jīng)元非常相像,但是就并行性來(lái)講,它并沒(méi)有生物神經(jīng)元并行性高。
BP神經(jīng)網(wǎng)絡(luò)模型包括其輸入輸出模型、作用函數(shù)模型、誤差計(jì)算模型等。其中節(jié)點(diǎn)輸出模型有2種。
隱含層節(jié)點(diǎn)輸出模型為:
Oj=f(∑(Wij×Xi-qj))。
(1)
輸出節(jié)點(diǎn)的輸出模型為:
Yk=f(∑(Tjk×Oj-qk))。
(2)
式中:f為非線性作用函數(shù),q為神經(jīng)單元閾值。
作用函數(shù)模型是指,反映下層輸入對(duì)上層節(jié)點(diǎn)刺激脈沖強(qiáng)度的函數(shù),又稱(chēng)刺激函數(shù)。一般取為(0,1)內(nèi)連續(xù)取值sigmoid函數(shù)。其中sigmoid函數(shù)為:
(3)
誤差計(jì)算模型是反映神經(jīng)網(wǎng)絡(luò)期望輸出與計(jì)算輸出之間誤差大小,其函數(shù)為:
(4)
其中:ti為期望輸出,Oi為實(shí)際輸出[3-4]。
圖1 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
2 傳統(tǒng)BP算法在油茶產(chǎn)量預(yù)測(cè)中存在的缺陷
雖然標(biāo)準(zhǔn)的BP神經(jīng)網(wǎng)絡(luò)在各類(lèi)事物預(yù)測(cè)方面應(yīng)用很廣泛,但是標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)對(duì)于具有多要素影響因子碰撞特征的油茶產(chǎn)量預(yù)測(cè)應(yīng)用中仍然存在很多缺陷與不足,其中影響產(chǎn)量的多要素因子見(jiàn)表1。多種要素相互碰撞導(dǎo)致標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)在油茶產(chǎn)量預(yù)測(cè)過(guò)程中有以下幾個(gè)方面的不足。
表1 影響油茶產(chǎn)量的要素
注:花期雨日是指降水量≥10 mm的時(shí)間。
首先,由于在油茶產(chǎn)量預(yù)測(cè)過(guò)程中學(xué)習(xí)速率是固定的,因此BP神經(jīng)網(wǎng)絡(luò)的收斂速度較慢,需要很長(zhǎng)的訓(xùn)練時(shí)間。對(duì)于類(lèi)似影響油茶產(chǎn)量的各類(lèi)要素碰撞較多的復(fù)雜問(wèn)題,BP算法需要訓(xùn)練很長(zhǎng)時(shí)間,這主要由于學(xué)習(xí)速率較小造成的,擬采用變學(xué)習(xí)速率加以改進(jìn)油茶產(chǎn)量的預(yù)測(cè)。其次,BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)油茶產(chǎn)量的過(guò)程中可以使權(quán)值收斂到某個(gè)值,但不能保證其平面誤差的全局最小值,這是因?yàn)椴捎锰荻认陆档念A(yù)測(cè)方法可能產(chǎn)生局部最小值,這個(gè)問(wèn)題擬采用附加動(dòng)量的方法解決。再次,預(yù)測(cè)油茶產(chǎn)量在網(wǎng)絡(luò)的隱含層要素?cái)?shù)目難以確定,隱含層和單元數(shù)沒(méi)有一個(gè)較完整的理論來(lái)解決,一般來(lái)講都是通過(guò)經(jīng)驗(yàn)和反復(fù)試驗(yàn)來(lái)確定的。一定程度上增加了網(wǎng)絡(luò)負(fù)擔(dān)。最后,預(yù)測(cè)油茶產(chǎn)量在網(wǎng)絡(luò)中的學(xué)習(xí)和記憶具有不穩(wěn)定性。也就是說(shuō)如果增加了要素碰撞樣本,訓(xùn)練好的網(wǎng)絡(luò)就需要從頭開(kāi)始訓(xùn)練,以前的權(quán)值和閾值是沒(méi)有記憶的。但是可以將預(yù)測(cè)、分類(lèi)或聚合較好的權(quán)值保存[5]。
3 改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)算法在油茶產(chǎn)量預(yù)測(cè)中的應(yīng)用
傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)算法在對(duì)油茶產(chǎn)量預(yù)測(cè)過(guò)程中存在著收斂速度慢、預(yù)測(cè)精度不高的問(wèn)題。針對(duì)這種特點(diǎn)本文采用改進(jìn)的回溯算法來(lái)優(yōu)化標(biāo)準(zhǔn)的BP神經(jīng)網(wǎng)絡(luò)算法。這種改進(jìn)方法是通過(guò)相對(duì)誤差進(jìn)行傳遞,在傳遞過(guò)程中不斷的優(yōu)化迭代過(guò)程中的參數(shù),得到最優(yōu)參數(shù)。
回溯法(又稱(chēng)作試探法)的基本思想:首先確定解空間的組織結(jié)構(gòu),接著就從開(kāi)始結(jié)點(diǎn) (根結(jié)點(diǎn))出發(fā),以深度優(yōu)先的方式搜索整個(gè)解空間。這個(gè)開(kāi)始結(jié)點(diǎn)就成為一個(gè)活結(jié)點(diǎn),同時(shí)也成為當(dāng)前的擴(kuò)展結(jié)點(diǎn)。在當(dāng)前的擴(kuò)展結(jié)點(diǎn)處,搜索向縱深方向移至一個(gè)新結(jié)點(diǎn)。這個(gè)新結(jié)點(diǎn)就成為一個(gè)新的活結(jié)點(diǎn),并成為當(dāng)前擴(kuò)展結(jié)點(diǎn),如果在當(dāng)前的擴(kuò)展結(jié)點(diǎn)處不能再向縱深方向移動(dòng),則當(dāng)前擴(kuò)展結(jié)點(diǎn)就成為死結(jié)點(diǎn)。換句話(huà)說(shuō),這個(gè)結(jié)點(diǎn)不再是一個(gè)活結(jié)點(diǎn)。此時(shí), 應(yīng)往回移動(dòng)(回溯)至最近的一個(gè)活結(jié)點(diǎn)處,并使這個(gè)活結(jié)點(diǎn)成為當(dāng)前的擴(kuò)展結(jié)點(diǎn)?;厮莘匆赃@種工作方式遞歸地在解空間中搜索,直至找到所要求的解或解空間中已沒(méi)有活結(jié)點(diǎn)時(shí)為止[6]。
BP神經(jīng)網(wǎng)絡(luò)算法收斂速度較低的原因與學(xué)習(xí)率η和動(dòng)態(tài)量α的選擇有關(guān)。一般地,為了保證BP神經(jīng)網(wǎng)絡(luò)算法的收斂性和減少穩(wěn)態(tài)時(shí)的失調(diào),權(quán)值更新步長(zhǎng)即學(xué)習(xí)率η不能選的很大,這必然降低學(xué)習(xí)速率。而動(dòng)態(tài)量α,雖然變動(dòng)范圍較小,但是選擇較為準(zhǔn)確的動(dòng)態(tài)量α,對(duì)BP神經(jīng)網(wǎng)絡(luò)算法的學(xué)習(xí)速率有一定作用。
使用回溯法時(shí),在每一次迭代結(jié)束后根據(jù)總體誤差,訓(xùn)練周期內(nèi)的平均誤差或權(quán)誤差導(dǎo)數(shù)修正α和η的值。根據(jù)各個(gè)迭代中誤差計(jì)算的公式,可以推導(dǎo)出下列公式:
η(t+1)=η(t)e(t)e(t-1)。
(5)
(6)
η(t)=η∞+Δη(t)。
(7)
雖然利用回溯算法使BP神經(jīng)網(wǎng)絡(luò)收斂速度明顯加快,但是在油茶產(chǎn)量預(yù)測(cè)過(guò)程中精度始終沒(méi)有得到提高,所以針對(duì)此缺點(diǎn)采用改進(jìn)的回溯算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)。改進(jìn)后的回溯算法,在每次迭代過(guò)程中不斷的優(yōu)化參數(shù),同時(shí)使用相對(duì)誤差作為傳遞信號(hào),誤差反向傳播,修改迭代后的網(wǎng)絡(luò)權(quán)值。相對(duì)誤差在迭代過(guò)程中改進(jìn)回溯算法,這種改進(jìn)的方法不僅能夠繼承回溯算法在改進(jìn)BP神經(jīng)網(wǎng)絡(luò)中的優(yōu)點(diǎn),還可以使BP神經(jīng)網(wǎng)絡(luò)的精度得到提高。所以本文采用的這種優(yōu)化方法是一種新思路,同時(shí)也是對(duì)原算法進(jìn)行改進(jìn)。一般來(lái)說(shuō),相對(duì)誤差更能反映測(cè)量的可信程度。相對(duì)誤差在傳遞過(guò)程中有很多優(yōu)點(diǎn),例如相對(duì)誤差是一個(gè)比值,數(shù)值大小與單位無(wú)關(guān)。相對(duì)誤差能準(zhǔn)確的反映出誤差的大小和方向,并且它能更確切地反映出測(cè)量的準(zhǔn)確程度。
這是由于BP算法通常采用絕對(duì)誤差作為誤差傳遞信號(hào),而當(dāng)數(shù)據(jù)間數(shù)量關(guān)系差距較大時(shí),其絕對(duì)誤差往往會(huì)因不考慮與實(shí)際值間關(guān)系,而在無(wú)形中將系統(tǒng)整體誤差值放大,從而導(dǎo)致最終預(yù)測(cè)結(jié)果精確度不高。
將回溯法中的絕對(duì)誤差轉(zhuǎn)換成相對(duì)誤差,同時(shí)使用相對(duì)誤差作為傳遞信號(hào),從后向前傳遞,依次修改各層網(wǎng)絡(luò)的權(quán)值,達(dá)到提高運(yùn)算精度效果。
隱含層與輸出層之間的權(quán)值修正量設(shè)為Δωjp(n),由于BP算法中的權(quán)值修正量與誤差對(duì)權(quán)值的偏微分成正比,所以有
(8)
(9)
(10)
設(shè)局部梯度為:
(11)
(12)
(13)
因此,修正量
(14)
ω(n+1)=ω(n)+Δω(n)。
(15)
同理可得,下次迭代時(shí)隱含層上任意節(jié)點(diǎn)與另一隱含層上任意節(jié)點(diǎn)之間的權(quán)值和下次迭代時(shí)輸入層上任一節(jié)點(diǎn)與隱含層上任一節(jié)點(diǎn)間的權(quán)值[8]。
建立有輸入層,隱含層,輸出層的神經(jīng)網(wǎng)絡(luò),并通過(guò)多要素碰撞因子確定隱含層各層的節(jié)點(diǎn)個(gè)數(shù)。神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 網(wǎng)絡(luò)結(jié)構(gòu)圖
數(shù)據(jù)歸一化方法是神經(jīng)網(wǎng)絡(luò)對(duì)數(shù)據(jù)常用的一種處理方法。數(shù)據(jù)歸一化把所處理的數(shù)據(jù)全部轉(zhuǎn)化成[0,1]間的數(shù),其目的是取消各維數(shù)據(jù)間的數(shù)量級(jí)差別,避免因?yàn)檩斎胼敵鰯?shù)據(jù)數(shù)量級(jí)差別較大而造成網(wǎng)絡(luò)預(yù)測(cè)誤差較大。
本次實(shí)驗(yàn)驗(yàn)證采用最大最小法,對(duì)原始多要素?cái)?shù)據(jù)進(jìn)行歸一化處理。利用歸一化處理的原始數(shù)據(jù)在實(shí)驗(yàn)完成后,還需要對(duì)計(jì)算結(jié)果進(jìn)行反歸一化處理。
本網(wǎng)絡(luò)創(chuàng)建采用matlab中的newff函數(shù)。傳遞函數(shù)采用默認(rèn)函數(shù)為tansig函數(shù);訓(xùn)練函數(shù)采用默認(rèn)函數(shù)trainlm函數(shù);權(quán)植/閾值學(xué)習(xí)函數(shù),采用默認(rèn)函數(shù)為learngdm函數(shù);性能函數(shù)采用默認(rèn)函數(shù)為mse函數(shù)[9]。
本實(shí)驗(yàn)采用神經(jīng)網(wǎng)絡(luò)為7-14-1,隱含層節(jié)點(diǎn)數(shù)由隱含層節(jié)點(diǎn)數(shù)確定公式得到。由于多種要素之間碰撞較多,且輸入比較復(fù)雜,所以訓(xùn)練次數(shù)設(shè)置為50 000次。采用matlab對(duì)改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,訓(xùn)練結(jié)果見(jiàn)表2。經(jīng)過(guò)對(duì)網(wǎng)絡(luò)進(jìn)行仿真后得到實(shí)驗(yàn)結(jié)果。
表2 改進(jìn)后算法預(yù)測(cè)
除了上述7個(gè)氣象要素影響油茶產(chǎn)量預(yù)測(cè)之外,土地的酸堿程度、機(jī)械化投入狀況、政府扶持力度等方面的因子,也將對(duì)油茶的產(chǎn)量預(yù)測(cè)有一定的影響,傳統(tǒng)的算法模型很難建立受多要素因子碰撞影響事件預(yù)測(cè)的有效方法。本文是基于受氣象因子碰撞影響油茶產(chǎn)量預(yù)測(cè)的前提,在預(yù)測(cè)過(guò)程中發(fā)現(xiàn)各個(gè)氣象因子之間有著復(fù)雜的相互作用,采用改進(jìn)的回溯算法優(yōu)化傳遞過(guò)程中的參數(shù)是從另一個(gè)角度優(yōu)化BP神經(jīng)網(wǎng)絡(luò)在油茶產(chǎn)量中的預(yù)測(cè)。
根據(jù)實(shí)驗(yàn)仿真結(jié)果,改進(jìn)前BP神經(jīng)網(wǎng)絡(luò)收斂速度為0:01:46,改進(jìn)前BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)油茶產(chǎn)量的平均相對(duì)誤差為2.503 3%,改進(jìn)后BP神經(jīng)網(wǎng)絡(luò)收斂速度為0:01:08,改進(jìn)后BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)油茶產(chǎn)量的平均相對(duì)誤差為1.651%,預(yù)測(cè)精度有了大幅度提高,并且收斂速度十分明顯,經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,基于改進(jìn)的回溯算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)在油茶產(chǎn)量中的預(yù)測(cè)方法是可行并且有效的。所以,改進(jìn)迭代過(guò)程中的參數(shù)是一種設(shè)計(jì)要點(diǎn)。通過(guò)改進(jìn)的回溯算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò),可以改善受多要素因子影響事件預(yù)測(cè)的收斂速度和預(yù)測(cè)的精度,同時(shí)也為相似事件的數(shù)學(xué)建模提供了參考。
[1] 史潔,尹佟明,施季森.我國(guó)油茶產(chǎn)業(yè)的發(fā)展歷程及存在問(wèn)題述評(píng)[J].西南林業(yè)大學(xué)學(xué)報(bào),2011,31(6):86-87.
[2] 莊瑞林.中國(guó)油茶[M].北京:中國(guó)林業(yè)出版社,2008.
[3] 朱大奇,史慧.人工神經(jīng)網(wǎng)絡(luò)原理及應(yīng)用[M].北京:科學(xué)出版社,2006.
[4] 張雨濃,曲璐,陳俊維.多輸Sigmoid激勵(lì)函數(shù)神經(jīng)網(wǎng)絡(luò)權(quán)值與結(jié)構(gòu)確定方法[J].計(jì)算機(jī)應(yīng)用研究,2012,29(11):4113-4116.
[5] 蘇高利,鄧芳萍.論基于MATLAB語(yǔ)言的BP神經(jīng)網(wǎng)絡(luò)的改進(jìn)算法[J].科技通報(bào),2003,19(2):131-132.
[6] 周建軍,詹芹.回溯法與分支限界法的用法取向探討[J].九江學(xué)院學(xué)報(bào),2009(3):18-19.
[7] 黃建國(guó),王建華,蘆國(guó)強(qiáng).提高人工神經(jīng)網(wǎng)絡(luò)BP算法收斂速度的幾種方法[J].華東船舶工業(yè)學(xué)報(bào),1994,8(2):26-27.
[8] 馬海志,王福林,王慧鵬,等.基于改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的黑龍江農(nóng)機(jī)總動(dòng)力預(yù)測(cè)[J].農(nóng)機(jī)化研究,2016(2):23-24.
[9] 李萍,曾令可,稅安澤,等.基于MATLAB的BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用于軟件,2008,5(4):150.
Optimized BP Neural Network Algorithm in PredictingCamelliaoleiferaYield//
Wen Xueyan, Li Pengcheng, Chen Jianan, Zhu Yong
(Northeast Forestry University, Harbin 150040, P. R. China);
Wu Xiaofeng
(Harbin Research Institute of Forestry Machinery)//Journal of Northeast Forestry University,2016,44(10):56-60.
Camelliaoleifera; BP algorithm; Backward method; Relative error
溫雪巖,男,1971年3月生,東北林業(yè)大學(xué)信息與計(jì)算機(jī)工程學(xué)院,副教授。E-mail: wenxy2005@nefu.edu.cn 。
2015年12月9日。
S-3
1)林業(yè)公益性行業(yè)科研專(zhuān)項(xiàng)(201204411)。
責(zé)任編輯:潘 華。