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