牛曼麗,李新旭*,張彥軍,雷喜紅,王艷芳,李 蔚
(1.北京市農(nóng)業(yè)技術(shù)推廣站,北京 100029;2.北京市科學技術(shù)情報研究所,北京 100044)
土壤是開展農(nóng)業(yè)生產(chǎn)的基礎(chǔ)條件,土壤含水量是決定土壤生產(chǎn)力的重要因素之一,直接影響作物的生長發(fā)育和產(chǎn)量情況。對土壤含水量進行預測是制定果類蔬菜生產(chǎn)中灌溉制度、科學設(shè)計灌溉系數(shù)的基礎(chǔ)和關(guān)鍵,是實現(xiàn)精細化管理的重要手段。
目前常用的土壤含水量預測模型主要有經(jīng)驗公式法[1-2]、水量平衡模型[3-4]、土壤水動力學法[5]、時間序列模型[6]、遙感監(jiān)測法[7-8]。經(jīng)驗公式法中參數(shù)的適用范圍有限,水量平衡模型、土壤水動力學法等方法測量指標多且復雜;因此,建立一個參數(shù)易于獲取、形式相對簡單、滿足預測精度的墑情預測模型具有重要意義。
隨著物聯(lián)網(wǎng)等信息技術(shù)的快速發(fā)展,引入機器學習方法[9-12]從而實現(xiàn)精確預測已成為當前模型構(gòu)建的主要趨勢。李文峰[13]、李小剛等[14]應用神經(jīng)網(wǎng)絡構(gòu)建了土壤墑情模型;黃令淼等[15]采用缺省因子法簡化了預報模型的輸入項,構(gòu)建了3因子BP-ANN土壤墑情預報模型;侯曉麗等[16]構(gòu)建了40、20、10 cm不同埋深條件下的土壤墑情預報模型,預測值與實測值吻合較好;周志勝等[17]利用遺傳算法的全局尋優(yōu)能力優(yōu)化BP神經(jīng)網(wǎng)絡連接權(quán)值,避免了BP算法易陷入局部極小值的缺點?;谏窠?jīng)網(wǎng)絡算法具有預測精度高、泛化能力強、適合非線性預測等特點,筆者在前人研究的基礎(chǔ)上,研究提出應用粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡的土壤含水量短期預測模型,并對北京市順義區(qū)萬畝方地區(qū)的土壤含水量進行了預測。
試驗數(shù)據(jù)來源于安裝在北京市順義區(qū)趙全營鎮(zhèn)萬畝方的氣象監(jiān)測系統(tǒng)。該系統(tǒng)是基于GPRS的實時氣象在線監(jiān)測系統(tǒng),主要監(jiān)測指標有20 cm土壤溫度、20 cm土壤濕度、空氣溫度、空氣濕度、輻射強度、平均風速、風向、小時降雨、參考蒸發(fā)蒸騰量(ET值)。數(shù)據(jù)采集從8月20日—9月17日,數(shù)據(jù)采集周期為1 h。數(shù)據(jù)共計695組,其中前624組數(shù)據(jù)為學習樣本,用于訓練土壤含水量預測模型,后71組數(shù)據(jù)作為測試樣本,主要用來驗證預測模型的性能。部分原始數(shù)據(jù)見表1。
在采集一組20 cm土壤溫度、20 cm土壤濕度、空氣溫度、空氣濕度、輻射強度、平均風速、小時降雨、ET值、風向數(shù)據(jù)中,不同維度的數(shù)據(jù)單位不同,是不同量綱的數(shù)據(jù)序列,對這組數(shù)據(jù)進行訓練會影響訓練學習的速度,為解決這一問題,需要對數(shù)據(jù)集進行歸一化處理,使各指標數(shù)據(jù)都處于0~1的范圍。
式中:k為原始試驗數(shù)據(jù);kmax、kmin分別為該組試驗數(shù)據(jù)的最大值和最小值。
土壤含水量受到多種環(huán)境參數(shù)的影響,而這些環(huán)境參數(shù)如果作為模型輸入具有一定的線性相關(guān),會降低模型預測的準確性。針對該問題,采用主成分分析法(使用SPSS軟件)處理和降維影響因子的數(shù)量,篩選出影響土壤含水量的關(guān)鍵參數(shù)。主要步驟如下:
(1)計算各指標相關(guān)系數(shù)矩陣。
(2)計算相關(guān)系數(shù)矩陣的特征值及對應的特征向量。
(3)計算貢獻率和累計貢獻率。
(4)計算主成分載荷矩陣,篩選影響土壤含水量的關(guān)鍵參數(shù)。
各個主成分的特征值如表2所示。根據(jù)特征值大于1可以作為提取主成分的原則,前3個主成分起始特征值合計大于1,因此選擇前3個主成分代替原變量。
采用因子旋轉(zhuǎn)后,計算得到不同環(huán)境參數(shù)對不同主成分的因子載荷(表3)。結(jié)合實際測試效果等綜合考量,空氣濕度、空氣溫度、輻射強度和ET值對第1個主成分貢獻最大,平均風速、20 cm土壤溫度對第2個主成分貢獻較大,小時降雨、20 cm土壤濕度對第3個主成分貢獻較大。因此選用空氣濕度、空氣溫度、輻射強度、ET值、20 cm土壤濕度、20 cm土壤溫度、平均風速、小時降雨作為主成分因子,減少了模型輸入量,消除了輸入變量之間的相關(guān)性,提高了網(wǎng)絡收斂性及計算效率。
表1 試驗部分原始數(shù)據(jù)
BP神經(jīng)網(wǎng)絡(Back Propagation neural network)是一種按誤差逆?zhèn)鞑ニ惴ㄓ柧毜亩鄬忧梆伾窠?jīng)網(wǎng)絡,主要通過梯度下降法使網(wǎng)絡的誤差平方和最小,在當前得到了普遍應用。BP神經(jīng)網(wǎng)絡的結(jié)構(gòu)分為輸入層、隱層和輸出層3部分,學習訓練過程分為前向傳播和反向傳播2個階段。
2.1.1 前向傳播
輸入的樣本通過設(shè)置的網(wǎng)絡結(jié)構(gòu)、權(quán)值閾值和傳遞函數(shù),從網(wǎng)絡第1層向后計算各神經(jīng)元的輸出。計算步驟歸納如下:
式中:xi—從上層神經(jīng)元傳來的輸入信號;ωij—從輸入神經(jīng)元i到隱層神經(jīng)元j的權(quán)值;bj—輸入神經(jīng)元i到隱層神經(jīng)元j的閾值或偏置;neti——凈傳輸值;yi—隱層神經(jīng)元i的輸出;f(x)—傳遞函數(shù);l—隱層節(jié)點數(shù);ωjk—從上層神經(jīng)元j到神經(jīng)元k的權(quán)值;ck—隱層到輸出層的閾值或偏置。傳遞函數(shù)對于收斂速度和擬合程度有顯著的影響。
2.1.2 反向傳播
對權(quán)值和閾值進行更改,從最后一層向前計算各權(quán)值和閾值對誤差的影響,重新計算連接權(quán)值ωij、ωjk,公式如下:
表2 環(huán)境因子的特征值
表3 因子載荷矩陣
式中:α為學習速率,Yk為實際值,Ok為預測值。
BP神經(jīng)網(wǎng)絡實現(xiàn)了從輸入到輸出的映射,能夠?qū)崿F(xiàn)復雜非線性的映射,具有較強的自學習能力,但由于BP神經(jīng)網(wǎng)絡算法是一個局部搜索優(yōu)化算法,容易陷入局部最優(yōu)解,而網(wǎng)絡初始化權(quán)值和閾值是隨機的,那么勢必會造成每次訓練結(jié)果都不一樣。
粒子群算法(Particle Swarm Optimization)是一種通過模擬鳥群覓食行為構(gòu)建的基于群體智能的進化計算方法?;竞诵乃枷胧抢萌后w中的個體對信息的共享從而使得整個群體的運動在問題求解空間中產(chǎn)生從無序向有序演化,從而獲得問題的最優(yōu)解,被廣泛地應用于求解復雜、非線性的優(yōu)化問題,優(yōu)點是魯棒性強、不易陷入局部最優(yōu)解。
粒子的速度和位置在迭代中的更新:
式中:c1、c2—學習因子;r1、r2—(0,1)區(qū)間服從均勻分布的隨機數(shù);n為迭代次數(shù),XiDn—迭代n次粒子i的位置;ViDn—迭代n次粒子的速度;—從初始到當前迭代次數(shù)的搜索產(chǎn)生的個體極值;PgDn—從初始到當前迭代次數(shù)的搜索產(chǎn)生的全局極值。
針對BP神經(jīng)網(wǎng)絡收斂速度慢、極易收斂于局部極值等缺陷,本研究將PSO算法與BP神經(jīng)網(wǎng)絡相結(jié)合,優(yōu)化BP神經(jīng)網(wǎng)絡以解決這些問題。主要步驟如下:
步驟1:確定BP神經(jīng)網(wǎng)絡拓撲結(jié)構(gòu):輸入層節(jié)點數(shù)、隱層節(jié)點數(shù)、輸出層節(jié)點數(shù),初始化BP神經(jīng)網(wǎng)絡的連接權(quán)值、閾值長度,作為PSO的編碼。
步驟2:初始化粒子群的種群規(guī)模、最大迭代次數(shù)、學習因子、粒子位置、粒子速度最大值和最小值。
步驟3:通過網(wǎng)絡訓練,計算粒子的適應度函數(shù)值,得到粒子的最優(yōu)解與種群最優(yōu)解。記錄粒子最好的位置。
步驟4:當訓練網(wǎng)絡的誤差滿足設(shè)定條件時,停止迭代,計算并得到結(jié)果,否則繼續(xù)步驟3,繼續(xù)迭代直至算法收斂。
步驟5:將經(jīng)過PSO優(yōu)化的權(quán)值和閾值作為BP神經(jīng)網(wǎng)絡的初始權(quán)值和閾值代入BP神經(jīng)網(wǎng)絡。訓練網(wǎng)絡,由訓練樣本和測試樣本完成神經(jīng)網(wǎng)絡的訓練和測試,輸出預測值。
優(yōu)化算法流程圖如圖1:
對含水量預測模型參數(shù)進行設(shè)置。
(1)粒子群算法部分。根據(jù)一般經(jīng)驗值進行設(shè)置,種群大小個數(shù)為10,學習因子c1=c2=1.50,迭代次數(shù)n為50,粒子位置Xmax=5,Xmin=-5,Vmax=1,Vmin=-1。粒子的適應度函數(shù)等于BP神經(jīng)網(wǎng)絡的真實值與預測值的均方差。
(2)BP神經(jīng)網(wǎng)絡部分。整個網(wǎng)絡由3層構(gòu)成(圖2),輸入層節(jié)點數(shù)為8,主要輸入數(shù)據(jù)為上一時刻土壤溫度、土壤濕度、空氣溫度、空氣濕度、輻射強度、平均風速、小時降雨、ET值,輸出層值為5 h后的土壤濕度,隱層節(jié)點數(shù)為5。傳遞函數(shù)Sigmoid,訓練次數(shù)為2 000次,訓練目標是0.000 01。
為了便于更加準確地評估土壤含水量預測模型的預測準確性,本文選用了3個評價指標,分別為誤差均方根(RMSE)、平均絕對誤差(MAE)、平均絕對百分誤差(MAPE)。
適應度曲線見圖3所示,當?shù)螖?shù)為50時,最佳適應度呈現(xiàn)出前期下降而后逐漸趨于平緩的趨勢,平均適應度曲線呈現(xiàn)出總體下降趨勢;因此,迭代次數(shù)選取50是合理的。
在Matlab R2015b環(huán)境下運行,經(jīng)過PSO優(yōu)化神經(jīng)網(wǎng)絡后得到了適合順義區(qū)萬畝方做土壤含水量預測的權(quán)值和閾值(表4)。
圖4是PSO-BP神經(jīng)網(wǎng)絡算法與單一BP神經(jīng)網(wǎng)絡的預測值與實際值的比較,可以直觀地看出2種方法對土壤含水量預測的變化趨勢與真實變化趨勢總體上相同,而PSO-BP神經(jīng)網(wǎng)絡預測更接近于實際值,具有更高的準確性。
由表5可知,優(yōu)化后的PSO-BP模型土壤含水量預測與普通BP神經(jīng)網(wǎng)絡預測相比較,RMSE下降幅度達21.16%,PSO-BP模型的MAE、MAPE、RMSE分別為0.259 2、0.010 5和0.135 6,均低于單一BP神經(jīng)網(wǎng)絡預測,可滿足實際的土壤含水量預測的需要。
針對常用土壤含水量預測模型中存在的參數(shù)多、適用性差等問題,提出了基于PSO-BP神經(jīng)網(wǎng)絡的土壤含水量短期預測模型,應用粒子群算法較強的全局尋優(yōu)能力,將優(yōu)化好的BP神經(jīng)網(wǎng)絡運用到土壤含水量預測中,彌補了BP神經(jīng)網(wǎng)絡易陷入局部最優(yōu)解及收斂時間長的缺陷。結(jié)果表明,PSO-BP土壤含水量預測模型用來預測非線性時間序列的土壤含水量是可行的,在未來結(jié)合物聯(lián)網(wǎng)系統(tǒng),可以實現(xiàn)在線預測的功能?;赑SO-BP神經(jīng)網(wǎng)絡土壤含水量預測模型提高了模型收斂速度和精確度,可提前準確預測未來5 h后的土壤水分變化,具有一定的應用價值。
表4 由PSO優(yōu)化BP神經(jīng)網(wǎng)絡得到的最優(yōu)權(quán)值和閾值
表5 BP與PSO-BP算法評價指標