胡陳君,陳 建,王 卓,王 攀,曹中華,鄭延莉,王炎林,?!∑?/p>
(西南大學 工程技術學院,重慶 400715)
農(nóng)機總動力是指用于農(nóng)、林、牧、漁業(yè)生產(chǎn)和運輸?shù)乃袡C械動力的總和,它反映一個地區(qū)農(nóng)機裝備的總體水平,是農(nóng)機化發(fā)展規(guī)劃的主要指標[1]。農(nóng)機總動力數(shù)量變化是非線性的,BP神經(jīng)網(wǎng)絡作為一種具有較強非線性模擬能力與較高精度、較強自學習與自適應能力的學習算法,能對其進行分析;但傳統(tǒng)的BP神經(jīng)網(wǎng)絡采用誤差梯度下降法調(diào)節(jié)權值,存在網(wǎng)絡收斂速度較慢、全局搜索能力弱及易陷入局部極小等缺點。LM算法是梯度下降法與高斯-牛頓法的結合,具有高斯-牛頓法的局部收斂性和梯度下降法的全局特性,在局部搜索能力上強于BP神經(jīng)網(wǎng)絡,且其收斂速度很快且精度也高,解決了BP網(wǎng)絡的“局部收斂”問題;但LM算法對網(wǎng)絡的初始權值與閾值過于依賴,存在對初始權閾值敏感、泛化能力不強的缺點。遺傳算法(GA)具有較強的全局搜索能力,且簡單通用、魯棒性強,通過優(yōu)化BP神經(jīng)網(wǎng)絡的連接權,能較好地克服BP神經(jīng)網(wǎng)絡盲目選擇連接權值的缺點,但其訓練時間較長,局部搜索能力較弱。將LM算法與GA算法結合,運用GA算法優(yōu)化BP神經(jīng)的初始權值與閾值,可以提高網(wǎng)絡的泛化能力;采用LM算法訓練BP神經(jīng)網(wǎng)絡,可提高網(wǎng)絡收斂速度,避免網(wǎng)絡訓練陷入局部極小點,克服了LM算法與GA算法單一結合BP神經(jīng)網(wǎng)絡的缺點[2-4]。因此,本文利用1985-2015年云南省農(nóng)機總動力數(shù)據(jù),建立GA-LM-BP神經(jīng)網(wǎng)絡預測模型對云南省農(nóng)機總動力進行預測。
1.1BP神經(jīng)網(wǎng)絡
BP (Back Propagation)神經(jīng)網(wǎng)絡是一種單向傳播的多層前饋神經(jīng)網(wǎng)絡,是目前應用最廣泛的神經(jīng)網(wǎng)絡,主要特點是信號前向傳播及誤差反向傳播。該算法的精髓是將網(wǎng)絡的輸出與期望輸出間的誤差通過反向傳播“分攤”到各神經(jīng)元的權值和閾值,通過多次迭代使BP 神經(jīng)網(wǎng)絡預測輸出不斷逼近期望輸出。BP神經(jīng)網(wǎng)絡的結構比較簡單,由輸入層、隱含層和輸出層組成,每層包含若干神經(jīng)元,不同層神經(jīng)元間通過權值形成全互連連接,同層神經(jīng)元間無連接,且理論上已證明隱含層為一層的神經(jīng)網(wǎng)絡結構,可以模擬任意復雜的非線性映射關系[5]。
1.2LM算法
LM(Levenberg-Marquardt)算法是梯度下降法與高斯-牛頓法相結合的一種數(shù)值優(yōu)化快速算法,同時具有梯度下降法和高斯-牛頓法的優(yōu)點。其基本思想是允許誤差沿著惡化的方向搜索,使網(wǎng)絡每次不再沿著單一的負梯度方向迭代,同時對網(wǎng)絡的權值進行自適應調(diào)整優(yōu)化,提高了網(wǎng)絡的收斂速度,同時最大限度地解決了BP神經(jīng)網(wǎng)絡陷于局部極小點的問題[6]。
1.3GA算法
遺傳(GA)算法是一種基于自然選擇和基因遺傳學原理的優(yōu)化搜索方法,具有很強的宏觀搜索能力與良好的全局優(yōu)化能力。其基本思想是:隨機對初始化的種群基因編碼,通過適應度函數(shù)檢驗個體的好壞,然后經(jīng)遺傳操作(選擇、交叉、變異)產(chǎn)生新的個體,且反復迭代收斂得到最優(yōu)個體經(jīng)過解碼作為問題的最優(yōu)解或近似最優(yōu)解[7]。
1.4GA-LM-BP模型
GA-LM-BP模型是將GA算法與LM算法結合優(yōu)化BP神經(jīng)網(wǎng)絡,改善了LM算法優(yōu)化BP神經(jīng)網(wǎng)絡的收斂性,強化了GA算法的進化能力。其基本思想是:由GA算法優(yōu)化確定BP神經(jīng)網(wǎng)絡的初始權值與閾值,確定一個較好的搜索空間,代替一般初始權值與閾值的隨機選??;然后應用LM算法在這個解空間里對網(wǎng)絡進行訓練、學習至收斂,搜索出最優(yōu)解或者近似最優(yōu)解。其主要步驟如下:
1)輸入BP神經(jīng)網(wǎng)絡的訓練樣本集X= [x1,x2,…,xn]T,確定BP神經(jīng)網(wǎng)絡的結構為n-l-m(n、l、m分別為輸入層、隱含層和輸出層節(jié)點個數(shù)),初始化BP神經(jīng)網(wǎng)絡的閾值向量θ,產(chǎn)生初始隨機訓練權值w,并給出誤差允許值ε,且令常數(shù)k= 0,μ=μ0。
2)計算BP神經(jīng)網(wǎng)絡的輸出L與誤差目標函數(shù)E(X)。根據(jù)輸入樣本X,連接權值w與閾值θ可得
其中,fl、fm為隱含層與輸出層的傳遞函數(shù);a為輸入層節(jié)點且a∈[1,n];b為隱含層節(jié)點且b∈[1,l];c為輸出層節(jié)點且c∈[1,m]。網(wǎng)絡輸出與期望輸出之間的差別就是BP神經(jīng)網(wǎng)絡的誤差,定義該誤差目標函數(shù)E(X)為
3)權值向量的調(diào)整,其計算公式為:wk+1=wk+Δw。其中,Δw為BP神經(jīng)網(wǎng)絡訓練過程中權值的調(diào)整量,BP神經(jīng)網(wǎng)絡訓練過程中由LM算法優(yōu)化,則
Δw=-(JT(X)·J(X)+μ·I)-1JT(X)·e(X)
e(X)=[e1(X),e2(X),…eN(X)]T
其中,μ為一個非負值;I為單位矩陣;J(X)為誤差對權值微分的雅克比矩陣。
4)判斷E(X)。若其小于ε,則訓練結束;否則進入下一步,即計算誤差指標函數(shù)E(Xk+1)。若E(Xk+1) 5)種群初始化及種群規(guī)模與進化代數(shù)的設定。本文采用簡單、易實現(xiàn)的實數(shù)編碼實現(xiàn)種群初始化,種群規(guī)模為群體中所含個體數(shù)目,每個個體表示為染色體的基因編碼,且數(shù)目一定。 6)判斷進化代數(shù)是否滿足設定值,若滿足則轉至步驟2),GA算法結束;否則進入下一步,即個體適應度值的計算。本文將BP神經(jīng)網(wǎng)絡的預測輸出值yi與真實值oi之間的絕對誤差值和的倒數(shù)作為個體適應度值,計算公式為 本文利用該適應度函數(shù)計算每個個體的適應度值,判斷其適應度值是否符合優(yōu)化準則。若符合,則轉到步驟2);否則,進入下一步。 7)根據(jù)適應度對個體進行遺傳(選擇、交叉、變異)操作,得到新一代的種群,然后返回步驟6)。選擇操作采用輪盤賭法,使適應度值高的個體有更大的概率被選擇到下一代。選擇概率為 交叉操作因個體采用實數(shù)編碼而采用實數(shù)交叉法,第k個染色體和第l個染色體在j位的交叉,則 akj=akj(1-b)+aljb alj=alj(1-b)+akjb 其中,b為0~1間隨機數(shù)。 變異操作選取第i個個體的第j個aij基因進行變異,則 其中,amax為基因aij的上界;amin為下界;f(g) =r2(1-g/Gmax)2;r2是隨機數(shù);g為當代迭代次數(shù);Gmax為最大進化次數(shù);r為0~1間隨機數(shù)。 2.1樣本數(shù)據(jù)的獲取及處理 本文根據(jù)中國統(tǒng)計年鑒選取了1985-2015年間云南省農(nóng)機總動力的歷史統(tǒng)計數(shù)據(jù)作為訓練樣本[8],但農(nóng)機總動力數(shù)據(jù)值較大,作為神經(jīng)網(wǎng)絡的訓練值將使得神經(jīng)網(wǎng)絡結構復雜且不易收斂,因而該數(shù)據(jù)需先進行歸一化處理。歸一化方法為 式中Xi—輸入樣本數(shù)據(jù); Xmax、Xmin—輸入樣本數(shù)據(jù)的最大值與最小值; Xi—歸一化后的樣本輸入數(shù)據(jù),Xi’∈[a,b]。 逆變換公式為 BP神經(jīng)網(wǎng)絡的激活多采用Sigmoid函數(shù),其輸出值在0~1或-1~1之間;但該函數(shù)值接近0或1時,曲線比較平緩,變化速度非常緩慢。為了減小BP網(wǎng)絡學習時間,加大函數(shù)在區(qū)間內(nèi)變化梯度,提高收斂速度,可將輸入輸出數(shù)據(jù)變換在[0.1,0.9]或[0.2,0.8]區(qū)間內(nèi),這里取a=0.2,b=0.8。歸一化結果如表1所示[9]。 表1 1985-2015年云南省農(nóng)機總動力及其歸一化結果 2.2GA-LM-BP神經(jīng)網(wǎng)絡基本參數(shù)的確定 BP神經(jīng)網(wǎng)絡的結構為標準的3層結構。據(jù)經(jīng)驗由連續(xù)4年的農(nóng)機總動力預測下一年的農(nóng)機總動力值,因而輸入層的節(jié)點數(shù)為4,輸出層的節(jié)點數(shù)為1。本文是以云南省1985-2015年的農(nóng)機總動力作為訓練樣本,用[Xi,Xi+1,Xi+2,Xi+3]作為BP網(wǎng)絡的輸入樣本,Xi+4作為輸出樣本,則輸入樣本為 輸出樣本為 本文預測模型采用tansig函數(shù)作為輸入層到隱含層的傳遞函數(shù),purelin函數(shù)作為隱含層到輸出層的傳遞函數(shù),trainlm函數(shù)作為訓練函數(shù)。根據(jù)初始化參數(shù)設置原則及預測要求,經(jīng)過多次訓練,確定GA算法的遺傳代數(shù)T=100,種群大小M=60,交叉概率Pc=0.4,變異概率Pm=0.08,BP神經(jīng)網(wǎng)絡的訓練次數(shù)為1 000次,學習速率為0.05,訓練目標為0.000 01,其余參數(shù)選擇默認值。 以表1中云南省農(nóng)機總動力的歸一化數(shù)據(jù)作為樣本建立GA-LM-BP神經(jīng)網(wǎng)絡模型進行仿真訓練,并以相同的參數(shù)建立BP神經(jīng)網(wǎng)絡、LM-BP神經(jīng)網(wǎng)絡和GA-BP神經(jīng)網(wǎng)絡訓練模型,訓練完成后云南省農(nóng)機總動力的真實值與預測值的結果如表2所示。 表2 預測結果 續(xù)表2 由表2的預測結果可以看出:以1985-2015年的云南省農(nóng)機總動力作為訓練樣本,4種算法的預測值與真實值都較為一致,都有較好的預測精度。表2中,BP神經(jīng)網(wǎng)絡、LM-BP神經(jīng)網(wǎng)絡、GA-BP神經(jīng)網(wǎng)絡和GA-LM-BP神經(jīng)網(wǎng)絡的預測結果的平均相對誤差分別為0.9266 74%、0.654 053%、0.493 122%和0.313 362%??梢悦黠@看出:GA算法與LM算法都能提高BP神經(jīng)網(wǎng)絡的預測精度,而將GA算法與LM算法結合優(yōu)化BP神經(jīng)網(wǎng)絡能得到更好的預測效果。這說明,GA-LM-BP神經(jīng)網(wǎng)絡有良好的預測能力。 因此,本文運用GA-LM-BP神經(jīng)網(wǎng)絡訓練好的模型對云南省2016-2020年的農(nóng)機總動力進行預測,通過反歸一化計算后,其結果如表3所示。 表32016-2020年云南省農(nóng)機總動力預測值 Table 3The predicted value of total power of Yunnan Province’s agricultural machinery during 2016-2020 年份農(nóng)機總動力預測值/萬kW20163439.4920173594.3920183724.0020193862.8420203952.78 在表3云南省農(nóng)機總動力預測結果中,2016年云南省農(nóng)機總動力達到3 439.49萬kW,這與云南省農(nóng)業(yè)廳提出的2016年全省預計新增農(nóng)機總動力76萬kW、達3 409萬kW的數(shù)據(jù)較為吻合。云南省人民政府為貫徹落實國務院關于促進農(nóng)業(yè)機械化和農(nóng)機工業(yè)又好又快發(fā)展的要求,提出2020年全省農(nóng)機總動力達4 000萬kW的發(fā)展目標,與表3中預測2020年云南省農(nóng)機總動力達到3 952.78萬kW有少許差距。為了達到云南省2020年農(nóng)機總動力的發(fā)展目標,在接下來的幾年中云南省還需要提高農(nóng)業(yè)機械化水平。 農(nóng)機總動力是衡量農(nóng)業(yè)機械化的重要指標之一,對其發(fā)展變化趨勢進行準確預測能為農(nóng)機化的發(fā)展規(guī)劃提供科學的依據(jù)。本文提出了GA-LM-BP神經(jīng)網(wǎng)絡預測模型,結合GA算法的全局搜索尋優(yōu)能力與LM算法的快速優(yōu)化能力避免了BP神經(jīng)網(wǎng)絡易于陷于局部極小的情況。利用云南省1985-2015年農(nóng)機總動力數(shù)據(jù),建立GA-LM-BP神經(jīng)網(wǎng)絡預測模型,并與BP神經(jīng)網(wǎng)絡、LM-BP神經(jīng)網(wǎng)絡和GA-BP神經(jīng)網(wǎng)絡模型預測結果進行對比。預測結果中,基于4種算法的預測結果的平均相對誤差分別為0.926 674%、0.654 053%、0.493 122%和0.313 362%,表明4種模型都有較好的預測性能。其中,組合型算法的精度明顯優(yōu)于單一算法,而3種算法的組合GA-LM-BP算法有最好的預測效果。因此,本文并通過GA-LM-BP神經(jīng)網(wǎng)絡訓練好的模型對2016-2020年云南省農(nóng)機總動力進行了預測,為云南省以后的農(nóng)業(yè)機械發(fā)展規(guī)劃提供理論依據(jù)。 參考文獻: [1]王吉權,王福林,邱立春.基于BP神經(jīng)網(wǎng)絡的農(nóng)機總動力預測[J].農(nóng)業(yè)機械學報,2011,42(12):121. [2]張長勝,歐陽丹彤,岳娜,等.一種基于遺傳算法和LM算法的混合學習算法[J].吉林大學學報:理學版,2008,46(4):675-677. [3]郭海如,李志敏,萬興,等.一種基于隨機GA的提高BP網(wǎng)絡泛化能力的方法[J].計算機技術與發(fā)展,2014,24(1):105-106. [4]劉春,馬穎.遺傳算法和神經(jīng)網(wǎng)絡結合的PSD非線性校正[J].電子測量與儀器學報,2015,29(8):1158. [5]李建偉,梁愛琴,田輝.2011-2015年河南省農(nóng)業(yè)機械總動力的預測[J].農(nóng)機化研究,2012,34(6):47-48. [6]黃豪彩,黃宜堅,楊冠魯.基于LM算法的神經(jīng)網(wǎng)絡系統(tǒng)辨識[J].組合機床與自動化加工技術,2003 (2):7. [7]崔雪梅.基于灰色GA-LM-BP模型的CODMn預測[J].水利水電科技進展,2013,33(5):38-39. [8]中華人民共和國國家統(tǒng)計局.中國統(tǒng)計年鑒1986-2016[M].北京:中國統(tǒng)計出版社,1986-2016. [9]王吉權.BP神經(jīng)網(wǎng)絡的理論及其在農(nóng)業(yè)機械化中的應用研究[D].沈陽:沈陽農(nóng)業(yè)大學,2011. [10]董小艷.陜西農(nóng)機化水平評價及耕種收機械化水平預測研究[D].楊凌:西北農(nóng)林科技大學,2010.2 云南省農(nóng)機總動力預測模型的建立
3 預測結果和分析
4 結論