王建輝,冉金鑫,沈瑩瑩,韓振中,崔遠來,羅玉峰
(1.武漢大學水資源與水電工程科學國家重點實驗室,武漢430072;2.中國灌溉排水發展中心,北京100054)
農業水資源管理是區域水資源優化配置的重要環節,而合理配置農業水資源的前提是需要對農業灌溉用水量進行精確預測[1]。從機理層面看,農業灌溉用水量受區域降水量、蒸散量、灌溉面積、灌溉水利用系數等因素的影響,從宏觀層面看,農業灌水量與區域水資源可利用數量、灌溉工程建設水平、農業結構調整和灌溉管理水平等諸多因素也存在著密不可分的聯系[2]。因此農業灌水量的變化趨勢既存在著可預見的規律性,又存在著一定的不確定性。要實現對其精確地預測,需要一種既能從機理層面解釋,又能在高維非線性關系中找尋最優解的方法。人工神經網絡模型便是一個比較合適的方法。
近些年國內外學者對神經網絡應用于灌溉用水量預測做了許多探索性研究。徐建新[3]等提出BP 神經網絡灌區灌水量預測模型,考慮了灌溉面積、年降雨量以及糧食產量對灌溉用水量的影響;方旭[4]等利用BP 神經網絡模型,對遼寧錦州市為實例進行了灌水量預測,結果滿足規范要求;張藝聰[5]利用BP神經網絡模型鄭州市農業灌溉用水量進行預測,預測精度較好。但這類方法采用傳統神經網絡模型算法,存在參數的初始值得不到優化、收斂速度慢等問題。遲道才[6]等在人工神經網絡的基礎上引入灰色預測方法,二者結合成并聯型灰色神經網絡預測方法。儲誠山[7]等、嚴旭[8]等相繼提出了基于遺傳算法的BP 神經網絡用水量預測模型,有效地提高了BP 神經網絡的預測精度。Zhang[9]等通過非線性協整理論與小波神經網絡相結合的方法,建立了灌溉水量小波非線性協整預測模型。但這類研究仍存在許多不足:并聯型灰色神經網絡和小波非線性協整預測模型只在中長期灌水預測中表現較好,在短期灌水預測中誤差較大;單一遺傳算法不能解決學習率固定導致的收斂速度緩慢問題。本文從原理角度分析了傳統BP 神經網絡在訓練過程中存在的弊端,引入了GA 和Adam 兩種優化算法,以黃河流域隴中片灌溉分區內7 個典型灌區的實測灌水數據為例,對GA-Adam-BP神經網絡的性能進行了分析。
BP 神經網絡是一種按誤差逆傳播算法訓練的多層前饋網絡。模型運行過程包括正向傳播和誤差反向傳播兩部分。以3層BP 神經網絡為例,如圖1所示。首先,樣本數據通過加權計算后,經過輸入層、隱藏層以及輸出層,然后通過激活函數,計算出網絡輸出值;最后將輸出值從輸出層到輸入層反向遍歷所有層,確定輸出層與樣本輸出期望值之間的損失函數。當網絡誤差達到一定精度要求時,網絡便訓練成功[10]。

圖1 3層BP神經網絡結構圖Fig.1 3-layer BP neural network structure diagram
在誤差反向傳播的過程中,梯度下降法(GD)是最原始的調整損失函數參數的方法。GD 法的原理是:當誤差沒有達到預設精度,將損失函數分別對權重w和閾值b進行求導,求得損失函數對應不同參數下的梯度dw和db,然后沿著負梯度方向進行迭代,就可以收斂到損失函數最小值[11]。迭代公式為:

式中:wt、bt是調整后的權值和閾值,wt-1、bt-1是待訓練的權值和閾值,α是學習率,dw、db是梯度。
傳統GD法存在著以下兩個問題:
(1)參數的初始值選擇問題。初始權值w和閾值b一般是模型設計者給出的參數,初始值選擇不同,獲得的最小值也有可能不同。因此GD 法求得的結果從理論上看只是局部最小值,除非損失函數是凸函數。因此傳統GD 法存在著局部最優解而非全局最優解的風險,需要多次用不同初始值運行算法,選擇損失函數最小化的初值。
(2)學習步長的選擇問題。學習率α指定了反向傳播過程中梯度下降的步長,在GD 法中,學習率α從始至終是固定不變的,學習率太小會導致收斂速度過慢,而學習率太大會阻礙收斂,同時還會導致損失函數在極小值周圍波動甚至背離。因此選擇合適的學習率變得尤為重要。
遺傳算法(GA)是一種并行隨機搜索最優化方法。其基本要素包括:染色體編碼、適應度函數、遺傳操作和運行參數[12]。在本文中使用的編碼方法為實數編碼,每個個體均為一個實數串,由輸入層與隱含層連接權值、隱含層閾值、隱含層與輸出層連接權值以及輸出層閾值共4 部分組成。由于個體包含了神經網絡全部權值和閾值,因此在網絡結構已知的情況下,就可以構成一個確定的神經網絡。適應度函數F為預測輸出和期望輸出之間的誤差絕對值和,函數表達式為:

式中:k為系數;Ti為期望輸出值;為預測輸出值。
然后通過GA 法中選擇、交叉和變異操作找到最小適應度值對應個體,從全局得到最優個體對網絡初始權值w和閾值b的賦值。因此引入GA 法可以實現對初始權值和閾值的預篩選,同時還可解決傳統GD 法存在著局部最優解而非全局最優解的缺點。
Adam 算法來源于適應性矩估計(Adaptive Moment Estimation),是一種使用動量和自適應學習率來加快收斂速度的優化算法[13]。引入動量因子是為了抑制GD 法在收斂過程中的震蕩作用。與GD 法相比,Adam 算法不直接使用梯度,而是用各個時刻梯度的指數移動平均值來代替GD 法中的梯度,也即是梯度的一階矩估計,其表達式為:

式中:mt-1、mt分別為迭代前、迭代后的一階矩估計;β1為指數加權平均參數;dk代表權值w或閾值b的梯度。
自適應學習率算法實質上是采用了梯度的二階矩估計[14]。二階矩估計表達式為:

式中:vt-1、vt分別為迭代前、迭代后的二階矩估計;β2為指數加權平均參數;dk2代表權值w或閾值b的梯度平方。
將上述一階動量mt、二階動量vt結合在一起,對權值和閾值進行更新,表達式如下:

式中:wt、bt為調整后的權值和閾值;wt-1、bt-1為待訓練的權值和閾值;α為學習率;δ為常數。
由式(6)和(7)可看出,Adam 算法利用一階矩估計mt代替GD 法的梯度,從而控制權值或閾值的調整方向;利用二階矩估計vt調整學習率的大小,讓學習速率自適應于梯度變化,從而解決GD法難以選擇學習率和影響模型收斂的問題。
本文將GA 算法和Adam 算法同時應用到BP 神經網絡的農業灌水量預測模型中,算法流程圖如圖2所示。

圖2 GA-Adam-BP神經網絡流程圖Fig.2 GA-Adam-BP neural network flow chart
樣本數據為黃河流域隴中片灌溉分區內典型灌區的氣象資料和作物實測灌水資料。典型灌區包括:興電灌區、賈崖張井五家溝灌區、發源灌區、菜子口灌區、灃泰渠灌區、永固渠灌區、馬寨南井灌區等7個灌區。樣本數據主要包括:
(1)氣象資料。氣象資料包括典型灌區對應7 個氣象站點的2015年1月1日-2018年12月31日的逐日氣象數據,數據來源于中國氣象數據網(http://data.cma.cn/)。
(2)實測灌水資料。7 個典型灌區的玉米實測灌水資料(2015-2018年)。利用氣象資料整理月降雨量,月ET0等因素作為模型輸入層,從水量平衡機理層面解釋農業灌水量的變化趨勢;同時加入時間序列因子,增強模型的短期預測能力。以7個典型灌區2015-2017年的數據作為模型的訓練集,2018年的數據作為測試集。表1 為興電灌區的訓練集與測試集數據示例。由于灌區實測灌水數據不全,有些年份和月份的實測灌水量是空值,將空值日期剔除后,共計64 組訓練數據,14 組測試數據。

表1 興電灌區訓練集與測試集數據Tab.1 Xingdian Irrigation Area training samples and test samples
(1)BP神經網絡參數設置。以樣點數據中月ET0、月降雨以及月份序列作為模型的輸入層,輸入節點為3。月灌溉定額作為模型的輸出層,輸出節點為1。從理論來看,當BP 網絡結構為3 層時,可以無限趨近于任何有理函數。考慮本模型輸入層節點數并不多,設置過多隱含層數容易導致過擬合現象。因此,將隱含層數設為1,隱含層節點數設為12。初始權重w和閾值b均設為0.5,訓練結束次數設為5 000。
(2)GA 和Adam 算法參數設置。GA 法參數設置:種群規模為10,進化次數為50 次,交叉概率為0.4,變異概率為0.2。Adam 算法參數設置為:初始學習率α設為0.001,一階矩、二階矩估計的指數加權平均參數β1和β2分別設為0.9 和0.999,δ取值為10×10-8。
本文分別使用GD算法、GA算法、Adam算法以及GA-Adam算法對BP 神經網絡進行訓練,共建立4 種農業灌水量預測模型,模型參數設置保持一致,以此檢驗GA-Adam 優化算法性能的好壞。
圖3 為4 種算法在實際訓練過程損失函數變化圖。對比4種模型誤差收斂速度,其中GA 法無法在指定訓練次數達到預設精度,在訓練次數達到5 000次仍未達到預設精度。由圖3可看出,訓練次數達到1 400 次左右時,GD 法的損失函數基本收斂在0.022 5附近,這說明傳統BP神經網絡模型學習能力不夠,未能捕捉到樣本數據集的特征信息;GA 法可以改進傳統梯度下降法收斂速度慢的缺點,在訓練次數達到1 084 次時,損失函數值降為0.001,達到預設訓練精度;Adam 法能夠快速收斂,在訓練93 次時達到預設精度。GA-Adam 法所需訓練次數最少,在訓練67次時達到預設精度。

圖3 不同算法的損失函數變化圖Fig.3 Variation diagram of loss function of different algorithms
圖4 是4 種算法的訓練時長對比圖。GD 法在訓練過程中速度基本保持恒定,這可能是因為GD 法保持恒定學習率進行訓練導致的結果。GD 法在預設5 000 次訓練次數的限制下,用時3.926 s,而其損失函數在第1400 次訓練次數時基本達到收斂,此時訓練時長為1.113 s,同比其他算法依舊用時最多;GA法在訓練末期速度加快,總訓練時長達到0.966 s;Adam 法和GA-Adam 法在10 次訓練次數以內,訓練速度均較為緩慢,隨后逐漸加快,在訓練末期速度減慢。總訓練時長達到0.528 s 和0.403 s。

圖4 不同算法的訓練時長對比圖Fig.4 Comparison of training duration of different algorithms
因此,結合訓練精度和時長來看,GA-Adam法最為高效,僅在訓練次數為67 次,訓練時長為0.403 s 時就達到模型預設精度。
圖5 為4 種算法模型預測值與期望值的對比圖。從圖5 中可看出,GD 法和GA 法的預測值曲線變化趨勢與實測值的變化趨勢大致一致,除了個別與測試樣本數據相差較大,例如GD 法與測試樣本序列第3、6、9、11 的誤差較大,GA 法與測試樣本序列2、4、7、9 的誤差較大??傮w來看GD 法和GA 法的預測值與實測值之間的擬合情況一般。GD 法預測效果更差,GA 法相對較好。Adam 法和GA-Adam 法的預測值擬合效果較好,預測值曲線均大致分布在實測值附近,該兩種方法較GD 和GA 法來看明顯更優。

圖5 不同算法模型預測值與實測值的對比圖Fig.5 Comparison between predicted and measured values of different algorithm models
為了定性分析二者的優劣性,進行4 種算法預測值與實測值的回歸分析。圖6為預測值與實測值的回歸分析圖。采用均方根誤差RMSE)、平均絕對誤差MAE和決定系數R2等統計指標對預測值進行精度評價。均方根誤差RMSE、平均絕對誤差MAE越小,決定系數越接近1,預測值和實際值越接近,預測效果越好。表2 為4 種算法模型預測誤差表。由表1 和圖6 可看出,隨著算法的改進,4種算法的均方根誤差和平均絕對誤差逐漸減小,預測誤差從大到小的算法依次是GD 法、GA 法、Adam法、GA-Adam 法,GA-Adam 法的RMSE和MAE分別為54.73 和47.76。從決定系數R2來看,從大到小順序為GA-Adam 法、Adam法、GA法、GD法,其中GA-Adam 法的R2為0.81,最接近于1。綜上所述,不論從模型訓練速度還是從預測結果精度來看,均是GA-Adam法為最佳優化算法。

表2 不同算法模型預測誤差表Tab.2 Prediction error table of different algorithm models


圖6 不同算法模型預測值與實測值的對比圖Fig.6 Comparison between predicted and measured values of different algorithm models
GA-Adam算法在訓練過程中表現出極高的精度,同時收斂速度最快,僅在訓練次數為67 次,訓練時長為0.403 s 時便達到預設精度;在模型測試誤差分析中,GA-Adam 模型預測值與期望值的RMSE和MAE分別為54.73和47.76,決定系數R2為0.81,同樣是GA-Adam 算法預測精度最好。綜上所述,本文基于GA-Adam 優化算法的BP 神經網絡農業灌水量預測模型,在農業灌水量預測方面有較高的可靠性和較好的應用性?!?/p>