劉洪山,王衛(wèi)星,孫道宗,高鵬,
陳文彬1,林楚婷1,謝家興1,3*
(1. 華南農(nóng)業(yè)大學電子工程學院,廣東 廣州 510642; 2. 廣東省智慧果園科技創(chuàng)新中心,廣東 廣州 510642; 3. 廣東省農(nóng)情信息監(jiān)測工程技術(shù)研究中心,廣東 廣州 510642)
全球的水資源日益緊缺,對于中國而言,全國供水量的60%左右為農(nóng)業(yè)灌溉用水,但灌溉水利用率僅為43%[1-3],因此,如何合理利用農(nóng)業(yè)用水成為一個亟待解決的問題.針對作物需水量規(guī)律錯綜復(fù)雜的特點,利用BP神經(jīng)網(wǎng)絡(luò)具有自組織、自適應(yīng)、自學習能力,可有效表明灌溉需水量與環(huán)境因子之間的非線性關(guān)系.夏澤豪等[4]通過多維氣象因子和參考作物需水量的相關(guān)度分析,建立預(yù)測作物需水量的灰色神經(jīng)網(wǎng)絡(luò)模型.沈岳等[5]以農(nóng)田水分平衡公式為基礎(chǔ),建立了農(nóng)田灌溉量的BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型.商志根[6]應(yīng)用神經(jīng)網(wǎng)絡(luò)集成模型,以空氣濕度、溫度、太陽輻射以及風速為輸入,利用交叉驗證方法確定網(wǎng)絡(luò)隱層節(jié)點數(shù),建立作物需水量預(yù)測模型.但在實際應(yīng)用中,BP神經(jīng)網(wǎng)絡(luò)存在易陷入局部最優(yōu)、迭代收斂速度緩慢等問題[7-10].遺傳算法是一種借鑒生物界自然進化機制的全局隨機搜索算法,具有很強的全局搜索能力.因此,為BP神經(jīng)網(wǎng)絡(luò)避免網(wǎng)絡(luò)陷入局部極小,采用遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值是一種有效的方法,它可以提高BP神經(jīng)網(wǎng)絡(luò)的收斂速度和精度.
通過調(diào)研中國各地區(qū)的荔枝生產(chǎn)情況,例如廣東省、福建省、海南省及四川省等多地,可知荔枝產(chǎn)量主要受降雨量是否充沛、年平均溫度及日照這3個主要因素的影響.文中提出一種基于GA-BP神經(jīng)網(wǎng)絡(luò)的荔枝果園需水量預(yù)測方法,通過傳感器節(jié)點實時獲取果園的空氣溫度、土壤含水率、光照強度等環(huán)境數(shù)據(jù),預(yù)測當前作物的需水量,以實現(xiàn)精準灌溉的同時,有效節(jié)約水資源和果園灌溉成本,并驗證模型的有效性.
系統(tǒng)框圖如圖1所示.本環(huán)境信息采集系統(tǒng)的傳感器節(jié)點主要由多個傳感器、處理器、無線通信模塊和電源等組成,實物如圖2所示.采集數(shù)據(jù)的傳感器分別為測量土壤含水率的TDR-3傳感器、測量空氣溫濕度的DHT22數(shù)字傳感器及測量光照強度的GY-30傳感器[1,3],處理器則為ST公司的STM32F103C8T6.
圖1 環(huán)境信息采集系統(tǒng)結(jié)構(gòu)
圖2 傳感器節(jié)點實物圖
在充分考慮環(huán)境氣象數(shù)據(jù)和網(wǎng)絡(luò)復(fù)雜度的基礎(chǔ)上,采用聯(lián)合國糧食及農(nóng)業(yè)組織推薦的Penman-Monteith公式結(jié)合作物系數(shù)對作物需水量進行計算,將溫度、土壤含水率、光照強度這3個環(huán)境影響因子作為BP神經(jīng)網(wǎng)絡(luò)的輸入,預(yù)測灌溉需水量作為網(wǎng)絡(luò)的輸出,建立基本BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型.
為了使網(wǎng)絡(luò)獲得良好的收斂和映射關(guān)系,削弱各環(huán)境因子不同量綱的數(shù)據(jù)對網(wǎng)絡(luò)模型訓練和預(yù)測值的影響,采用式(1)對環(huán)境數(shù)據(jù)進行歸一化,將訓練樣本的所有數(shù)據(jù)轉(zhuǎn)化到[0,1]區(qū)間內(nèi).
(1)
式中:Xi為樣本數(shù)據(jù);Xmax,Xmin為樣本數(shù)據(jù)的最大值和最小值;X′i為歸一化后的值.圖3繪制了傳感器網(wǎng)絡(luò)采集環(huán)境數(shù)據(jù)中的小部分樣本數(shù)據(jù),圖中ET為需水量,E為光照強度,φ為濕度,t為溫度.
圖3 樣本數(shù)據(jù)
BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),包含輸入層、隱含層、輸出層.學習的過程中主要采用信號前向傳遞、誤差反向傳播的方式.
BP神經(jīng)網(wǎng)絡(luò)算法核心是將期望輸出與網(wǎng)絡(luò)輸出進行對比得出誤差值,將誤差值反向傳播,逐層修改權(quán)值和閾值,直至誤差值達到預(yù)設(shè)的誤差范圍,完成對信息的學習和記憶.
具體算法是:
設(shè)ui為輸出層的輸入信號,則隱含層所對應(yīng)神經(jīng)元的輸入信號netj表示為
netj=∑ωijui+θj.
(2)
隱含層神經(jīng)元節(jié)點的輸出信號οj為
oj=φ(netj)=φ(∑ωijui+θj).
(3)
輸出層神經(jīng)元節(jié)點接收到的輸入信號為
netk=∑ωjkoj+θk=∑ωjkφ(∑ωijui+θj)+θk,
(4)
則經(jīng)過輸出層神經(jīng)元后的輸出信號為
(5)
式中:φ(·),τ(·)分別為隱含層和輸出層傳遞函數(shù);ωij,ωjk和θj,θk分別為各層的權(quán)值和閾值;i,j,k為各層神經(jīng)元數(shù)目.
在誤差反向傳播過程中,權(quán)值、閾值按式(6),(7)進行迭代更新.
Δωij(jk)=ηδj(k)oi(j),
(6)
Δθj(k)=ηδj(k),
(7)
式中:η為誤差反向傳播學習率(0<η<1);δj(k)為各層誤差信號.BP神經(jīng)網(wǎng)絡(luò)學習算法流程如圖4所示.
圖4 反向傳播網(wǎng)絡(luò)示意圖
據(jù)研究,BP神經(jīng)網(wǎng)絡(luò)的輸入節(jié)點數(shù)是u時,單個隱含層節(jié)點數(shù)選取2u+1時,BP神經(jīng)網(wǎng)絡(luò)模型能很好反映實際情況.由于隨著神經(jīng)網(wǎng)絡(luò)層數(shù)的增加,需要確定的權(quán)重越多,網(wǎng)絡(luò)復(fù)雜度越高,運算時間成本也會增加.多數(shù)BP預(yù)測模型中,3層神經(jīng)網(wǎng)絡(luò)已可滿足要求,根據(jù)多次實際仿真試驗,結(jié)合網(wǎng)絡(luò)復(fù)雜度、預(yù)測時間和預(yù)測效果的折中考慮,采用3層神經(jīng)網(wǎng)絡(luò)對于荔枝需水量預(yù)測模型已可達到基本要求.由于BP神經(jīng)網(wǎng)絡(luò)易陷入局部最優(yōu),因此采用遺傳算法進行優(yōu)化[9-11].隱含層節(jié)點數(shù)為7,確定BP結(jié)構(gòu)為3-7-1.隱含層和輸出層所采用的傳遞函數(shù)分別為tansig和purelin.由于Levenberg-Marquardt算法可以調(diào)整阻尼因子來控制收斂程度及收斂速度,克服了梯度法存在最終階段線性收斂且速度慢和牛頓法存在最終階段收斂速度快但是初始階段效果不好的缺點,同時具備了牛頓法局部收斂性和梯度法全局性的特點,因此網(wǎng)絡(luò)訓練函數(shù)選用Levenberg-Marquardt算法.訓練樣本選取40組樣本數(shù)據(jù),根據(jù)文獻經(jīng)驗,學習率設(shè)為0.1,最大訓練次數(shù)設(shè)為500,最小均方差設(shè)為0.001[11-13].BP神經(jīng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖5所示,仿真訓練中,訓練集訓練至400次左右,訓練誤差便已下降至0.001,達到性能要求.
圖5 BP神經(jīng)網(wǎng)絡(luò)的拓撲結(jié)構(gòu)
遺傳算法是一種基于達爾文進化論和孟德爾遺傳學的全局優(yōu)化隨機搜索算法,不易陷入局部最優(yōu).遺傳算法基本流程如圖6所示.通過選擇、交叉和變異等操作,尋找最優(yōu)個體.
圖6 遺傳算法
BP神經(jīng)網(wǎng)絡(luò)存在全局搜索能力不強,收斂速度慢和易陷入局部最小值等缺陷.故先采用遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)值和閾值進行全局搜索,定位最優(yōu)解后再用BP神經(jīng)網(wǎng)絡(luò)局部尋優(yōu)并進行結(jié)果預(yù)測,如圖7所示.
算法具體步驟如下:
1) 個體編碼
隨機產(chǎn)生1個種群Χm×n,每個神經(jīng)網(wǎng)絡(luò)的初始權(quán)值分布為Χ1×n,并且每個基因值相當于一個連接權(quán)值,因此個體的個數(shù)也代表神經(jīng)網(wǎng)絡(luò)權(quán)值的個數(shù),即
n=r×s1+s1×s2+s1+s2,
(8)
式中:n為個體的長度;r為輸入層節(jié)點數(shù);s1為隱含層節(jié)點數(shù);s2為輸出層節(jié)點數(shù).關(guān)于權(quán)值編碼的選擇,為了提高算法的精度,采用的方式是浮點數(shù)編碼.
2) 適應(yīng)度函數(shù)確定
圖7 GA-BP模型
個體評價的依據(jù)是適應(yīng)度函數(shù)值,BP神經(jīng)網(wǎng)絡(luò)輸入樣本則通過對每個個體進行解碼來獲得,適應(yīng)度函數(shù)f設(shè)定為神經(jīng)網(wǎng)絡(luò)誤差平方和的導數(shù),即
(9)
式中:SE為神經(jīng)網(wǎng)絡(luò)期望輸出與預(yù)測輸出的誤差平方和.神經(jīng)網(wǎng)絡(luò)預(yù)測誤差越小,適應(yīng)度越好.在得到各個體的適應(yīng)值后,比較個體的適應(yīng)度值,選取種群個體適應(yīng)度最大作為子種群.
3) 選擇算子
選擇策略上采用賭輪方法選擇算子,這種方法反映個體被選擇的概率與其適應(yīng)值大小成正比.將第i個個體的適應(yīng)值設(shè)為fi,在種群規(guī)模k下,第i個體被選中的概率計算公式為
(10)
4) 交叉算子
采用數(shù)值交叉算子方法作為基因交叉組合的方式,設(shè)第i個個體在第k位的基因為Xi(k),假設(shè)Xi(k),Xi+1(k)以交叉概率pc進行交叉操作,通過線性組合的方式來產(chǎn)生子代個體,則交叉后的子代個體為
(11)
式中:α,β為隨機數(shù),取值范圍為0~1.
5) 變異算子
為實現(xiàn)對基因局部進行改變來產(chǎn)生新個體,采用均勻變異算子,對每一基因組,以變異概率pm進行替換.
Xi=Xi(p)+r×q+Xi(n-p-1),
(12)
式中:q為第p+1個基因值對應(yīng)的閾值寬度.
6) 計算適應(yīng)度函數(shù)值
根據(jù)每次計算所得的適應(yīng)度函數(shù)值,進行優(yōu)化條件判斷,若達到所設(shè)置的最大迭代次數(shù)或者滿足精度要求,則獲取最優(yōu)權(quán)值和閾值,否則返回循環(huán),進行重新計算.
文中遺傳參數(shù)的具體數(shù)值:種群規(guī)模設(shè)置為100,交叉概率和變異概率分別設(shè)置為0.3和0.1,進化迭代次數(shù)設(shè)置為250.
為保證隨機性和不重復(fù),從硬件端采集的同時期數(shù)據(jù)中每次隨機選取50組數(shù)據(jù)作為樣本數(shù)據(jù)進行試驗,檢驗效果時,檢驗樣本采用樣本數(shù)據(jù)中40組訓練樣本外的10組數(shù)據(jù),分別對網(wǎng)絡(luò)模型進行了測試.選擇神經(jīng)網(wǎng)絡(luò)誤差平方和的倒數(shù)作為遺傳算法的適應(yīng)度函數(shù),經(jīng)過200次迭代得到最佳適應(yīng)度函數(shù).在尋優(yōu)過程,最優(yōu)適應(yīng)度與平均適應(yīng)度變化如圖8所示,圖中f為適應(yīng)度函數(shù)值,m為迭代次數(shù).
圖8 適應(yīng)度函數(shù)變化曲線
由圖8可以看出,適應(yīng)度曲線先呈現(xiàn)曲折上升的趨勢,后逐漸趨于平穩(wěn)狀態(tài),在進化迭代到120代之后適應(yīng)度基本趨于穩(wěn)定,說明此時個體在算法優(yōu)化下達到最優(yōu)解.可見遺傳算法在改善BP神經(jīng)網(wǎng)絡(luò)的誤差和收斂速度方面有非常好的效果.
根據(jù)荔枝生長主要環(huán)境影響因子建立的2個預(yù)測模型,能夠?qū)崿F(xiàn)有效的預(yù)測,預(yù)測值與實際值基本吻合,如圖9所示,圖中ET為需水量.計算了2個模型下預(yù)測結(jié)果的3個特征指標,分別為平均絕對百分比誤差(MAPE)、均方根誤差(RMSE)和平均絕對誤差(MAE),若預(yù)測效果越差則所計算各類指標值越大.由表1中的指標值大小比較可知,遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)與未優(yōu)化前相比,擬合效果明顯得到提高.表1中XMAPE,XRMSE,XMAE分別為計算所得的MAPE,RMSE,MAE特征指標值.
圖9 預(yù)測比較圖
為分析GA-BP神經(jīng)網(wǎng)絡(luò)模型預(yù)測輸出變化相對于目標輸出變化的變化率,采用線性回歸的方法,文中利用Matlab工具箱函數(shù)postreg,線性回歸結(jié)果為
P=1.031 5T-0.170 9,R=0.979 9,
(13)
式中:P為預(yù)測值;T為試驗值;R為相關(guān)度系數(shù).由回歸分析結(jié)果可知,經(jīng)過遺傳算法優(yōu)化后,最佳線性回歸方程的相關(guān)系數(shù)達0.979 9,表明預(yù)測值與實際值的偏差極小,優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)預(yù)測性能有所提高,預(yù)測效果比較理想.
表1是10組未進行學習的樣本分別進行預(yù)測后的特征指標值,比較2組XMAPE,XRMSE,XMAE的數(shù)值,可以看出,相比優(yōu)化前的BP神經(jīng)網(wǎng)絡(luò),遺傳BP神經(jīng)網(wǎng)絡(luò)模型的特征指標值明顯有所減小,證明其預(yù)測效果和收斂速度優(yōu)于未優(yōu)化的BP神經(jīng)網(wǎng)絡(luò).
1) 針對傳統(tǒng)果園需水量預(yù)測方法精度低、魯棒性差等問題,提出了基于GA-BP神經(jīng)網(wǎng)絡(luò)的果園需水量預(yù)測模型,通過遺傳算法優(yōu)化BP網(wǎng)絡(luò),獲得最優(yōu)權(quán)值和閾值,改善了BP神經(jīng)網(wǎng)絡(luò)易陷入局部極值的問題,提高了模型的收斂速度和預(yù)測精度.對荔枝的需水量進行更高精度的預(yù)測,可以更加有利于荔枝果園水資源的合理分配,從而提高荔枝的產(chǎn)量.
2) 3種優(yōu)化后的算法評價指標(XMAPE,XRMSE,XMAE)及相關(guān)性系數(shù)表明,基于GA-BP神經(jīng)的果園需水量模型預(yù)測性能優(yōu)于傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò),它可以更準確表達果園灌溉需水量與主要環(huán)境因子的非線性關(guān)系,具有一定的實用性.