商志根,段小匯
(鹽城工學院電氣工程學院,江蘇 鹽城 224051)
我國是一個貧水大國,人均水資源約為世界人均水平的1/4,然而我國農(nóng)業(yè)用水約占總供水的80%,其中多用于灌溉。隨著我國水資源供需矛盾日益突出,農(nóng)業(yè)灌溉必須走上精細灌溉之路。對作物需水量做出準確預(yù)測,并按需灌溉,對農(nóng)業(yè)工程中的節(jié)水灌溉具有重要意義[1]。
在農(nóng)業(yè)工程中,通常有2種方法計算作物需水量:基于修正的Penman-FAO公式的估算方法與基于時間序列或回歸模型的預(yù)測方法。修正的Penman-FAO公式是一種計算作物騰發(fā)量的方法,僅需氣溫、日照時數(shù)、水氣壓和風速等氣象資料,是目前普遍應(yīng)用的公式之一,然而該方法計算精度略低[2]。近年來,國際國內(nèi)學者提出了基于時間序列、模糊理論、灰色理論與神經(jīng)網(wǎng)絡(luò)(Neural Network, NN)等模型的預(yù)測方法。張兵等人[3]提出了一種基于L-M算法訓練的神經(jīng)網(wǎng)絡(luò)的作物需水量預(yù)測模型。夏澤豪等人[4]將灰色理論與神經(jīng)網(wǎng)絡(luò)相結(jié)合,提出一種新的基于灰色神經(jīng)網(wǎng)絡(luò)的作物需水量預(yù)測模型。孟麗麗等人[5]基于α-加權(quán)模糊線性回歸模型預(yù)測作物需水量。因為神經(jīng)網(wǎng)絡(luò)可以逼近連續(xù)的非線性曲線,受到相關(guān)研究者的廣泛關(guān)注[6]。但是,神經(jīng)網(wǎng)絡(luò)對權(quán)重向量初始值敏感,并且是一種大樣本分析方法。
支持向量機(Support Vector Machine, SVM)采用結(jié)構(gòu)風險最小化原則,對較少的樣本,將樣本數(shù)據(jù)映射到一個高維空間里,進而將數(shù)據(jù)間的關(guān)系用一種確定的方式表達[7]。LS-SVM(Least Squares SVM)是SVM的一種,它將SVM中的不等式約束改為等式約束,將訓練集的誤差平方和作為經(jīng)驗損失,于是SVM的二次優(yōu)化問題轉(zhuǎn)化為線性方程組問題。LS-SVM因計算速度快、性能良好而得到廣泛的應(yīng)用[8-16]。文獻[11]將經(jīng)驗?zāi)J椒纸馀cLS-SVM相結(jié)合,用于微小通道氣液兩相流的流型辨識。文獻[12]為了給液壓機的鍛造工藝建模,提出了一種局部LS-SVM。文獻[13]利用LS-SVM預(yù)測機械加工表面的粗糙度,實驗結(jié)果表明與NN相比,LS-SVM的預(yù)測精度更高。LS-SVM的相關(guān)參數(shù)對模型性能具有很大影響。近年來,研究者將智能優(yōu)化算法用于SVM的參數(shù)組合尋優(yōu)[14-16]。文獻[14-15]將粒子群優(yōu)化算法(Particle Swarm Optimization, PSO)[17]優(yōu)化的LS-SVM分別用于瀝青質(zhì)沉積預(yù)測和物流系統(tǒng)的貨物運輸量預(yù)測。文獻[16]結(jié)合馬氏距離,利用PSO優(yōu)化的LS-SVM實現(xiàn)模擬電路的早期故障診斷。
本文以美國田納西州大學高原實驗室所測的數(shù)據(jù)[18]為例,以空氣濕度、溫度、太陽輻射以及風速為輸入,利用LS-SVM,構(gòu)造非負線性組合核函數(shù),將PSO與交叉驗證相結(jié)合確定模型相關(guān)參數(shù),實驗表明與神經(jīng)網(wǎng)絡(luò)和隨機森林(Random Forest, RF)[19-20]相比,LS-SVM可取得更好的預(yù)測精度。
(1)
其中,φ(·)將原空間映射到高維特征空間,‖w‖2控制模型的復(fù)雜度,b為偏置,C可控制訓練誤差在目標函數(shù)中的比重。為得到優(yōu)化問題(1)的對偶問題,定義Lagrange函數(shù)如下:
(2)
其中,乘子αi≥0。Lagrange函數(shù)對于參數(shù)w、b、e、α的偏導(dǎo)數(shù)都應(yīng)等于0,得到:
(3)
(4)
Cei+αi=0
(5)
φ(xi)Tw+b-yi-ei=0
(6)
將式(3)和式(5)代入式(6),可得到:
(7)
將式(4)和式(7)寫成線性方程組形式,并將高維特征空間的內(nèi)積運算用核函數(shù)代替,即K(xi,xj)=φ(xi)Tφ(xj),得到:
(8)
其中,1=[1,…,1]T∈Rl,α=[α1,…,αl]Τ,y=[y1,…,yl]Τ,I為單位矩陣。
核函數(shù)對LS-SVM預(yù)測模型的性能有重要影響。根據(jù)泛函相關(guān)理論,滿足Mercer條件的函數(shù)都可作為核函數(shù),且不同的核函數(shù)的非負線性組合仍然滿足Mercer條件[21]。常見的核函數(shù)有:
其中,d為正整數(shù),σ為正實數(shù)。在實際應(yīng)用中,徑向基核函數(shù)表現(xiàn)出良好的性能。徑向基核函數(shù)是典型的局部核,而多項式核函數(shù)是典型的全局核[21]。為利用多項式核函數(shù)和徑向基核函數(shù)的優(yōu)勢,以它們的非負線性組合作為本文的核函數(shù):
(9)
其中,0<ρ<1。
粒子群算法與遺傳算法都是基于群體和適配概念的優(yōu)化算法,不同之處在于PSO算法有記憶粒子最佳位置的能力,同時粒子間的信息共享機制可免去遺傳算法的3步操作(選擇、交叉、變異),具有收斂速度快、規(guī)則簡單、易于實現(xiàn)的優(yōu)點。
(10)
(11)
(12)
PSO算法需優(yōu)化LS-SVM的4個參數(shù),粒子群算法中的粒子如圖1所示。
圖1 粒子群算法中的粒子
PSO算法優(yōu)化LS-SVM參數(shù)的過程如下:
Step1初始化PSO。
將t設(shè)置為1,設(shè)置粒子群規(guī)模、粒子取值范圍與最大速度vmax、最大進化代數(shù)、c1、c2、w,設(shè)置迭代結(jié)束條件為t達到最大迭代次數(shù),隨機產(chǎn)生n個粒子的位置與速度,單個粒子的歷史最優(yōu)解設(shè)置為粒子初始位置。
Step2訓練LS-SVM模型。
利用訓練數(shù)據(jù)和各粒子對應(yīng)的參數(shù)組合,根據(jù)式(8)和式(9),訓練各粒子對應(yīng)的LS-SVM,計算驗證集的均方根誤差(Root Mean Square Error, RMSE)。RMSEv的計算表達式為:
Step3更新粒子群。
將Step2中的RMSE的倒數(shù)作為粒子適應(yīng)度,更新粒子的歷史最優(yōu)解、粒子群的歷史最優(yōu)解,根據(jù)式(10)~式(12)更新粒子群。
Step4檢驗迭代結(jié)束條件。
若滿足結(jié)束條件,則返回粒子群的當前最優(yōu)解;否則t=t+1,轉(zhuǎn)至Step2。
預(yù)測模型的測試過程為:
Step1訓練LS-SVM模型。
將訓練集與驗證集合并作為新的訓練集,利用PSO算法返回的參數(shù),重新訓練LS-SVM模型。
Step2計算測試誤差。
利用Step1得到的LS-SVM對測試數(shù)據(jù)進行預(yù)測,并計算測試集的RMSE。
本文所用數(shù)據(jù)來自美國田納西州大學高原實驗室,所用試驗田為肥沃的沙質(zhì)土壤,其長度為12.20 m,寬度為4.05 m。試驗針對的作物為青椒,數(shù)據(jù)觀測時間為1994年5月~6月。在試驗中,測量了與青椒需水量息息相關(guān)的4個量:太陽凈輻射、相對濕度、天氣溫度和風速,其中太陽凈輻射為一天累計值,其余為一天平均值。試驗數(shù)據(jù)共有50個樣本,如表1所示。
表1 實驗數(shù)據(jù)
神經(jīng)網(wǎng)絡(luò)選用單隱層結(jié)構(gòu),并利用L-M算法訓練模型,學習步長為0.001,最多迭代次數(shù)為103,隱層激活函數(shù)選擇Sigmoid函數(shù),隱層節(jié)點數(shù)從{1,2,3,4}中選擇。隨機森林含有100棵分類回歸樹,葉節(jié)點的樣本數(shù)從{1,2,3,4,5}中選擇。粒子群優(yōu)化算法迭代次數(shù)為100,種群有20個粒子,慣性權(quán)重w取0.6,c1與c2都取1.7。為簡單起見,非負線性組合核函數(shù)的d值設(shè)為2。LS-SVM的相關(guān)參數(shù)為σ、ρ和C。σ的取值范圍為[0.01,5],C的取值范圍為[0.01,104]。
首先將樣本1~5作為測試數(shù)據(jù),樣本6~50作為訓練數(shù)據(jù),在訓練集上利用粒子群算法和9折交叉驗證方法確定最小RMSE所對應(yīng)的參數(shù)值,獲得樣本1~5的測試結(jié)果;然后以樣本6~10為測試樣本,其余樣本為訓練數(shù)據(jù)。以此類推,直至獲得樣本46~50的測試結(jié)果。
對于神經(jīng)網(wǎng)絡(luò)和LS-SVM而言,在模型訓練之前需將數(shù)值數(shù)據(jù)進行歸一化處理,以克服數(shù)值數(shù)據(jù)量綱的影響。圖2給出了神經(jīng)網(wǎng)絡(luò)、隨機森林和LS-SVM的預(yù)測結(jié)果。表2給出了3種模型在測試集上誤差統(tǒng)計,其中,MAPEt和MAEt分別指測試集的平均絕對誤差率(Mean Absolute Percentage Error)、平均絕對誤差(Mean Absolute Error),計算表達式分別為:
圖2 模型預(yù)測結(jié)果
由表2可知,與神經(jīng)網(wǎng)絡(luò)和隨機森林相比,LS-SVM可獲得更小的誤差指標,具有更好的預(yù)測性能。
表2 預(yù)測模型的誤差統(tǒng)計
為預(yù)測作物需水量,以空氣濕度、溫度、太陽輻射以及風速為輸入,建立LS-SVM預(yù)測模型,利用PSO和交叉驗證方法確定模型相關(guān)參數(shù)。與神經(jīng)網(wǎng)絡(luò)和隨機森林相比,LS-SVM模型可獲得更好的預(yù)測精度,有助于實施精細灌溉。