匡奕敩
(1.太行山獼猴國家級自然保護區焦作保護中心,河南 焦作 454002;2.中央民族大學生命與環境科學學院,北京 100081)
農業是國民經濟的基礎,農作物預測對國民經濟發展具有決定性作用。精確、可靠、及時的農作物預測對于了解農作物的生產情況,保證市場供應,制定價格具有至關重要的作用[1]。以現代信息技術與農業生產相結合的智慧農業能更好輔助診斷農業生產和精準化管理,提高農作物預測水平[2]。
在農業產量產值精準預測方面,伍長榮等[3]以有效灌溉面積、化肥施用量、農村用電量、農業機械總動力、農業勞動力、糧食作物播種面積、受災面積7 個影響因子為輸入,糧食生產量為輸出建立RBF神經網絡模型,預測誤差小于2%。吳玉鳴等[4]以同樣的7 個影響因子作為輸入,糧食生產量為輸出建立BP 神經網絡模型,發現預測精度大大提高,說明神經網絡模型比傳統回歸方法的精度高。褚慶全等[5]利用BP 人工神經網絡對宏觀農業生產系統糧食總產進行了預測,具有90%以上的擬合精度,但未指明神經網絡的具體實現方法。Stastny 等[6]利用多層神經網絡模型預測作物產量,結果比回歸模型準確,但沒有指明具體的影響因素。預測模型有很多種,找到關鍵影響因素是選擇預測模型的前提[7]。Dahikar 等[8]通過土壤氮、磷、鉀等類型以及大氣溫度、降雨量、濕度等作為人工神經網絡參數來預測作物產量之間的關系。劉鵬等[9]以氣候因素為依據,提出了一種基于改進長短期記憶神經網絡的農作物產量時間序列預測的方法,發現基于LSTM 的改進模型具有較高的準確性,氣候因素對作物有一定的影響,但作物產量逐年遞增與氣候因素的反復變化很難有較大的相關性,從而影響網絡預測的精度。魏云云[10]以農業、林業、漁業、畜牧業的產值作為輸入量,用遺傳算法優化的BP 神經網絡建立農業產業總值的預測模型,平均相對誤差為2.036%,遺傳算法可以提高算法全局搜索特性和網絡的泛化性能[11],但預測精度有所降低。郭亞菲等[12]引入主成分分析(PCA)和粒子群(PSO)優化BP 神經網絡的權值和閾值,這種PCA-PSO-BP 網絡模型的預測平均相對誤差為1.1%,有效提高了預測糧食產量值的精度。但這些神經網絡的實現過程復雜抽象,預測精度也不是最佳,可視化程度不高。
糧食產量一方面隨著時空的發展變化呈現很強的規律性,另一方面在農業技術及經濟發展的可預測上仍沒有很大進展。本研究結合R 語言,選用糧食播種面積、有效灌溉面積、機耕面積、農業機械總動力、農村勞動力、農業產值等作為輸入指標因素,利用改進的neuralnet 包BP 人工神經網絡模型對農業糧食產量進行預測研究,該網絡要比nnet 等方法建立的神經網絡的分類效果更好、精度更穩定,可以直接輸出可視化的神經網絡拓撲結構圖。
人工神經網絡是人工智能新興產業中非常重要的部分,它從信息處理角度對人腦神經元網絡進行抽象,建立某種簡單模型,由大量的神經元(或稱節點)之間相互連接而成。人工神經網絡具有很強的機器學習和容錯能力,具有非線性、非限制性、非定性和非凸性等主要特征[13],具有很好的預測能力和決策效果[14]。反向傳播模型(BP 網絡)下的神經網絡專家系統(M-P)模型對非線性數據十分有效,其拓撲結構一般采用一個隱含層的3 層神經網絡,包括輸入層、隱含層和輸出層[15](圖1)。

圖1 3 層BP 人工神經網絡模型結構
輸出函數如下:

式中,Xj為輸入結點,yi為隱結點,Ol為輸出結點,Wij、Tij為連接權值,θ為結點閾值。
隱含層層數或神經元數目的增加可以提升神經網絡的精度,但隱含層層數的增加會消耗大量的時間,同時出現局部最小值,而隱含層神經元數目過多也會弱化BP 神經網絡的泛化能力,降低預測效果[16]。按照式(3)設置初始神經元個數范圍[17]。

式中,m為隱藏層神經元個數,l為輸入層結點個數,n為輸出層結點個數,a為 1~10 的常數。表 1為隱含層不同的神經元數目的運行結果。
由表1 可知,當隱含層神經元為1 個時,經過5 088 步收斂達到訓練目標,模型整體誤差為1.395 348;當隱含層神經元為9 個時,經過9 039 步訓練達到訓練目標,誤差為0.504 029;當隱含層為5個神經元的3 層神經網絡在14 768 步訓練時達到訓練目標,誤差為0.433 194,模型效果最佳。

表1 BP 人工神經網絡不同隱含層節點數下模型訓練情況
BP 人工神經網絡的機器學習是通過計算預測值與實測值之間的誤差,逐層修改權值,多次重復訓練,使誤差達到最小。由于樣本量大,標準化過的樣本極值為0 和1,相對誤差有無窮值,難以反映機器學習的精確度;最終的學習效果可由預測值與實測值的相關系數與均值誤差(MSE)來進行評價。均值誤差如式(3)所示。

式中,MSE為均值誤差,N為樣本組個數,observedi為第i個樣本組的實測值,predictedi為第i個樣本組的預測值。
數據主要來源于《湖南統計年鑒》《湖南農村統計年鑒》《中國縣域統計年鑒(縣市卷)》,通過收集2008—2017 年湖南省123 個縣區的糧食產量以及影響農作物產量的因素如糧食播種面積、有效灌溉面積、機耕面積、農業機械總動力、農村勞動力、農業產值等,共整理出糧食產量及其影響因素1 230 組樣本數據。為消除不同年份市場價格帶來的影響,以湖南省1952 年發展速度100 為基準,對各年份農業產值等社會經濟價值數據進行可比價轉換。并結合實地考察調研經歷,獲得相關部門數據作為補充。
本研究結合R 語言對BP 人工神經網絡進行分析,調用neuralnet 函數創建一個包含隱藏層的3 層神經網絡模型。首先對數據樣本標準化或歸一化至(0,1),再以 2015 年為分界點,將2008—2017 年123個縣區組成的1 230 組數據按照4∶1 比例劃分為984組訓練樣本和246 組檢驗樣本。由于初始權值不同,在訓練模型時,可以固定隨機種子數使每次訓練返回相同的值。經過訓練和檢驗后,可以比較預測值和實測值的相關系數和相對誤差,并進行預測值-實測值的效果擬合,以反映預測模型的可靠性。
使用R 語言neuralnet 進行人工神經網絡建模,結束條件為誤差函數的絕對偏導數小于0.01。運行BP 人工神經網絡,經過14 768 步訓練到函數整體誤差為0.433 194 時,達到閾值條件時的精度為0.009 606 23,得到的人工神經網絡效果如圖2 所示。

圖2 農作物預測人工神經網絡效果
使用neuralnet 包建立的BP 人工神經網絡預測模型對訓練樣本進行迭代訓練,得到糧食產量的預測值與實測值間的相關系數為0.991 443 9,訓練樣本均值誤差為0.000 880 475 179 006 291,預測值-實測值擬合效果如圖3a所示。
將預留的驗證樣本246 組數據代入到訓練好的neuralnet 包神經網絡模型中,進行相應的驗證。驗證樣本中糧食產量預測值與實測值的相關系數為0.991 039 8,平均相對誤差為0.006 339 629,均值誤差為0.000 995 330 667 956 884,表明糧食產量預測值與實測值的相對誤差較小;神經網絡預測值-實測值擬合效果如圖3b 所示,結果驗證樣本都位于直線附近,效果近乎直線,吻合程度較好。

圖3 農作物糧食產量預測人工神經網絡預測值-實測值擬合效果
利用10 次交叉檢驗的方法對MSE進行驗證,即重復10 次隨機的90%的訓練數據集和10%的測試數據集,求出10 次MSE的誤差。結果分別為0.000 939 453 7、0.001 287 279 7、0.001 663 963 4、0.000 966 527 6、0.001 125 848 7、0.001 217 223 4、0.001 559 574 6、0.000 892 886 5、0.001 921 332 8、0.000 721 952 8,平均值為 0.001 229 604,把MSE均值結果進行可視化,結果見圖4。說明本研究所建neuralnet 人工神經網絡農作物預測模型具有可行性。

圖4 農作物預測人工神經網絡k 次檢驗均值誤差
農作物人工神經網絡預測模型可以用spss 多層感知器來分析,網絡模型如圖5a 所示。以上述糧食產量預測為例,設置好隨機種子數,使用菜單式勾選設置隱藏層1 層及神經元個數5 個,導出擬合效果及自變量重要性圖。經過重復多次的訓練和驗證,得到較為精確的預測值-實測值擬合效果圖。
spss 多層感知器BP 神經網絡在訓練樣本中所得的平方和誤差為11.721,相對誤差為0.027 8;在檢驗樣本中所得的平方和誤差為8.235,相對誤差為0.045,結果見圖5b。檢驗效果也能說明網絡的可行性,但預測值-實測值擬合效果的聚集程度要比圖3松散,且相對誤差不如neuralnet包神經網絡精確。

圖5 對比spss多層感知器分析結果
農作物人工神經網絡預測模型也可以選擇R 語言 nnet、AMORE 或 RSNNS 包來實現。nnet是最常見的前饋反向傳播神經網絡算法,對上述糧食產量所得預測值與實測值的相對誤差為0.017 208 13,擬合效果如圖6 所示,結果也不如neuralnet 包神經網絡驗證擬合效果的聚集度高。neuralnet 包神經網絡相對誤差比spss 多層感知器、nnet包分別提高了3.9%、1.1%。

圖6 nnet網絡預測值-實測值擬合效果
使用不同的方法得到的效果不一定相同,這與不同的激勵函數、初始權值的隨機變化和樣本的劃分有關,結果會有一定的差異,但大致效果是一致的[18]。neuralnet 是一種改進的算法,具有彈性反向傳播算法和更多的激活函數形式。人工神經網絡準確度要比市場估價法高[19],高寒[20]在葡萄酒分類的應用中指出,neuralnet 建立的神經網絡要比nnet 的分類效果更好、分類精度更穩定,可以直接輸出神經網絡拓撲結構圖。
人工神經網絡在農、林資源管理、分類、碳儲量估算、森林災害防治等方面得到了廣泛的應用[21]。近年來,中國農業科技發展迅速,科研成果豐富,但中國目前科研發展整體滯后,科研體系不健全、貢獻率偏低,農業科技推廣不力以及基礎設施落后、農機設備現代化程度較低,中國智慧農業建設發展中仍存在一系列問題,需要及時轉變發展理念,改革和創新發展模式,用新的技術權衡農作物的利用分配,切實保證農產品經濟的不斷增長和農業產業的可持續發展。
本研究通過R 語言的neuralnet 包構建一個包含隱含層為1 及神經元個數為5 的3 層BP 人工神經網絡模型,對2008—2017 年湖南省123 個縣區的糧食產量進行預測,得到以下結論。
1)選用neuralnet 人工神經網絡預測糧食產量,得到的預測值與實測值間的相關性高、相對誤差低,預測值-實測值擬合效果較好,說明所建立的人工神經網絡預測模型具有可行性,結果可作為政府部門進行農業決策和宏觀調控的重要依據。
2)通過neuralnet包建立的人工神經網絡預測模型要比spss 多層感知器及nnet包的神經網絡預測精度高,可視化拓撲圖較豐富,可為農作物在預測決策支持研究工作方面提供新方法,以適應新形勢下農業工程技術的發展,促使農產品經濟的增長和推進農業產業的可持續發展。