胡程磊,劉永華,高菊玲
(江蘇農林職業技術學院,江蘇句容,212400)
糧食對于我國經濟發展、社會穩定及國家戰略均有著深遠的意義,對糧食產量進行有效分析和準確預測關乎到國家宏觀經濟調控、農業生產政策制定與調整,其重要性不言而喻[1]。由于影響糧食產量的因素較多,不易建立各影響因素與糧食產量的分析模型,且糧食產量波動呈現出復雜性和隨機性特征[2-3],準確對其進行預測存在一定難度。
現有糧食產量預測方法大致可分為以下幾類:一是利用糧食產量歷史數據建立數學統計模型,如時間序列模型[4]、灰色預測模型[5]、指數平滑模型[6]等;二是通過觀察糧食作物的生長狀況及分析其生長環境,對其產量進行模擬分析,如氣象產量模型[7]、遙感技術模型[8]等;三是數據驅動的糧食產量預測模型,因糧食產量歷史數據及相關影響因素數據均可科學計量,因而此類模型的分析結果更具參考價值,如人工神經網絡模型[9-11]、支持向量機模型[12-14]等,但仍需進一步研究更好的預測模型以提高糧食產量預測精度及穩定性。
本文引入遺傳變異及交叉機制對微粒群算法進行改進,增強其全局尋優性能,并優化BP神經網絡的連接權值和閾值,同時,綜合考慮影響糧食產量且具有農業意義的因素,構建了IPSO-BP糧食產量預測模型;利用江蘇省糧食產量及相關影響因素數據進行驗證,試驗結果表明,所提出的IPSO-BP模型的預測精度更高且算法穩定性也更好。
本文選用基于誤差反向傳播學習規則的三層前饋BP神經網絡[15],其拓撲結構如圖1所示。
圖1 三層前饋BP神經網絡示意圖
其輸入向量至輸出向量的非線性映射關系如式(1)所示。
(1)
式中:Y——網絡輸出向量;
bj——隱含層至輸出層的連接權值;
b0——隱含層至輸出層的閾值;
wi j——輸入層至隱含層的連接權值;
Ψj——輸入層至隱含層的閾值;
h(·)——隱含層的非線性激勵函數。
微粒群算法(PSO)[16]作為一種新的群智能優化算法,以其算法簡潔性、實現便捷性、收斂快速性等優點,在數據挖掘、農業工程等方面得到了廣泛的應用。
在一個D維目標搜索空間中,有N個微粒組成種群,其中第i個微粒的位置為xi=(xi1,xi2,…,xiD),i=1,2,…,N,即優化問題的潛在解;微粒的位移速度vi=(vi1,vi2,…,viD),i=1,2,…,N,其決定微粒的飛行距離和方向;微粒的位置和位移速度分別被限制在[-xmax,xmax]和[-vmax,vmax]之間;第i個微粒的個體最優值點記為pi=(pi1,pi2,…,piD),i=1,2,…,N;整個種群的最優值點記為gg=(pg1,pg2,…,pgD);在尋找這兩個最優值時,種群微粒按照式(2)更新位移速度和位置
(2)
式中:t——迭代的次數;
c1——學習因子,表示微粒受自身個體極值的影響,增強其全局搜索能力;
c2——學習因子,表示微粒受全體極值的影響,促進種群信息共享;
r1、r2——滿足均勻分布的隨機數;
w——慣性權重,表示微粒擴展搜索空間的能力。
(3)
式中:wmax——慣性權重初始值;
wmin——慣性權重終值;
t——當前迭代數;
itermax——預設的最大迭代數。
上述基本PSO在尋找最優解的時候,往往會因為早熟收斂而陷入局部最優解,為改善此現象,改進型的微粒群算法成為專家學者的研究熱點之一,其中,Chaker等[17]以基本PSO為基礎,提出基于繁殖機制的微粒群算法。該算為種群微粒設定一個雜交率,每次進化更新時,依據設定的雜交率選擇部分微粒作為父代,父代微粒兩兩雜交,形成數量等同的子代微粒取代父代微粒,提高種群微粒多樣性。該算法中位置和速度的雜交計算公式如式(4)~式(5)。
(4)
(5)
式中:ki——介于[0,1]之間的均勻分布隨機數;
parent(X)——父代微粒的位置;
parent(V)——父代微粒的速度;
child(X)——子代微粒的位置。
child(V)——子代微粒的速度。
在該進化機制過程中,適應度函數值并非選擇父代微粒的依據,避免了在處理多局部極值函數時易陷入局部最優問題。大量的試驗結果表明基于繁殖機制的微粒群算法在處理多局部極值函數問題時,能夠較快的搜索到全局最優解。本文借鑒該算法的同時將遺傳變異機制引入進來,用以拓展種群微粒的尋優路徑,避免種群微粒陷入局部極值,遺傳變異公式如式(6)所示。
X′i=Xi+rand×N(0,1)
(6)
式中:X′i——經過變異后的微粒位置;
N(0,1)——服從標準正態分布。
利用IPSO算法優化BP神經各處理層的連接權值和閾值,直至算法的適應度函數值最小或者不再有意義變動為止,此時將種群的全局最優位置pbest賦值給BP神經網絡的連接權值和閾值,再結合BP神經網絡良好的泛化能力和較強的非線性映射能力,形成混合的IPSO-BP糧食產量預測模型,改善單一神經網絡模型易陷入局部最優的缺點,提高預測精度。混合的IPSO-BP糧食產量預測模型執行步驟如下。
Step 1:獲取糧食產量數據和影響糧食產量的相關變量,劃分訓練接和測試集,并對數據進行預處理。
Step 3:初始化微粒數量n、速度v、位置x、最大迭代次數、交叉及變異概率等參數,其中微粒數量由神經網絡各連接層間的權值和閾值決定。
Step 4:計算適應度函數值,得到初始化種群個體最優位置和群體最優位置,并保證所有微粒的速度信息和位置信息均在約束邊界范圍內;適應度函數定義為糧食產量實際值與預測值的平均絕對誤差值(Mean Absolute Error, MAE),公式表示
(7)
式中:ypred,i——糧食產量預測值;
ydata,i——糧食產量實際值;
h——訓練數據集的數目。
Step 5:依據交叉概率選擇適應度值較好的微粒執行式(4)、式(5)的交叉操作,并計算交叉后子代微粒的適應度值,若子代微粒具有更優的適應度值,則替換父代微粒;根據式(6)執行變異操作,克服陷入局部最優解現象。
Step 6:算法當前迭代次數或糧食產量預測值與實際產量誤差是否滿足預設條件(當前迭代次數FES>最大迭代次數maxFES),若滿足即停止運行,將得到的全局最優解賦值給神經網絡的連接權值和閾值,否則,依據式(2)、式(3)進行位置和速度更新,返回Step 4繼續執行。
Step 7:利用BP神經網絡工具箱進行糧食產量預測,直至終止條件滿足為止。構建出的IPSO-BP神經網絡糧食產量預測模型原理如圖2所示。
圖2 IPSO-BP神經網絡模型流程圖
本文以江蘇省1978—2018年糧食產量數據為輸出變量(數據源自國家統計局[18]),圖3說明了歷年江蘇省糧食產量變動走勢;綜合考慮影響糧食產量且具有農業意義的因素[19],選擇江蘇省糧食播種面積、糧食化肥施用折純量等10個變量作為輸入變量,并將其歸集為四大類影響因素(見表1)。
圖3 江蘇省糧食產量走勢圖(1978—2018)
表1 輸入變量
在進行糧食產量預測仿真前,為防止不同數量級引發建模病態問題,將輸入、輸出數據進行歸一化處理,即把所有數據轉化為[-1,1]之間的數值,保證所有數據都在同一量綱內。歸一化公式如式(8)所示。
(8)
式中:y——已預處理的數據;
x——需預處理的變量;
xmax、xmin——變量x的最大值和最小值。
輸入及輸出數據共計41組,將前38組數據用于IPSO-BP模型訓練,剩余3組數據用于模型測試,預測目標為當年的糧食產量,單位為萬t。經測試,確定IPSO-BP神經網絡模型的參數如表2所示。
表2 IPSO-BP模型主要參數
利用建立的IPSO-BP神經網絡預測模型進行5次仿真試驗,得到2016—2018年的糧食產量預測數據,記錄于表3中。
表3 IPSO-BP神經網絡模型預測結果
由表中數據對比分析可知,基于IPSO-BP神經網絡得到的糧食產量預測值與實際值較為接近,2016年、2017年、2018年的糧食產量預測值與實際值平均絕對誤差分別為26.99萬t、24.3萬t及13.89萬t,預測精度較高。
為了分析IPSO-BP神經網絡對糧食產量預測精度,采用同樣的試驗方法,得到PSO-BP神經網絡模型及BP神經網絡模型對糧食產量的預測結果,分別記錄于表4和表5中。
表4 PSO-BP神經網絡模型預測結果
表5 BP神經網絡模型預測結果
分別將經過IPSO-BP神經網絡模型、PSO-BP神經網絡模型、BP神經網絡模型得到的糧食產量預測值的平均值和最優值結果的相對誤差進行分析,見表6。
表6 三種模型預測結果的相對誤差
2016年、2017年、2018年IPSO-BP糧食產量預測模型的平均相對誤差分別為0.76%、0.67%、0.38%,最佳相對誤差分別為0.24%、0.25%、0.06%;PSO-BP預測模型的平均相對誤差分別為2.85%、4.01%、2.50%,最佳相對誤差分別為1.39%、1.93%、1.31%;BP神經網絡預測模型的平均相對誤差分別為7.10%、9.19%、7.47%,最佳相對誤差分別為6.20%、7.70%、6.57%。
由數據分析可知,利用IPSO-BP神經網絡模型進行糧食產量的預測結果精度大幅度提高,同時,IPSO算法的尋優能力也明顯優于基本PSO算法,經過IPSO算法優化后的BP神經網絡模型泛化能力表現更加突出,全局搜索能力更強,糧食預測結果的波動性更小。
針對糧食產量預測問題的復雜特征,本文提出了IPSO-BP神經網絡的糧食產量預測模型,并結合實際數據進行驗證,得出以下結論。
1)采用遺傳變異及雜交思想改進基本微粒群算法,提高微粒群算法的全局搜索能力,再結合BP神經網絡良好的泛化性能,構建了混合的IPSO-BP神經網絡模型;
2)綜合考慮影響糧食產量且具有農業意義的10個因素作為輸入變量,構造了適用于糧食產量預測的有效模型。仿真試驗結果表明,基于本文所建模型獲得的2016年、2017年、2018年糧食產量預測結果最優相對誤差分別為0.24%、0.25%、0.06%,平均相對誤差0.76%、0.67%、0.38%,有效提高了糧食產量預測精度及穩定性,可應用于我國糧食產量分析和預測系統,為制定糧食政策與組織糧食生產提供參考依據。