崔興華,靳 晟
(新疆農業大學 計算機與信息工程學院,新疆 烏魯木齊 830052)
作物產量預測是農業科學的重要研究內容,性能可靠的作物產量預測模型可為農業工作者合理制定水肥施配方案提供理論指導,提高農業生產效率。傳統的研究方法通常使用線性回歸模型擬合作物生產規律,但由于線性方法存在局限,部分學者提出利用神經網絡技術探尋作物生長與外界條件之間的非線性關系,并通過產量預測仿真實驗證明神經網絡模型的預測精度優于傳統線性模型[3,4]。神經網絡模型的性能表現在很大程度上依賴于超參數的選取,人為確定超參數往往費時費力且效果一般,基于此,部分學者嘗試通過優化算法對超參數進行尋優,為解決超參數優化問題提供了新思路[5,6]。
本文提出一種基于改進的麻雀搜索算法的北疆春玉米產量預測方法。針對麻雀搜索算法(sparrow search algorithm,SSA)[7]存在的缺陷,改進算法使用遍歷均勻性良好的Kent映射改善初始種群,引入改進反向學習機制及食物源機制引導算法跳出局部最優,增強算法的全局搜索能力。將改進算法與徑向基神經網絡(radial basis function neural network,RBFNN)結合構建模型,將模型用于新疆灌溉中心實驗站的玉米產量預測仿真實驗,實驗結果表明,本文所提模型在玉米測產方面具備可行性。
研究表明,Kent映射在遍歷均勻性及迭代速度方面皆表現良好[8]。Kent映射的表達式[9]為
xt+1={xt0.5+ε,0≤xt≤12+ε,1-xt0.5-ε,12+ε≤xt≤1.
(1)
鑒于Kent映射的優良性質,利用Kent混沌序列對麻雀種群進行初始化,可以使初始種群更均勻的分布在搜索空間,提高算法的收斂速度及全局搜索能力。
反向學習(opposition-based learining,OBL)[10,11]常用于提升算法收斂速度,但OBL的搜索范圍受限于搜索空間的上下邊界,在迭代后期,反而可能拖累算法效率。
為改善OBL的搜索范圍,本文將OBL與光的折射定律相結合,光線折射原理如圖1所示。

圖1 光線折射原理
以維度為1的解x為例,當光線自光密介質射入光疏介質時,已知入射角α、出射角β、入射光線l、折射光線l*1,O為區間[x,x′]的中點,設l與l*1等長,則折射率可表示為
n=sinαsinβ=x+x′2-xx*1-x+x′2·l*1l=x′-x2x*1-x+x′2
(2)
變換可得
x*1=n+12n·x′+n-12n·x
(3)
式中:n∈(0,1) 為控制參數。式(3)所得折射解可跳出當前搜索空間獲得更大的搜索范圍,通過調整控制參數獲得不同的折射解,可遍歷區間[x,x′]外的整個搜索空間。
同理,當光線自光疏介質射入光密介質時,設其折射光線為l*2,且l與l*2等長,推理可得
x*2=n+12n·x′+n-12n·x
(4)
式中:n∈(1,+∞) 為控制參數,此時折射解落在區間[x,x′]內,傾向于向中點收斂。
在標準SSA算法中,跟隨者的位置更新通過兩個策略實現,其中,適應度值較差的跟隨者會趨向于收斂到固定點,不利于算法的全局尋優。因此本文結合式(3)、式(4)對原跟隨者位置更新策略進行調整,使最優位置作為不同介質的分界線,則新的表達式為
Xt+1i,j={α+1α·Xtp-1α·Xti,jifi>n3·e- ttmaxXtp+1d∑dj=1(1β·(Xtp-Xti,j))otherwise
(5)
式中:α為區間(0,1)內的隨機數,d為麻雀個體的維度,β為區間 (1,1+5d∑dj=1|Xtp-Xti,j|) 內的隨機數。由式(8)對追隨者位置進行更新時,適應度值較差的麻雀不再收斂到固定點,而是趨向于逃離最優位置,適應度值較優的麻雀則將向最優位置靠攏,此處改動繼承了原算法中的部分思想,使得適應度值較優的麻雀向最優位置靠攏時在各維度上保持一致,不會出現某一維過大或過小的情況。此外,本文在式中加入控制因子以控制全局搜索跟隨者與局部搜索跟隨者的比例,從而使得算法在前期執行廣泛的全局搜索操作,在后期執行深入的局部尋優。
由于本文預設入射光線與折射光線長度一致,當入射角過小時,入射光線l可能會過長,從而導致折射光線超出尋優邊界,如圖2所示。

圖2 折射光線越界
此時,應重新調整折射解的位置,本文設定遇到邊界時,折射光線會發生反射,且令入射光線長度等于折射光線與反射光線長度之和,則新的折射解表達式為
Xt+1i,j={a+sinβ·((Xtp-Xti,jsinα-b-Xtpsinβ)%b-asinβ),if [(Xtp-Xti,jsinα-b-Xtpsinβ)b-asinβ]%2≠0b-sinβ·((Xtp-Xti,jsinα-b-Xtpsinβ)%b-asinβ).if[(Xtp-Xti,jsinα-b-Xtpsinβ)b-asinβ]%2=0={a+(n+1)·Xtp-Xti,j-n·bn%(b-a),if [(n+1)·Xtp-Xti,j-n·bn·(b-a)]%2≠0b-(n+1)·Xtp-Xti,j-n·bn%(b-a).if[(n+1)·Xtp-Xti,j-n·bn·(b-a)]%2=0
(6)
式中:α為入射角,β為出射角,n=sinα/sinβ為控制參數,%為取模運算,[]為取整運算。
此外,若最優位置距邊界過近,也可能出現折射解越界的情況,如圖3所示。

圖3 折射解越界
此時,x與最優位置的距離大于x與邊界距離的一半。本文設定以最優解為鏡面,以折射解的鏡像解作為真實折射解,則真實折射解的表達式為

Xtp-1d∑dj=1(1β·(Xtp-Xti,j))otherwise
(7)
式中:α為區間(0,1)內的隨機數,d為麻雀個體的維度,β為區間(1,1+5d∑dj=1|Xtp-Xti,j|) 內的隨機數。
本文綜合式(5)、式(6)、式(7)對跟隨者位置進行更新。
受人工蜂群算法[12]的啟發,本文引入食物源機制增強算法跳出局部最優的能力,具體規則為:
(1)記錄麻雀種群迭代過程中找到的最優食物位置為食物源;
(2)在麻雀種群的迭代過程中,若食物源位置無變化則累計開采次數。食物源開采次數到達上限則對處于最優位置的麻雀進行擾動,并重置食物源位置;
(3)對于新發現的食物源,更新其開采次數上限,并按規則(2)繼續迭代。
在上述規則中,對麻雀位置進行擾動的表達式為

xbest+xbest?gaussian(0,1)r1<1-exp(-i-1iter)1+r2
(8)
式中:cauchy(0,1) 是服從標準柯西分布的柯西算子,gaussian(0,1) 是服從標準正態分布的高斯算子,r1、r2為區間(0,1)內的均勻隨機數,i代表當前迭代代數,iter為最大迭代代數。
相比于標準正態分布,標準柯西分布在原點附近分布更小,從峰值向0逼近的趨勢更平緩,因此在算法中引入柯西算子有助于種群向更廣的范圍變異,從而增強算法的全局搜索能力,相對的,引入高斯算子則有助于種群在最優點附近更深入地搜索,從而增強算法的局部搜索能力。引入式(8)使算法在迭代前期以更高概率執行廣泛的全局搜索,避免算法過早收斂,在迭代后期以更高概率對局部進行深入搜索,從而增強算法的尋優精度。
此外,食物源開采次數上限的初始值應按照種群大小和問題規模設置,在規則(3)中,更新食物源開采次數上限的表達式為
Lnew=fnewfp·Lp
(9)
式中:fnew、fp分別為新食物源和上一代食物源的適應度值,Lnew、Lp分別為新食物源和上一代食物源的開采次數上限。
綜合上述改進方法,改進的麻雀搜索算法(improved sparrow search algorithm,ISSA)實現步驟如下:
步驟1 初始化算法參數,包括麻雀種群規模N、發現者數量PD、偵察預警的麻雀個數SD、預警值R2、食物源開采上限L、問題維度D、搜索空間[lb,ub]、最大迭代次數itermax;
步驟2 應用式(1)生成初始麻雀種群X;
步驟3 計算種群中個體的適應度值,記錄最優適應度值fb、最優位置xb、最差適應度值fw、最差位置xw,記錄食物源位置xf=xb,食物源適應度值ff=fb;
步驟4 選取適應度值較優的P個麻雀作為發現者,據文獻[7]中式(3)更新位置;
步驟5 剩余的N-P個麻雀作為跟隨者,據式(5)~式(7)更新位置;
步驟6 在Xnew中隨機挑選S個麻雀作為預警者,據文獻[7]中式(5)更新位置;
步驟7 重新計算最優適應度值fbnew對應的最優位置最優位置xbnew,若fbnew不優于ff,對xf計一次開采次數;否則,更新食物源位置xf=xbnew,并據式(9)重置食物源開采次數上限;
步驟8 若食物源開采次數已達上限,據式(8)更新當前適應度值最優麻雀位置;
步驟9 若迭代次數達到最大值itermax,則結束迭代,輸出結果;否則返回步驟3。
假設麻雀種群規模為N,發現者數量為P,警戒者數量為S,問題維度為D,求解目標函數的時間為f(D)。
對標準SSA的時間復雜度進行分析[13],其參數初始化時間復雜度為O(1),初始化種群時間復雜度為O(ND), 計算個體適應度值的時間復雜度為O(Nf(D)), 對麻雀個體位置進行更新的時間復雜度為O(ND+SD), 則SSA整體時間復雜度為O(SSA)=O(D+f(D))。
據1.4節對ISSA時間復雜度分析如下:
步驟1進行參數初始化的時間復雜度為O(1),步驟2通過Kent映射初始化的時間復雜度為O(ND), 步驟3計算個體適應度值的時間復雜度為O(Nf(D)), 步驟4更新發現者位置的時間復雜度為O(PD), 步驟5更新跟隨者位置的時間復雜度為O((N-P)D), 步驟步驟6更新警戒者位置的時間復雜度為O(SD), 步驟7重新計算個體適應度值的時間復雜度為O(Nf(D)), 步驟8重新更新最優位置的時間復雜度為O(D), 則整體時間復雜度為O(ISSA)=O(1)+O(ND)+O(Nf(D))+O(PD)+O((N-P)D)+O(SD)+O(Nf(D))+O(D)=O(D+f(D))。
綜上所述,對比SSA,ISSA在修改部分算法策略后并未影響整體時間復雜度,降低算法效率。
對于RBFNN模型,影響網絡性能最重要的因素在于基函數中心的確定,本文將所提ISSA算法與RBFNN結合起來,提出ISSA-RBFNN模型用于玉米測產,模型建立流程如下:
步驟1 數據預處理。由于采集設備故障或采集人員操作不規范等原因,真實實驗數據通常存在數據異常、數據缺失等問題,因此,建立模型首先需要對數據進行清洗、集成、無量綱化等操作以保證數據的可靠性。其中本文進行數據無量綱化所用表達式為
x*=x-min(x)max(x)-min(x)
(10)
步驟2 初始化模型參數。包括ISSA算法參數及網格搜索參數等。
步驟3 通過ISSA對RBFNN隱含層中激活函數的中心c、寬度σ進行尋優。其中,ISSA中麻雀個體的適應度函數表達式為
fitness=∑ni=1(yi-i)2n
(11)
式中:n為訓練樣本總數,yi、i分別表示真實值和預測值。
步驟4 使用梯度下降法更新連接權值ω。
步驟5 將 ISSA的尋優結果賦給RBFNN,完成模型構建。
為了驗證ISSA算法及ISSA-RBFNN模型在性能上的優越性,本文設置了兩部分實驗。第一部分實驗驗證ISSA算法的有效性,第二部分實驗驗證ISSA-RBFNN模型的有效性。
本文選取了10個標準測試函數[14,15]對標準的麻雀搜索算法、遺傳算法(genetic algorithm,GA)[16]、粒子群算法(particle swarm optimization,PSO)[17]、灰狼優化算法(grey wolf optimizer,GWO)[18]以及ISSA進行了優化仿真實驗,以對比不同算法的尋優性能。
3.1.1 標準測試函數
實驗所選標準測試函數詳情見表1,其中F1~F5為單峰測試函數,只存在一個全局最優值,用來測試算法的收斂速度及精度,F6~F10為多峰測試函數,存在一個全局最優值及多個局部極值,用來測試算法跳出局部極值進行全局尋優的能力。

表1 標準測試函數
3.1.2 參數設置
公平起見,本文設定所有算法種群規模為100,最大迭代次數為1000次,各算法其余參數設置見表2。

表2 算法參數設置
3.1.3 算法性能對比
為減小隨機誤差對實驗結果的影響,本文將各算法在相同條件下各運行30次,得到實驗結果如表3所列。表中best欄代表30次實驗中得到的最優適應度值,mean欄代表30次實驗的適應度值平均值,std欄代表30次實驗的適應度值標準差。通過最優值和平均值可以反映算法的尋優精度,通過標準差則反映算法的穩定性。

表3 標準測試函數尋優結果
首先對各類算法的尋優精度進行對比分析。從表3中可以看出,對于單峰測試函數,ISSA在函數F1~F4的最優適應度值及平均適應度值均為最優,且最優適應度值都得到了理論最優解,在函數F5上也獲得了比GA、PSO、GWO更好的結果;對于多峰測試函數,ISSA在函數F6~F10上的最優適應度值及平均適應度值均優于其它4種算法,且在函數F7~F10上得到了理論最優解,總體來說,ISSA在尋優精度上優于其余4種算法。
其次對各類算法的穩定性進行對比分析。由表3中std欄的結果可以看出,ISSA算法在函數F1~F4、F6~F7、F9~F10上的標準差均優于其它4類算法,在函數F5上的標準差也優于GA、PSO、GWO這3種算法,在函數F8上,ISSA算法的穩定性比GA、PSO、GWO這3種算法差,但優于SSA算法。綜合來看,ISSA算法在10個標準測試函數上具有較好的穩定性,同GA、PSO、GWO、SSA算法相比也具有一定競爭力。
最后對各類算法的收斂速度進行對比分析。為直觀展示各算法的收斂速度,圖4給出了各算法在標準測試函數上的收斂曲線。由圖可看出,對于單峰函數,ISSA算法在函數F1~F5上皆率先收斂,且尋優精度高于其它算法;對于多峰函數,ISSA算法在函數F6、F8、F10上的收斂速度高于其余4類算法,在函數F7、F9上,其收斂速度與SSA相差不大,快于GWO、GA、PSO。

圖4 各算法收斂曲線對比
綜合上述分析,ISSA算法比GA、PSO、GWO、SSA算法具有更強的競爭力,在尋優精度、收斂速度及穩定性上皆表現良好。
3.1.4 與不同改進策略的SSA算法對比
為進一步驗證本文所提ISSA算法的性能,選取文獻[13]所提多策略融合的改進麻雀搜索算法(ISSA1)及文獻[19]所提自適應變異的麻雀搜索算法(AMSSA)與本文所提算法進行對比分析。其中ISSA1利用混沌反射和反向學習策略豐富初始種群,并結合隨機跟隨策略調整了麻雀搜索算法中跟隨者的位置更新公式,最后加入柯西變異和高斯變異對最優位置進行擾動;AMSSA同樣在算法中加入了混沌映射以豐富麻雀種群,此外還利用柯西變異及混沌擾動增強了算法的局部搜索能力,最后加入自適應因子動態調整捕食者與跟隨者比例,從而實現算法在全時期的尋優能力。
由于文獻[13,19]在測試環境與實驗參數設置上與本文基本一致,因此本文使用文獻原文所列數據與本文測試結果進行對比,對比結果見表4。Null表示原文獻未在此測試函數上進行測試。

表4 不同改進策略的SSA算法對比
表4分析可知,對于函數F2、F3、F4、F7、F9,ISSA的最優值、均值及標準差均為最優,其中在單峰函數F2~F4上,3種算法都能收斂到理論最優值,但ISSA1及AMSSA在30次迭代后的均值及標準差比ISSA多出了數十到百余個數量級,說明ISSA在單峰函數上具有較好的收斂精度,在多峰函數F5~F9上,3類算法在最優值、均值及標準差3項指標上僅相差1~2個數量級,因此,綜合來看,ISSA的收斂精度略優于另外兩類算法。此外,ISSA在8個存在有效值的函數上,有6個(F2~F7及F9)取得了最優標準差,反映出ISSA的穩定性總體上優于ISSA1及AMSSA算法。綜合來看,對比ISSA1及AMSSA,ISSA在尋優精度及魯棒性上皆有提升。
3.2.1 數據獲取
為獲取訓練模型所必要的樣本數據,選取新疆灌溉中心實驗站作為實驗區進行了連續兩年的玉米水肥耦合效應實驗。為研究玉米水肥施用量與產量的關系,實驗采集的數據主要包括:土壤氮、磷、鉀含量,土壤含水率,玉米生長過程中的灌水量、施肥量及最終產量。實驗最終采集樣本數據72組,對樣本數據進行清洗、集成后,統計其均值、標準差、極值、中位數及四分位數,結果見表5。

表5 樣本數據統計結果
對所獲數據集預處理后,以土壤氮含量、土壤磷含量、土壤鉀含量、土壤含水率、灌水量、施肥量6個特征作為模型的輸入,以玉米產量作為模型的輸出,按施肥水平分層抽樣,選取樣本數據集的80%作為訓練集,剩余20%作為測試集,進行模型的構建。
3.2.2 結果分析
為驗證ISSA-RBFNN模型的有效性,本文選取以K-means方法確定中心的RBFNN模型(K-means-RBFNN)、SSA算法優化的RBFNN模型(SSA-RBFNN)、廣義回歸神經網絡模型(general regression neural network,GRNN)[20]、支持向量機模型(support vector machine,SVM)[21]在相同實驗條件下建模進行對比,其中,SSA、ISSA算法均設定麻雀種群規模為50,最大迭代次數為500,其余參數設置同表2所列。實驗選擇均方根誤差(root mean square error,RMSE)、平均絕對誤差(mean absolute error,MAE)、平均絕對百分比誤差(mean absolute percentage error,MAPE)作為模型的評價指標。RMSE、MAE、MAPE的表達式依次為式中:n為樣本總數,yi、i分別表示真實值和預測值。
為獲得可靠的實驗結果,實驗采用五折交叉驗證并通過各評價指標均值分析模型的預測效果。實驗結果如圖5所示,各模型性能評價見表6。

圖5 模型預測結果
RMSE=∑ni=1(yi-i)2n
(12)
MAE=∑ni=1|yi-i|n
(13)
MAPE=100%n∑ni=1|yi-iyi|
(14)
可以看出,ISSA-RBFNN模型在3個性能指標上皆優于其它4種模型,GRNN模型表現最差。ISSA-RBFNN模型在RMSE、MAE、MAPE這3個指標上分別比SSA-RBFNN模型降低了11.07%、6.98%、8.15%,比K-means-RBFNN模型降低了11.79%、8.80%、11.08%,可見,ISSA有效降低了RBFNN模型的預測誤差。與SVM模型相比,ISSA-RBFNN模型在RMSE、MAE、MAPE這3個指標上分別低20.85%、18.75%、19.92%;與GRNN模型相比,ISSA-RBFNN模型在RMSE、MAE、MAPE這3個指標上分別低25.62%、31.14%、34.46%,驗證ISSA-RBFNN模型具有比SVM、GRNN具有更好的預測性能。綜合來看,ISSA-RBFNN模型具有較為理想的預測精度。
(1)本文在麻雀搜索算法的基礎上,提出一種改進的麻雀搜索算法,算法主要有3點改進:①使用Kent映射初始化種群;②引入改進反向學習機制替代原跟隨者位置更新策略;③引入食物源機制。數值實驗結果表明,改進策略提高了麻雀搜索算法的收斂速度和收斂精度。
(2)本文構建了ISSA-RBFNN北疆春玉米產量預測模型,并設計仿真實驗驗證模型的有效性,實驗結果表明,對于新疆北疆地區春播玉米的產量預測,ISSA-RBFNN模型具備預測可行性,且在預測精度及魯棒性上優于SVM模型、GRNN模型、K-means-RBFNN模型及SSA-RBFNN模型。