楊倩 嚴凱 姚凱學(xué) 何勇
摘 要:針對農(nóng)業(yè)墑情站在采集農(nóng)作物生長環(huán)境因子時表現(xiàn)不可靠的問題,文中使用BP神經(jīng)網(wǎng)絡(luò)來預(yù)測環(huán)境數(shù)據(jù),輔助墑情站,為農(nóng)戶提供有效數(shù)據(jù),從而對農(nóng)作物進行更精準地保護。由于BP存在網(wǎng)絡(luò)結(jié)構(gòu)難以確定等問題,故利用自適應(yīng)加速因子的粒子群算法、可改變搜索空間的蜂群算法和自適應(yīng)變異概率的遺傳算法三種方法來優(yōu)化BP的初始權(quán)閾值。經(jīng)仿真證明,三種改進方案不僅提高了BP預(yù)測的收斂速度,而且提高了預(yù)測精度。自適應(yīng)加速因子的粒子群BP模型預(yù)測效果最佳,故將其嵌入農(nóng)業(yè)墑情站,目前,墑情站已經(jīng)投入使用,可有效保護農(nóng)作物。
關(guān)鍵詞:農(nóng)業(yè)墑情站;神經(jīng)網(wǎng)絡(luò);遺傳算法;粒子群算法;蜂群算法;預(yù)測模型
中圖分類號:TP183;TP273文獻標識碼:A文章編號:2095-1302(2019)08-00-05
0 引 言
農(nóng)業(yè)數(shù)字化和精準化是現(xiàn)代農(nóng)業(yè)的核心技術(shù),農(nóng)業(yè)環(huán)境監(jiān)測顯得格外重要。農(nóng)業(yè)墑情站集成了諸多傳感器,主要檢測光照、大氣溫濕度、土壤溫濕度、雨量、雨速、風(fēng)速、海拔等環(huán)境因子。只有當各個環(huán)境因子均滿足農(nóng)作物生長的要求時,才能使農(nóng)作物更好地生長。環(huán)境因子數(shù)據(jù)是否可靠成為農(nóng)業(yè)墑情站是否有效的決定因素,為了提高傳感器數(shù)據(jù)的可靠性,引入BP預(yù)測模型。由于BP存在收斂速度慢、易陷入局部極小等問題[1],因此本文建立I3GA-BP預(yù)測模型、I2ABC-BP預(yù)測模型和I1PSO-BP預(yù)測模型,并且I1PSO-BP預(yù)測模型已經(jīng)成功嵌入到后臺,運行良好。
1 農(nóng)業(yè)墑情站
基于STM32F103ZET6的茶園墑情站總體框架如圖1所示。系統(tǒng)由數(shù)據(jù)處理模塊、太陽能供電模塊、傳感器(空氣溫濕度、土壤溫度、光照、雨量、雨速、土壤水分、土壤pH等)、遠程PC端(集成了優(yōu)化的BP模塊)、手機端等部分構(gòu)成。
2 PSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)
粒子群算法與模擬退火算法相似,其基本思想是從隨機解出發(fā),通過迭代尋找最優(yōu)解,粒子的品質(zhì)是通過適應(yīng)度來評價[2]。它比遺傳算法規(guī)則簡單,沒有遺傳算法的解碼、交叉和變異操作,具有收斂速度快、精度高、易實現(xiàn)等優(yōu)點[3]。
2.1 PSO算法
假設(shè)在一個D維搜索空間(D根據(jù)具體問題而定),一個群體由n個粒子組成,第i個粒子的位置向量為POPi=(POPi1,POPi2,…,POPiD),速度向量為Vi=(Vi1,Vi2,…,ViD),其中i=1,2,…,n。i粒子的歷史最優(yōu)位置為Pbesti=(Pbesti1,Pbesti2,…,PbestiD),整個群體最優(yōu)位置為Gbesti=(Gbesti1,Gbesti2,…,GbestiD)。粒子的位置和速度更新公式
如下:
式中:d=1,2,…,D;r1和r2為[0,1]上的隨機數(shù);c1為粒子自身學(xué)習(xí)的認識,稱為“認知”因子;c2為粒子對整個種群學(xué)習(xí)的認識,稱為“社會”因子;wmax為最大權(quán)重;wmin為最小權(quán)重;t為當前迭代次數(shù);tmax為最大迭代次數(shù)。
2.2 PSO算法的改進
通常將加速因子c1和c2設(shè)置為常數(shù)2,c1是個體自身學(xué)習(xí)的能力,c2是粒子間協(xié)作學(xué)習(xí)的能力。迭代尋優(yōu)是非線性變化過程,固定的加速因子無法體現(xiàn)此種變化。在迭代初期,粒子期望在較短時間內(nèi)能發(fā)揮自身的優(yōu)勢,快速搜索到最優(yōu)值;在迭代后期,粒子期望能抓緊粒子間協(xié)作,快速收斂到最優(yōu)解。本文將c2設(shè)成非線性遞增函數(shù),將c1設(shè)成非線性遞減函數(shù),公式如下:
2.3 改進的PSO優(yōu)化BP預(yù)測模型求解思路
PSO某代的某個粒子的位置向量的維數(shù)(D)為BP權(quán)值閾值的總數(shù),向量POP為BP權(quán)值W和閾值θ的集合。粒子i的適應(yīng)度fitnessi的表達式為
式中:N為樣本數(shù);M為輸出層節(jié)點數(shù);yji為實際輸出值;y'ji為期望輸出值。
本文給出的PSO優(yōu)化BP的步驟如下:
(1)構(gòu)建PSO-BP網(wǎng)絡(luò),初始化BP;
(2)初始化粒子群算法,有編碼長度、種群大小、速度范圍、位置范圍、迭代次數(shù)等;
(3)計算各個粒子的Pbest,選擇種群最優(yōu)粒子作為Gbest;
(4)計算本次迭代各個粒子的適應(yīng)度值,如果當前粒子的Pbest優(yōu)于當前粒子的歷史Pbest,則更新粒子的位置信息和Pbest。如果本次迭代所有個體的Pbest有優(yōu)于Gbest,則更新Gbest;
(5)更新加速因子c1,c2,粒子的位置和速度信息等;
(6)達到最大迭代次數(shù),將Gbest的D維信息依次賦值給BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,開始預(yù)測,否則轉(zhuǎn)步驟(3)。
2.4 改進的PSO優(yōu)化BP的預(yù)測模型在農(nóng)業(yè)墑情站中的應(yīng)用
根據(jù)試湊法將BP輸入層、隱藏層、輸出層節(jié)點數(shù)設(shè)置為7,12,1。最大訓(xùn)練次數(shù)為1 000,精度定為0.000 01,學(xué)習(xí)速率的初始值為0.1,隱藏層傳遞函數(shù)為tansig,輸出層傳遞函數(shù)為purelin,訓(xùn)練函數(shù)為trainlm,期望誤差為均方誤差函數(shù)MSE。粒子群算法種群大小為50,編碼長度為109,速度范圍[-1,1],種群個體范圍[-3,3],c1和c2初始值均為
1.494 45,最大進化代數(shù)為100。將光照強度、大氣溫度、大氣濕度、風(fēng)速、土壤濕度、雨量、前1 h的平均土壤溫度作為網(wǎng)絡(luò)的7個輸入,后1 h的土壤溫度作為輸出。訓(xùn)練數(shù)據(jù)為2016-07-22—2016-10-01的1 656組數(shù)據(jù),測試數(shù)據(jù)為2017-07-25—29的100組數(shù)據(jù)。
改進后的PSO優(yōu)化BP的迭代適應(yīng)度值如圖2所示,可看出迭代10代以內(nèi)就能獲得比較優(yōu)良的個體。改進后的PSO優(yōu)化BP的預(yù)測輸出和輸出相對誤差如圖3、圖4所示,可看出改進后的PSO優(yōu)化BP的預(yù)測相對誤差最大為3.9%,最小為0.2%,平均為3.06%,用時21.706 6 s;而BP的預(yù)測相對誤差最大為38%,最小為6%,平均為9.67%,用時8.321 9 s。
3 ABC優(yōu)化BP神經(jīng)網(wǎng)絡(luò)
人工蜂群算法通過特有角色分工機制提升人工蜂個體的局部尋優(yōu)能力,最終使得全局最優(yōu)值凸顯,有良好的收斂速度[4]。蜂群模型有三個要素,即蜜源(問題的可行解)、被雇傭的蜜蜂(采蜜蜂)和未被雇傭的蜜蜂(偵查蜂、跟隨蜂)。其中,采蜜蜂維持種群優(yōu)良解,跟隨蜂提高種群收斂速度,偵查蜂擺脫局部最優(yōu)[5-6]。
3.1 ABC算法
假設(shè)在一個D維搜索空間(D根據(jù)具體問題而定),蜜源i(i=1,2,…,NP)的質(zhì)量適應(yīng)度為fiti,第t次迭代過程中第i個粒子的蜜源位置為Xti=(Xti1,Xti2,…,XtiD)。其中,NP為蜜源的個數(shù);XtiD∈[Ub,Lb],Ub和Lb分別為解的上限和下限。采蜜蜂(即引領(lǐng)蜂)根據(jù)式(6)隨機產(chǎn)生初始群體。
搜索開始,根據(jù)式(7)在蜜源i周圍更新蜜源位置。
式中:D為隨機整數(shù);k為采蜜蜂在當代群體中選擇一個非i的蜜源號,k∈[1,NP]且k≠i;φ為[-1,1]的均勻隨機數(shù)。當新蜜源X'iD的適應(yīng)度優(yōu)于XiD時,采用貪婪選擇法以新蜜源代替舊蜜源;否則,保持XiD不變。待所有采蜜蜂完成任務(wù)后回到信息區(qū)與跟隨蜂分享蜜源,跟隨蜂根據(jù)概率Pi以及輪盤賭來跟隨采蜜蜂,當Pi大于均勻隨機分布數(shù)r時,以采蜜蜂相同的更新策略來進行選擇更新。Pi見式(8),fiti與fitnessi是一樣的。
當采蜜蜂和跟隨蜂完成迭代任務(wù)以后,如果蜜源Xi有trial次未更新且trial大于limit,則偵查蜂出現(xiàn)并根據(jù)式(6)隨機產(chǎn)生一個新的蜜源代替Xi。
3.2 ABC算法的改進
在函數(shù)中引入慣性權(quán)重,通過慣性權(quán)重W(i)來控制采蜜蜂和跟隨蜂的搜索空間,公式如下:
式中:w(t)=wmin+t(wmax-wmin)/tmax;t為當前迭代數(shù);tmax為最大迭代數(shù);wmax為最大權(quán)重;wmin為最小權(quán)重。隨著迭代次數(shù)的增加,w(t)可調(diào)控搜索范圍以提高算法的精度和收斂效率。在迭代初期,蜜源信息相對小,小的慣性可以抓住最優(yōu)解的可能域,隨著優(yōu)良解的陸續(xù)出現(xiàn),后期較大的慣性可以提高算法的全局搜索能力,發(fā)現(xiàn)更多優(yōu)良解。
3.3 改進的ABC優(yōu)化BP的預(yù)測模型求解思路
ABC某代的某個蜜源的位置向量的維數(shù)(D)為權(quán)值閾值的總數(shù),向量Xi為BP權(quán)值W和閾值θ的集合。
本文給出的ABC優(yōu)化BP的步驟如下:
(1)構(gòu)建ABC-BP網(wǎng)絡(luò),初始化BP;
(2)初始化蜂群算法,有蜜源個數(shù)及大小、更新失敗次數(shù)、位置范圍、迭代次數(shù)等;
(3)采蜜蜂搜索蜜源Xi,計算其適應(yīng)度并用貪婪算法更新原蜜源;
(4)計算概率,跟隨蜂依據(jù)概率和輪盤賭方法選擇采蜜蜂,根據(jù)采蜜蜂更新原則進行更新;
(5)根據(jù)采蜜蜂和跟隨蜂兩種蜜蜂的蜜源的未更新次數(shù)來判斷是否轉(zhuǎn)化成偵查蜂,如果蜜源為更新次數(shù)大于規(guī)定的次數(shù),則偵查蜂隨機搜索新蜜源;
(6)記錄最好蜜源;
(7)判斷是否達到終止條件,如果達到,將最好蜜源的D維信息依次賦值給BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,開始預(yù)測,否則轉(zhuǎn)步驟(3)。
3.4 改進的ABC優(yōu)化BP的預(yù)測模型在農(nóng)業(yè)墑情站中的應(yīng)用
根據(jù)實驗,發(fā)現(xiàn)四層的ABC-BP神經(jīng)網(wǎng)絡(luò)有較好的預(yù)測精度,三層的預(yù)測精度僅略高于單純的BP網(wǎng)絡(luò),故將BP輸入層、第一層隱藏層、第二層隱藏層、輸出層節(jié)點數(shù)設(shè)置為7,15,15,1,BP其他設(shè)置如PSO-BP模型的設(shè)置。蜂群算法的蜜源數(shù)為80,蜜源維數(shù)為376,最大失敗次數(shù)為30,最大進化代數(shù)(因ABC算法復(fù)雜,特將進化代數(shù)調(diào)?。?0,Ub=3,Lb=-3。
改進后的ABC優(yōu)化BP的迭代適應(yīng)度值如圖5所示,可看出30多代可獲得較優(yōu)良個體。改進后的ABC優(yōu)化BP的預(yù)測輸出和輸出相對誤差如圖6、圖7所示,可看出改進后的ABC優(yōu)化BP的預(yù)測相對誤差最大為4.2%,最小為0.5%,平均為3.27%,模型用時167.892 1 s。
圖5 改進后的ABC優(yōu)化BP的迭代適應(yīng)度值
圖6 改進后的ABC優(yōu)化BP的預(yù)測輸出
圖7 改進后的ABC優(yōu)化BP的相對誤差
4 GA優(yōu)化BP神經(jīng)網(wǎng)絡(luò)
遺傳算法(GA)是基于空間的搜索算法,直接對研究對象的編碼進行操作,通過問題域中的目標函數(shù)(適應(yīng)度)的大小對個體進行評價,對個體進行選擇、交叉和變異,生成新種群,具有較強的魯棒性和較高的并行性[7-8]。
4.1 GA算法的改進
遺傳算法經(jīng)常出現(xiàn)過早收斂的現(xiàn)象,變異操作雖然保證了進化的搜索功能,但其隨機性可能會破壞優(yōu)良個體,降低種群的平均適應(yīng)度值,故對變異算子進行改進,使其隨迭代自適應(yīng)變化[9-10],變異公式如下:
式中:Pm為本代變異概率;Pmax和Pmin分別為上一代最大、最小變異概率;Fa為當前個體的適應(yīng)度值;Fmax和Fmin分別為上一代最大最小適應(yīng)度值;Favg為上一代平均適應(yīng)度值。當種群的個體適應(yīng)度值普遍較好時,此時應(yīng)該降低變異概率,使得優(yōu)良的個體可以大部分被傳遞給下一代;當種群的個體適應(yīng)度值普遍較差時,此時應(yīng)該提高變異概率,使得劣質(zhì)的個體可以大幅度變異,產(chǎn)生新個體,尋找優(yōu)良個體,提高收斂速度。
4.2 改進的GA優(yōu)化BP的預(yù)測模型求解思路
GA某代的某個個體編碼長度為權(quán)值閾值的總數(shù),本文GA優(yōu)化BP的步驟如下:
(1)構(gòu)建GA-BP網(wǎng)絡(luò),初始化BP;
(2)初始化遺傳算法,有種群大小、編碼長度、交叉率、變異率、編碼方式、迭代次數(shù)等,其中編碼長度由輸入層與隱藏層權(quán)值、隱藏層與輸出層權(quán)值、隱藏層閾值、輸出層閾值四部分組成;
(3)對當代種群個體分別進行適應(yīng)度評價;
(4)選擇操作,可采用輪盤賭法、隨機遍歷抽樣法等,本文采用適應(yīng)度比例方法選擇個體;
(5)交叉操作,可采用實值重組、二進制交叉,本文采用實數(shù)編碼加實值重組;
(6)變異操作,可采用實值變異、二進制變異,本文采用實值變異;
(7)判斷是否達到終止條件,如果達到,將最好個體賦值給BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,開始預(yù)測,否則轉(zhuǎn)步驟(3)。
4.3 改進的GA優(yōu)化BP的預(yù)測模型在農(nóng)業(yè)墑情站中的應(yīng)用
BP設(shè)置如PSO-BP模型的設(shè)置,遺傳算法種群大小為50,編碼長度為109,編碼范圍為[-3,3],種群數(shù)為50,最大進化代數(shù)為100,交叉概率為0.9,初始變異率為0.3,最大為0.4,最小為0.1。
其中,實值交叉操作是選擇幾對(兩兩一對)染色體,選擇它們的串的局部進行交叉;實值變異操作是選擇幾個染色體,對他們的局部進行隨機數(shù)賦值。選擇操作中的適應(yīng)度比例選擇法的個體選擇概率為:
式中:Fi為第i個個體的適應(yīng)度值;k為系數(shù);N為種群個數(shù)。
改進后的GA優(yōu)化BP的迭代適應(yīng)度值如圖8所示,可看出迭代50多代就能獲得比較優(yōu)良的個體。改進后的GA優(yōu)化BP的預(yù)測輸出和輸出相對誤差如圖9、圖10所示,可看出改進后的GA優(yōu)化BP的預(yù)測相對誤差最大為17.3%,最小為0.8%,平均為5.39%,用時46.529 1 s。
5 多種優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)預(yù)測模型實驗結(jié)果
為了驗證多種墑情站數(shù)據(jù)預(yù)測模型的優(yōu)良性能,本文分別對BP算法、PSO-BP算法、改進后的PSO優(yōu)化BP算法(I1PSO-BP)、ABC-BP算法、改進后的ABC優(yōu)化BP算法(I2ABC-BP)、GA-BP算法、改進后的GA優(yōu)化BP算
法(I3GA-BP)這7個模型進行相同條件下的實驗,記錄數(shù)據(jù)并進行比較。
表1列出了7種模型誤差和耗時的比較,發(fā)現(xiàn)PSO算法相對于ABC算法和GA算法收斂速度明顯加快;PSO算法的兩種模型和ABC算法的兩種模型預(yù)測準確率相近且較高;BP模型和GA算法的兩種模型預(yù)測準確率較低??紤]到農(nóng)業(yè)墑情站數(shù)據(jù)的準確性和時效性,最終決定將改進的PSO優(yōu)化BP算法作為農(nóng)業(yè)墑情站數(shù)據(jù)預(yù)測模型。
6 結(jié) 語
本文提出多種預(yù)測模型,經(jīng)過實驗,結(jié)果表明,在一定條件下,改進后的粒子群算法優(yōu)化BP模型具有較高的預(yù)測準確率和較低的時間消耗。預(yù)測模型已經(jīng)嵌入墑情站系統(tǒng),在貴州大學(xué)農(nóng)學(xué)院植物研究實驗基地、甕安茶園和貴州師范學(xué)院等地已經(jīng)投入使用,可以有效指導(dǎo)農(nóng)業(yè)研究和生產(chǎn)。
參 考 文 獻
[1]孔紅山,郁濱.一種基于 BP 神經(jīng)網(wǎng)絡(luò)的 VIRE 改進算法研究[J].系統(tǒng)仿真學(xué)報,2018,30(9):3586-3595.
[2]李婕,白志宏,于瑞云,等.基于PSO優(yōu)化的移動位置隱私保護算法[J].計算機學(xué)報,2018,41(5):1037-1051.
[3]陳建明.基于遺傳算法的粒子群算法的參數(shù)分析[D].北京:中國地質(zhì)大學(xué),2012.
[4]李楠,朱秀芳,潘耀忠,等.人工蜂群算法優(yōu)化的SVM遙感影像分類[J].遙感學(xué)報,2018,22(4):559-569.
[5]于佐軍,秦歡.基于改進蜂群算法的K-means算法[J].控制與決策,2018,33(1):181-185.
[6]王志剛,尚旭東,夏慧明,等.多搜索策略協(xié)同進化的人工蜂群算法[J].控制與決策,2018,33(2):235-241.
[7]徐小鈞,馬利華,艾國祥.基于多目標遺傳算法的多星座選星方法[J].上海交通大學(xué)學(xué)報,2017,51(12):1520-1528.
[8]吐松江·卡日,高文勝,張紫薇,等.基于支持向量機和遺傳算法的變壓器故障診斷[J]. 清華大學(xué)學(xué)報(自然科學(xué)版),2018, 58(7):623-629.
[9]季慧,金銀富,尹振宇,等.遺傳算法改進及其在巖土參數(shù)反分析中的應(yīng)用[J].計算力學(xué)學(xué)報,2018,35(2):224-229.
[10]肖海蓉,李惠先.基于自適應(yīng)遺傳算法的網(wǎng)格任務(wù)調(diào)度優(yōu)化[J].吉林大學(xué)學(xué)報(理學(xué)版),2015,53(2):297-301.