王佳楠,王玉瑩,何淑林,時龍閩,張艷滴,孫海洋,劉 勇,2
1(黑龍江大學 電子工程學院,哈爾濱 150080)
2(黑龍江東部節(jié)水設備有限公司,綏化 152001)
隨著我國農(nóng)業(yè)與經(jīng)濟的發(fā)展,智慧農(nóng)業(yè)對農(nóng)田起到了至關(guān)重要的作用,精準灌溉已經(jīng)成為農(nóng)業(yè)生產(chǎn)和生活的重要因素,而實現(xiàn)對農(nóng)作物精準灌溉,對農(nóng)作物土壤濕度進行精準預測至關(guān)重要[1].土壤濕度是旱澇評價的重要參考,對地表能量、降雨再分配、水資源管理、農(nóng)業(yè)灌溉等方面都有重要影響[2].土壤濕度過低,會導致土壤干旱,對植物的光合作用產(chǎn)生嚴重影響,甚至導致植物干枯死亡;土壤濕度過高,會導致植物根部缺氧,嚴重時會導致植物根部腐爛[3,4].通過對農(nóng)作物土壤濕度的精準預測可以準確地反映農(nóng)作物土壤的水分含量狀況,從而為實現(xiàn)精準灌溉提供了科學決策的依據(jù)和方法.
BP (back propagation)神經(jīng)網(wǎng)絡算法是一種典型的多層前饋神經(jīng)網(wǎng)絡,它通過誤差逆向傳播算法來進行學習訓練[5–7].BP 神經(jīng)網(wǎng)絡是目前使用最為廣泛,結(jié)構(gòu)最為直觀并且工作原理最為容易理解的神經(jīng)網(wǎng)絡,它的結(jié)構(gòu)簡單,可塑性強,且擁有較強的數(shù)據(jù)擬合能力[8–10].BP 神經(jīng)網(wǎng)絡主要包含輸入層、隱含層和輸出層,在訓練過程中,神經(jīng)網(wǎng)絡不斷調(diào)整輸入層與隱含層以及隱含層和輸出層之間的權(quán)值和閾值[11,12],當神經(jīng)網(wǎng)絡輸出值與目標值一致或者達到迭代次數(shù)時訓練停止,這種神經(jīng)網(wǎng)絡擁有較強的泛化能力,神經(jīng)網(wǎng)絡的結(jié)構(gòu)原理如圖1所示.
圖1 BP 神經(jīng)網(wǎng)絡結(jié)構(gòu)原理
BP 神經(jīng)網(wǎng)絡的計算公式如式(1)–式(3)所示:
式(1)為神經(jīng)元的激勵函數(shù),采用的是Sigmoid 函數(shù),式(2)為神經(jīng)元的輸入數(shù)據(jù)經(jīng)過加權(quán)值求和之后與閾值相減,xi表示輸入數(shù)據(jù),wij表示權(quán)值,oj表示閾值,p表示局部輸出,式(3)為將式(1)與式(2)聯(lián)立所得的輸出值.
常規(guī)的BP 神經(jīng)網(wǎng)絡主要采用數(shù)據(jù)正向傳播,誤差反向傳播的方式,根據(jù)誤差值采用梯度下降的方法對網(wǎng)絡的權(quán)值和閾值進行修正,從而不斷使誤差下降到預期數(shù)值,權(quán)值和閾值的修正如式(4)和式(5)所示:
式(4)和式(5)為權(quán)值和閾值修正的公式,E表示神經(jīng)網(wǎng)絡的輸出值與目標值的誤差,β表示神經(jīng)網(wǎng)絡的學習率.
1.2.1 遺傳算法原理
遺傳算法(genetic algorithm,GA)最早是由美國的Holland 于20世紀70年代提出[13],該算法是根據(jù)大自然中生物體進化規(guī)律而設計提出的[14].它的工作原理是首先對輸入數(shù)據(jù)進行編碼,之后通過一定的概率進行選擇、交叉和變異運算直到選擇出適應度最大的個體作為目標值輸出,之后停止運算.
1.2.2 適應度函數(shù)的選擇
適應度函數(shù)是衡量種群中個體適應能力大小的標準,一般情況下,會將訓練目標函數(shù)選作遺傳算法的適應度函數(shù),本算法中采用誤差平方的倒數(shù)作為適應度函數(shù),如式(6)和式(7)所示:
式(6)中,E為誤差函數(shù),P為整體輸出,w為權(quán)矢量,x為輸入矢量;式(7)中,F為適應度,j為迭代次數(shù).
1.2.3 選擇算子的改進
傳統(tǒng)的遺傳算法在工作過程中經(jīng)常采用“輪盤賭”的方式,種群中個體被選中的概率是隨機的,這種選擇方式很有可能丟掉最優(yōu)個體,在實際的運算過程中會產(chǎn)生較大的誤差.因此,本文對選擇算子進行改進,首先將種群個體利用排序法進行重新排列,重新排序之后個體被選擇的概率如式(8)和式(9)所示:
式(8)和式(9)中,a為遺傳算法中種群的數(shù)量,p0為最優(yōu)個體可能被選擇的概率,s為將p0進行標準化后的值,b為在對種群重新排列后第n個個體所在的位置.
1.2.4 交叉算子的改進
傳統(tǒng)的遺傳算法在工作過程中一般會將交叉概率設為0.3–0.8 之間的一個常數(shù).在運算過程中,交叉概率設置過高會提高遺傳算法的全局搜索能力,但染色體的適應能力會有所下降,而交叉概率設置得過低會降低遺傳算法的全局搜索能力和收斂速度.本文對交叉算子進行改進,在算法迭代過程中會根據(jù)適應度的變化來調(diào)整交叉概率的變化,改進的交叉概率如式(10)所示:
其中,F為種群中兩個進行交叉的個體的最大適應度,Fmean為整個種群的平均適應度,n為遺傳算法在當前工作過程中的迭代次數(shù),nmax為遺傳算子在工作過程中的最大迭代次數(shù),在遺傳算法初始化時可以將最小交叉概率Pjmin設置為0.3,最大交叉概率Pjmax設置為0.8.
1.2.5 變異算子的改進
傳統(tǒng)的遺傳算法在工作過程中一般會將變異概率設為0.001–0.1 之間的一個常數(shù).在遺傳算法運算初期,種群個體的適應度相對平均適應度較低,所以需要將變異的概率設為較小的值,從而保留染色體中基因優(yōu)良的個體.在遺傳算法運算的后期,種群個體的適應度相對高于平均適應度,因此需要將變異的概率設為較大的值來提高遺傳算法的局部搜索能力.本文對變異算子進行改進,在遺傳算法運算過程中會根據(jù)適應度的變化來調(diào)整變異概率的值,改進的變異概率如式(11)所示:
其中,F為種群中兩個進行變異的個體的最大適應度,Fmean為整個種群的平均適應度,n為遺傳算法在當前工作過程中的迭代次數(shù),nmax為遺傳算子在工作過程中的最大迭代次數(shù),在遺傳算法初始化時可以將最小變異概率Pbmin設置為0.001,最大變異概率Pbmax設置為0.1.
BP 神經(jīng)網(wǎng)絡的初始權(quán)值和閾值對訓練的結(jié)果有著很大的影響,并且在訓練過程中容易陷入局部最優(yōu),因此為了提高BP 神經(jīng)網(wǎng)絡的預測精度以及避免BP神經(jīng)網(wǎng)絡陷入局部最優(yōu)的問題,引入了改進遺傳算法對BP 神經(jīng)網(wǎng)絡的權(quán)值和閾值進行優(yōu)化.傳統(tǒng)遺傳算法的選擇概率、交叉概率和變異概率使用的是固定的常數(shù),這樣在訓練的前期和后期容易產(chǎn)生局部最優(yōu)解,為了解決這個問題,對選擇算子、交叉算子和變異算子的概率進行了改進,通過判斷當前適應度值從而對選擇概率、交叉概率和變異概率進行調(diào)整.隨著適應度值的不斷變化,預測模型的選擇概率、交叉概率和變異概率會隨之產(chǎn)生變化,使預測模型能夠?qū)⒏鱾€參數(shù)調(diào)整為模型最佳的狀態(tài),形成了改進遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡預測模型.
在改進遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡預測模型中,具體操作流程包括以下幾個方面,首先通過傳感器對空氣溫度、空氣濕度和光照強度3 種氣象數(shù)據(jù)進行采集;其次,對采集數(shù)據(jù)進行預處理,由于采集后的數(shù)據(jù)可能存在錯誤數(shù)據(jù),將3 組數(shù)據(jù)中的最大值和最小值去除,并根據(jù)實際數(shù)據(jù)進行插值處理,得到正確的氣象數(shù)據(jù);再次,將預處理的數(shù)據(jù)分為兩組,一組作為訓練集,另一組作為測試集.最后將訓練集數(shù)據(jù)導入預測模型中對預測模型進行訓練,再將測試集導入訓練好的預測模型中進行預測評估.改進遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡預測模型的設計框架如圖2所示.
圖2 改進遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡框架圖
實驗所使用的軟件平臺為Matlab R2018a,計算機硬件為Windows 7 系統(tǒng),CPU 頻率為2.50 GHz,內(nèi)存為8 GB,硬盤為500 GB.將改進的遺傳算法與BP 神經(jīng)網(wǎng)絡結(jié)合,建立了基于改進遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡,提高了預測模型的預測精度.改進遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡流程圖如圖3所示.
圖3 改進遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡流程圖
進行預測模型的訓練之前,要對預測模型的參數(shù)進行設置,在Matlab R2018a 軟件平臺下構(gòu)建基于改進遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡模型,對改進遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡預測模型的相關(guān)參數(shù)進行設置,輸入層的節(jié)點數(shù)設置為3 個,隱含層的節(jié)點數(shù)設置為9 個,輸出層的節(jié)點數(shù)設置為1 個,激活函數(shù)采用的是Sigmoid函數(shù),神經(jīng)網(wǎng)絡的迭代次數(shù)為1 000.
為了測試預測模型的精確度,采用MAE(平均絕對誤差)、MAPE(平均絕對百分率誤差) 以及RMSE(均方根誤差)3 種誤差分析方法對預測模型的精確度進行評估,從而驗證預測模型的準確性.3 種誤差公式如式(12)、式(13)、式(14)所示.
實驗數(shù)據(jù)來自黑龍江省哈爾濱市呼蘭區(qū)玉米種植基地,基地采用農(nóng)業(yè)物聯(lián)網(wǎng)技術(shù),通過物聯(lián)網(wǎng)技術(shù)對種植基地的各種氣象數(shù)據(jù)進行采集,將采集的數(shù)據(jù)進行處理后,選取1 000 組環(huán)境氣象數(shù)據(jù)作為本文的試驗數(shù)據(jù),試驗數(shù)據(jù)包括空氣溫度、空氣濕度和光照強度.試驗將1 000 組數(shù)據(jù)分為兩部分,隨機選取980 組數(shù)據(jù)作為預測模型的訓練數(shù)據(jù),剩余20 組數(shù)據(jù)作為測試數(shù)據(jù),表1為部分試驗數(shù)據(jù).
表1 部分采集數(shù)據(jù)
使用處理后的訓練數(shù)據(jù)對模型進行訓練,將訓練后的預測模型通過測試集數(shù)據(jù)測試,并將BP 神經(jīng)網(wǎng)絡、遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡和改進遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡的測試結(jié)果進行對比,數(shù)據(jù)預測結(jié)果如圖4所示.
圖4(a)、圖4(b)和圖4(c)分別是BP 神經(jīng)網(wǎng)絡、遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡和改進遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡的預測結(jié)果對比圖,由圖可知改進遺傳算法優(yōu)化的BP 神經(jīng)網(wǎng)絡預測效果最好,BP 神經(jīng)網(wǎng)絡預測效果最差.
圖4 各個模型預測誤差
通過測試集數(shù)據(jù)對預測模型進行預測后,分別計算各個模型的相對誤差,誤差對比情況如表2所示.
表2 各個模型預測結(jié)果
表3為模型預測誤差,通過各個預測模型的結(jié)果計算它們的MAE、MAPE以及RMSE三種誤差,從表3能夠看出,IGA-BP 模型的預測精度最高,MAE、MAPE以及RMSE分別是0.014 2、0.000 4和0.063 4,與BP 預測模型相比分別提高了3.13%、0.11%和14.02%;與GA-BP 模型相比分別提高了2.55%、0.09%和11.4%,所以IGA-BP 預測模型的預測質(zhì)量更高.
表3 模型預測誤差比較
通過對訓練結(jié)果的分析,改進的遺傳算法優(yōu)化的BP 神經(jīng)網(wǎng)絡具有更好的穩(wěn)定性和精確性,對BP 模型、GA-BP 模型和IGA-BP 模型輸出的相對誤差可以得出,IGA-BP 模型的相對誤差普遍較小;對3 種預測模型的MAE、MAPE以及RMSE進行分析可以得出IGA-BP 模型的預測效果更精準.
本文提出了一種土壤濕度預測模型,該模型具有良好的預測性能,能夠提高土壤濕度的預測精度,為土壤濕度的預測提供了新的模型和方法.該模型的具體實施步驟是:(1)對數(shù)據(jù)進行預處理,初始化BP 神經(jīng)網(wǎng)絡,從而獲得初始權(quán)值和閾值;(2)對初始權(quán)值和閾值進行編碼,導入改進的遺傳算法模型中并且初始化遺傳算法;(3)通過改進的遺傳算法能夠得到最優(yōu)的權(quán)值和閾值,從而提高了預測模型的精確性.本文通過對黑龍江省哈爾濱市呼蘭區(qū)玉米種植基地采集的數(shù)據(jù)進行訓練,之后取20 組數(shù)據(jù)對模型進行測試,結(jié)果顯示本文提出的土壤預測模型具有更高了預測精度.該模型還有很多不足之處,比如該模型的適應性有待提升,對環(huán)境氣候不同地區(qū)的預測可能會產(chǎn)生誤差,因此未來的改進方向是如何更好地適應不同地區(qū)土壤環(huán)境預測,對干濕度不同地區(qū)的土壤濕度進行準確預測.