吳耀東
(新疆工程學院 烏魯木齊 830091)
農(nóng)業(yè)是國民經(jīng)濟發(fā)展的基石,而糧食則是社會進步與發(fā)展的最基本保障,準確地預測未來一段時間的糧食產(chǎn)量,能夠為政府估計未來糧食安全狀況進而制定有效政策,實現(xiàn)糧食安全具有重要意義[1~4]。目前較為常用的糧食產(chǎn)量預測方法包括遙感預測法[5]、時間序列預測法[1]、灰色模型法、BP 神經(jīng)網(wǎng)絡[2]和支持向量機(SVM)[6]等。文獻[1]和[2]分別利用ARIMA 和BP 神經(jīng)網(wǎng)絡預測糧食產(chǎn)量。文獻[6]利用遺傳算法優(yōu)化SVM 模型參數(shù),應用于糧食產(chǎn)量預測。
上述的糧食產(chǎn)量預測方法存在一些不足,比如BP 神經(jīng)網(wǎng)絡的學習速度較慢,并且可能陷入局部最優(yōu),影響分類精度;SVM 對大規(guī)模訓練樣本的建模存在計算量大的問題等。極限學習機(ELM)作為一種新型的單隱層前饋神經(jīng)網(wǎng)絡學習算法[7],具有學習速度快、泛化能力強等優(yōu)點[8~9],已經(jīng)在時間序列預測[10]、模式識別[11~14]等領域得到了應用。
對于ELM,隱節(jié)點數(shù)目L 對模型預測準確性影響較大,較小的L會降低ELM預測準確性,較大的L會降低ELM 的泛化性能[15]。為了確定合適的隱節(jié)點數(shù)目,需要計算不同L 下ELM 的預測誤差,但每次計算不同L 對應的輸出權(quán)重時,需要重復計算隱層矩陣的廣義逆矩陣,當L 較大時,會增大計算量。為此,推導L 遞增情況下輸出權(quán)重的遞推公式,提出增長ELM(GELM)算法,從而有效降低ELM的計算量,實驗結(jié)果證明了本文提出方法的有效性。
GELM 的思路是從最小的隱節(jié)點數(shù)目L 開始,按固定數(shù)量逐漸增加ELM 中的L,直到滿足規(guī)定的停止準則,最終確定ELM 中的L。同時,每次增加L時均需重新計算輸出權(quán)重β,當L 較大時,Η的Moore-Penrose 廣義逆矩陣Η?的計算量迅速增加,為此,推導ELM 中L 遞增情況下β的遞推計算公式,降低ELM的計算量。
假設ELM 隱節(jié)點數(shù)目為L 時的隱層矩陣為HL,如式(1)所示。當隱節(jié)點數(shù)目增加ΔL 時,ELM的隱層矩陣變?yōu)閉, 其中 ΔHΔL為新增加的ΔL 個隱節(jié)點組成的隱層矩陣,如式(2)所示。
式中,ai∈?n和bi∈? 表示隱含層參數(shù)。對于包含ΔL+L個隱節(jié)點的ELM,輸出權(quán)重為
由式(3)可知,計算βL+ΔL時,需要計算N×(L+ΔL)維矩陣的廣義逆矩陣其中N 為樣本數(shù)量。當L+ΔL 較大時的計算量迅速增加。
為此,推導隱節(jié)點數(shù)目按ΔL 遞增情況下,[HLΔHΔL]?的遞推計算公式,可以有效降低計算量。推導過程如下。
式中
根據(jù)式(4)和式(7)~(9),令σ=I-HL(HL)?,可知σΤ=σ,σ2=σ,則
同理,根據(jù)式(4)~(6)和式(10),可以計算F為
則式(3)的計算可以變?yōu)?/p>
步驟1初始化GELM 的模型參數(shù),其中初始隱節(jié)點數(shù)目為L0,生成由L0個隱節(jié)點組成的H0矩陣,如式(1)所示,其中參數(shù)ai和bi利用隨機生成方式獲得。設定單次增加的隱節(jié)點數(shù)目為ΔL,并令隱節(jié)點遞增次數(shù)k=0。計算初始的輸出權(quán)重矩陣β0:
步驟2令k=k+1,第k 次增加的隱節(jié)點ΔL 對應的隱層矩陣ΔHΔL如式(8)所示。根據(jù)式(13)得
步驟3令Hk=[Hk-1ΔHΔL],Lk=Lk-1+ΔL。計算預測誤差
步驟4若errork<errork-1,轉(zhuǎn)入步驟2;若errork≥errork-1,轉(zhuǎn)入步驟5。
步驟5確定GELM 的隱節(jié)點數(shù)目為Lk,其對應的輸出權(quán)重為βk。
基于GELM的糧食產(chǎn)量預測算法整理如下。
步驟1將已知的糧食產(chǎn)量轉(zhuǎn)換成訓練樣本和參數(shù)優(yōu)化樣本,其中為第i年度的糧食產(chǎn)量,τ為嵌入維數(shù)。的數(shù)據(jù)形式與相同。
步驟2根據(jù)3.2 節(jié)的GELM 算法流程,利用和{建立GELM預測模型。
步驟3為預測第n+1 年度糧食產(chǎn)量,將第n-τ+1 年度至第n 年度糧食產(chǎn)量作為輸入向量,計算對應,計算xn對應輸出,即為第n+1年度預測值。
選取全國1960-2015 年的糧食總產(chǎn)量作為實驗數(shù)據(jù),見表1。由表1 可以看出,1960-2015 年糧食產(chǎn)量總體呈增長趨勢。1960-1977 年期間,糧食總產(chǎn)量增長較為緩慢;1978-1999 年期間,糧食產(chǎn)量增長速度較快;在2000 年,糧食產(chǎn)量較前一年出現(xiàn)下降,直到2004 年,糧食產(chǎn)量恢復增長趨勢。選取1960-1994 年的產(chǎn)量作為訓練樣本,1995-2004年的產(chǎn)量作為參數(shù)優(yōu)化樣本,優(yōu)化糧食產(chǎn)量預測模型參數(shù),利用2005-2015 年的產(chǎn)量作為測試樣本,檢驗預測模型的預測性能。訓練樣本、參數(shù)優(yōu)化樣本和測試樣本轉(zhuǎn)化成形 式 ,其 中為第i 年的糧食產(chǎn)量,τ為時間序列嵌入維數(shù)。
表1 全國1960-2015年的糧食產(chǎn)量
設定GELM 初始隱節(jié)點數(shù)目L0=50,單次隱節(jié)點遞增個數(shù)ΔL=20。將GELM 用于時間序列預測時,嵌入維數(shù)τ影響著預測準確性。分別令τ=2,3,…,10。對于每個選定的τ,計算GELM 對應的參數(shù)優(yōu)化樣本預測誤差絕對值,選取誤差最小值作為每個τ對應的預測誤差。則不同τ值對應的預測誤差如圖1 所示??梢钥闯?,τ=3 時預測誤差最小。圖2 所示為τ=3 時,GELM 從初始隱節(jié)點L0開始,逐步按ΔL 遞增隱節(jié)點數(shù)目,其對應的參數(shù)優(yōu)化樣本預測誤差。確定GELM的隱節(jié)點數(shù)目為210。
圖1 GELM不同τ值對應的預測誤差
圖2 GELM隨隱節(jié)點數(shù)目遞增對應的參數(shù)優(yōu)化樣本預測誤差
分別采用標準的ELM 和支持向量機(SVM)作為對比方法,其中SVM選用libsvm工具箱中提供的函數(shù)。對于ELM 和SVM,時間序列的嵌入維數(shù)τ同樣需要人為確定。此外,影響ELM 的參數(shù)為隱節(jié)點數(shù)目L,影響SVM 的參數(shù)為C 和γ。分別令ELM中的L={50,70,…,300},SVM 中的C 和γ={2-14,2-13,…,214,215},采用與GELM 同樣的參數(shù)尋優(yōu)方法,得到ELM 和SVM 的最優(yōu)參數(shù)如表2 所示。實驗所用計算機為Windows XP 系統(tǒng),Intel i5 CPU(主頻3.5GHz),4GB內(nèi)存,仿真軟件為Matlab R2011b。
表2 不同方法最優(yōu)參數(shù)
三種方法按照表2 的參數(shù)建立預測模型,進行50 次蒙特卡洛仿真,計算得到訓練樣本的平均絕對誤差(MAE)如表3 所示??梢钥闯觯啾扔赟VM,GELM 和ELM 對訓練樣本的預測準確性較高,說明GELM和ELM對于已知數(shù)據(jù)的擬合精度較高。三種方法對測試樣本的預測結(jié)果和預測絕對誤差分別如圖3 和圖4 所示。進行50 次蒙特卡洛仿真,得到三種方法對測試樣本的MAE 如表3 所示。對于測試樣本而言,GELM 的預測準確性較訓練樣本偏低,這主要是因為測試樣本并沒有參與預測模型的建立過程,但是GELM 的預測結(jié)果的總體趨勢與實際情況相符,說明GELM 在糧食產(chǎn)量預測中的有效性。ELM 和GELM 方法的預測誤差較接近,相比之下,GELM 的預測精度略高于ELM,SVM預測誤差最大。
三種方法的耗時同樣如表3 所示,其中耗時包括參數(shù)優(yōu)化樣本尋優(yōu)時間、訓練樣本建模時間和測試樣本測試時間??梢钥闯?,由于SVM 需要同時優(yōu)化τ、C和γ三個參數(shù),其耗時最長。ELM和GELM需要更新τ和L 兩個參數(shù),對于不同的隱節(jié)點數(shù)目L,GELM能夠利用上一步L對應的隱層矩陣的廣義逆矩陣,根據(jù)式(19)的遞推方式計算當前L 對應的隱層矩陣的廣義逆矩陣,繼而更新輸出權(quán)重,而ELM 對每個L 均需要重新計算隱層矩陣的廣義逆矩陣,因此ELM的耗時高于GELM。
表3 三種方法的MAE誤差和耗時
圖3 三種方法對測試樣本的預測結(jié)果
圖4 三種方法對測試樣本的預測誤差
本文提出了基于GELM 的糧食產(chǎn)量預測方法。為了解決ELM 隱層結(jié)構(gòu)優(yōu)化問題,推導ELM中隱節(jié)點數(shù)目L 遞增情況下輸出權(quán)重的遞推計算公式,從而有效降低ELM 的計算量。糧食產(chǎn)量預測結(jié)果表明,GELM 的預測精度和耗時均優(yōu)于SVM,GELM 的預測精度與ELM 相似,但耗時低于ELM,從而證明本文推導的遞推公式可以降低輸出矩陣的計算量。實驗結(jié)果說明本文提出方法可以有效地應用于糧食產(chǎn)量預測。