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