本發明涉及一種產量預測領域,尤其涉及一種改進神經網絡的金針菇產量預測方法及實施系統。
背景技術:
農業領域中運用的預測模型大致可以分為兩類:一是基于統計計量技術的傳統預測模型,二是以神經網絡為代表的智能計算技術模型。
1、統計計量預測模型
在農業領域中基于統計計量技術的預測模型主要有多元線性回歸模型、Logistic回歸模型以及自回歸移動平均模型。
(1)多元線性回歸模型
多元線性回歸模型本質上是一種因果關系模型,用以描述多個自變量和一個因變量之間的線性相關關系。其數學表示形式為:
式中Y為因變量,即所要預測的農業指標;Xj是自變量,即影響該農業指標的各種因素;α和βj為未知常數,分別代表預測對象的初始狀態和各變量的回歸系數,其數值可采用最小二乘法進行估計;ε為相互獨立且服從正態分布的隨機誤差。
多元線性回歸模型的最大優點是形式上比較直觀,結果易于解釋,且操作十分簡便。但從理論上來說,該模型存在兩方面的問題:一是要求樣本數據的方差相等且獨立,這一條件在農業領域的預測環境中很難得到滿足;二是多元線性回歸模型存在固定影響假設和完全線性補償假設等邏輯問題。正是由于上述原因,雖然多元線性回歸模型簡便直觀,但該模型的使用效果往往達不到預期。
(2)Logistic回歸模型
Logistic回歸模型是所謂的第二代統計預測模型。該模型假設事件的發生概率服從Logistic的累積概率分布,不要求變量服從正態分布且具有等協方差的條件,因而頗受農業領域預測工作者的青睞。其概率密度函數的數學表示形式為:
式中Xi表示第i個指標,1≤i≤n,α和βj為常數。由于Logistic回歸模型是一種離散選擇模型,其誤差分布不再是正態分布而是二項分布,所以模型中的系數采用極大似然法進行估計。
Logistic回歸模型的缺陷在于,當數據存在高維性和高相關性時,會嚴重影響Logistic分析的過程和結果,可能導致原始數據信息的丟失,且估計方程中存在一定的共線性問題。
(3)自回歸移動平均模型
自回歸移動平均模型是一種隨機性時間序列預測模型。設{Yt}為隨機時間序列,且滿足條件:
Yt-φ1Yt-1-φ2Yt-2-…-φnYt-n=εt-θ1εt-1-θ2εt-2-…-θmεt-m
或寫成后移算子形式:
φ(B)Yt=θ(B)εt
式中{εt}為白噪聲序列,φ1,φ2,…φn為自回歸系數,θ1,θ2,…θn為移動平均系數,且φ(B)與θ(B)為無公因子。
自回歸移動平均模型的缺陷在于:
a、自回歸移動平均模型僅限于描述平穩隨機時間序列,而在農業領域中很多的預測問題涉及到的時間序列都是非平穩的,且很難通過簡單的差分方法將它轉化為平穩序列;
b、時間序列預測的關鍵是要找出相關函數f,如果能夠事先知道f的形式,則可以根據時間序列的前m個輸出值得到所有后續時刻的輸出值。由于f的具體形式通常都很復雜,事先并不知道,再加上農業領域中預測涉及的指標和因素很多,導致自回歸移動平均模型的預測精度受到較大影響。
2、神經網絡預測模型
人工神經網絡(Artificial Neural Network)又稱連接機模型,是在現代神經學、生物學、心理學等學科研究的基礎上產生的,它反映了生物神經系統處理外界事物的基本過程,是在模擬人腦神經組織的基礎上發展起來的計算系統,在一定程度上反映了人腦功能的若干反映,是對生物系統的某種模擬,具有大規模并行、分布式處理、自組織、自學習等優點,近年來,以神經網絡為代表的智能預測系統開始在農業領域的預測中得到應用,且很快在這一領域占據了主導地位。
神經網絡根據網絡的特性可以劃分為前饋網絡、后饋網絡、自組織網絡和隨機網絡等不同類型。其中,多層前饋神經網絡是農業預測領域應用最廣泛的一種,而誤差反向傳播(back propagation,BP)算法是神經網絡最常見的學習算法。
技術實現要素:
本發明提供了一種改進神經網絡的金針菇產量預測方法及實施系統,可以對冷庫中栽培、且生長過程尚未完成的金針菇進行產量預測。本發明采用軟硬件結合的方式,底層由各類無線傳感器組成,中間層為嵌入式網關,頂層基于B/S結構進行開發,并植入改進的神經網絡算法,以求能更加穩定的輸出金針菇的產量預測模型,且該模型能達到較高的預測精度。
一種改進神經網絡的金針菇產量預測方法,包括以下步驟:
(1)選擇BP神經網絡模型作為金針菇產量預測系統的基本模型;
(2)設置BP神經網絡模型的輸入層的節點數、輸出層的節點數以及隱含層的節點數;
(3)利用遺傳算法改進訓練BP神經網絡模型,得到金針菇產量預測系統的預測模型;
(4)輸入預測樣本,得到金針菇產量預測結果。
在步驟(1)中,BP神經網絡由一個輸入層、一個輸出層以及一個或多個隱含層構成,其中隱含層神經元和輸出層神經元為計算節點,輸入層由多個輸入量組成,輸出層由多個輸出量組成,輸出量在預測問題中即為要預測的各項指標。神經網絡每層所含的神經元個數可以一樣,也可以不一樣。不同層次的神經元之間按權值進行連接,神經元的傳遞函數一般為Sigmoid函數。
在步驟(1)中,BP算法的學習訓練過程是由信號的正向傳播與誤差的反向傳播兩個過程組成;當學習樣本的信息進入神經網絡后,神經元的激活值從輸入層經隱含層向輸出層傳遞,而輸出層的神經元獲得網絡輸入響應,再按照減少實際輸出與期望輸出之間誤差的原則,從輸出層經隱含層向輸入層逐層反饋誤差信息,并依據誤差修正相應的連接權值。隨著誤差修正過程的反復進行,網絡對輸入模式響應的正確率也將不斷上升,最終形成由輸出信號承載的預測結果。
在步驟(2)中,BP神經網絡的輸入層、輸出層維數根據使用者的要求來設計。根據實際對象的輸入輸出量來考慮輸入層的節點數和輸出層的節點數,在設計中應盡可能地減小系統規模,使學習的時間和系統的復雜性減小。本發明中輸入層的節點數為24,分別對應金針菇六個生長階段的平均空氣溫度、平均空氣濕度、平均土壤溫度、平均土壤濕度這四個指標,輸出節點為1個,對應該區域的金針菇產量。
在步驟(2)中,BP神經網絡的隱含層節點數的選擇問題是個很復雜的問題,因為沒有很好的解析式表示,只能結合經驗公式和嘗試法來確定隱含層的節點數;經驗公式為:
其中,n為輸入層節點數,l為輸出層節點數,α為1~10之間的隨機數,m為第一層隱含層節點數,第二層節點數通常為第一層的75%,比較不同節點設置下的訓練精度、迭代次數、測試精度這三個指標來確定隱含層節點的個數,本發明中隱含層的節點數為14。
神經網絡的權值訓練過程實際是一種復雜函數優化問題,即通過反復調整來尋找最優的連接權值。但目前廣泛使用的BP神經網絡,是基于梯度下降方法,因而對神經網絡的初始權值異常敏感,不同的初始權值會導致完全不同的結果,而遺傳算法遵循物競天擇的原則,在尋優問題上有很好的表現,故采用遺傳算法確定初始權值來替代原本的隨機產生一組初始權值的方式,可以有效克服BP神經網絡訓練時間長同時容易陷入局部極值的問題。
利用遺傳算法改進訓練BP神經網絡模型的具體步驟為:
(3-1)對權值進行編碼,并在指定的范圍內隨機產生多組編碼,將其作為神經網絡的多組連接權值;
(3-2)輸入訓練樣本,計算每組連接權值下神經網絡的預測值與實際值之間的誤差平方和,并以該誤差平方和的倒數作為每組連接權值的適應度;
(3-3)選擇所有組適應度中較大的1/3~1/2的連接權值對應的個體作為進化群體;
(3-4)利用交叉、變異操作對進化群體進行進化,產生新一代群體;
(3-5)判斷新一代群體是否滿足訓練目標,如是,執行步驟(3-6),若否,用上一代中的進化群體中個體對應的連接權值代替步驟(3-2)中的連接權值,重復步驟(3-2)~步驟(3-5);
(3-6)將適應度最大的一組連接權值作為BP神經網絡的初始權值;
(3-7)訓練BP神經網絡,直到網絡的均方誤差小于初始權值的倒數為止,得到金針菇產量預測系統的預測模型。
在步驟(3-1)中,一個染色體個體對應神經網絡的一組權值閾值,染色體的每一個基因即為一個尋優參數,對應于神經網絡的一個連接權值。
在步驟(3-1)中,編碼的方式可以為二進制編碼法或浮點數編碼法,浮點數編碼法可以減小二進制數到實數之間的轉換誤差,同時不易陷入局部極值,收斂速度快,因此,本發明優選選擇浮點數編碼方式。
在步驟(3-2)中,誤差越小,適應度越大,表示個體的素質越優,誤差越大,適應度越小,表示該個體的素質越差,因此,以適應度的大小來評價連接權值的優劣,即評價個體素質的優劣。
在步驟(3-5)中,訓練目標為得到優良種群樣本。
在步驟(3-6)中,初始權值對應訓練樣本經遺傳算法訓練后得到的最優個體。
在步驟(3-7)中,金針菇產量預測系統的預測模型為金針菇栽培過程中環境參數與最終產量之間的關系模型。
遺傳算法的控制參數主要包括:初始種群數目、交叉概率和變異概率以及適應度函數,而這些參數的確定沒有實際可行的理論依據,只能結合數據的特點并不斷加以嘗試來確定,由于本發明中運用遺傳算法來尋找一個較優的初始權值,希望能在較短的時間內盡快找到一個較優的初始權值,因此,可選擇設定的遺傳代數結束進化過程,認為進化固定的遺傳代數得到的新一代群體滿足訓練目標,該方法為:
(3-1’)對權值進行編碼,并在指定的范圍內隨機產生多組編碼,將其作為神經網絡的多組連接權值;
(3-2’)輸入訓練樣本,計算每組連接權值下神經網絡的預測值與實際值之間的誤差平方和,并以該誤差平方和的倒數作為每組連接權值的適應度;
(3-3’)選擇所有組適應度中較大的1/3~1/2的連接權值對應的個體作為進化群體;
(3-4’)利用交叉、變異操作對進化群體進行進化,產生新一代群體;
(3-5’)判斷當前遺傳代數是否大于設定的遺傳代數,如是,執行步驟(3-6’),若否,用上一代中的進化群體中個體對應的連接權值代替步驟(3-2’)中的連接權值,重復步驟(3-2’)~步驟(3-5’);
(3-6’)將適應度最大的一組連接權值作為BP神經網絡的初始權值;
(3-7’)訓練BP神經網絡,直到網絡的均方誤差小于初始權值的倒數為止,得到金針菇產量預測系統的預測模型。
交叉概率和變異概率根據實際需要自行設置,適應度函數設置為誤差均方根函數(MSE)的倒數。
在步驟(4)中,將環境參數作為預測樣本輸入到金針菇產量預測系統的預測模型中,便可以得到相應的產量預測結果。
一種改進神經網絡的金針菇產量預測方法的實施系統,包括置于底層的多組無線傳感器、置于中間層的嵌入式網關以及置于頂層的B/S結構;無線傳感器將采集的信號發送到嵌入式網關,嵌入式網關響應服務器的請求并將接收到的信號發送給B/S結構,B/S結構對接受的信號進行處理,完成金針菇產量的預測。
所述的無線傳感器內設有ZigBee無線發射模塊,將采集到的信號通過IEEE802.15.4標準發送到中間層的嵌入式網關。
所述的嵌入式網關負責接收ZigBee無線發射模塊發射的數據,同時響應服務器的請求將數據發送給服務器。
所述B/S結構包括Web服務器與客戶端,Web服務器接收嵌入式網關上傳的數據,并對數據解析和存儲,同時響應客戶端的請求,對用戶的請求做出反饋,屬于一個智慧農業生產平臺。
所述的Web服務器采用Nginx+uWSGI組合服務器,部署在服務器上的Web應用采用Django框架,該框架是python語言編寫的一個Web應用框架,采用了MVC的設計模式,非常適合快速開發。
B/S結構的金針菇產量預測系統的設計:對每天的環境數據進行預處理,得到各個階段每一天的環境均值數據,然后對每天的環境均值數據及最終產量數據進行訓練,得到各個階段的環境均值數據和最終產量數據之間的關系模型,并將該模型保存作為系統的預測模型,最后輸入階段環境均值數據,利用該預測模型輸出該種環境配置下的最終產量的效果。
對經預處理后的階段環境均值數據及最終產量數據進行建模,使用普通的BP神經網絡進行模型建立時,在模型訓練的過程中經常出現提前終止訓練的情況,且輸出的預測模型其預測精度也較低,分析其原因在于模型的初始權值及閾值選取不當,因此網絡的性能較差,而本發明提出的用遺傳算法去優化BP神經網絡初始權值的方法有效地解決該問題,經權值優化過的神經網絡,其在訓練過程中表現穩定,且輸出的預測模型預測精度較高。
本發明提供了一種精確度高、穩定性好的金針菇產量預測系統,實現在工廠化生產大環境下,對生長周期未完成的金針菇進行產量預測,本發明提出的用遺傳算法優化BP神經網絡初始權值的放法解決了在使用BP神經網絡訓練預測模型時所需的迭代次數多且容易在未達到訓練目標時就提前終止訓練的問題,且在訓練過程中收斂速度快,很大程度上提高了訓練出的預測模型的精度。
附圖說明
圖1為BP神經網絡模型圖;
圖2為平臺的整體結構圖;
圖3為本發明改進神經網略的金針菇產量預測方法的流程圖;
圖4為利用遺傳算法改進訓練BP神經網絡模型的步驟流程圖。
具體實施方式
為了更為具體地描述本發明,下面結合附圖及具體實施方式對本發明的技術方案進行詳細說明。
如圖1所示,BP神經網絡由一個輸入層、一個輸出層和一個或多個隱含層構成,其中隱含層和輸出層神經元為計算節點。x1,x2…,xm為輸入量,y1,y2…,yn為輸出量,在預測問題中即為要預測的各項指標。神經網絡每層所含的神經元個數可以一樣,也可以不一樣。不同層次的神經元之間按權值進行連接,神經元的傳遞函數一般為Sigmoid函數。
BP算法的學習訓練過程是由信號的正向傳播與誤差的反向傳播兩個過程組成。當學習樣本的信息進入神經網絡后,神經元的激活值從輸入層經隱含層向輸出層傳遞,而輸出層的神經元獲得網絡輸入響應,再按照減少實際輸出與期望輸出之間誤差的原則,從輸出層經隱含層向輸入層逐層反饋誤差信息,并依據誤差修正相應的連接權值,普通的BP神經網絡的初始權值是隨機確定的,而本發明使用遺傳算法首先確定出一組較好的權值來,將該權值作為神經網絡的初始權值。隨著誤差修正過程的反復進行,網絡對輸入模式響應的正確率也將不斷上升,最終形成由輸出信號承載的預測結果。
如圖2所示,一種基于改進神經網絡的金針菇產量預測系統,包括置于底層的30組無線傳感器、置于中間層的嵌入式網關以及置于頂層的Web服務器與客戶端;無線傳感器定時采集數據并將數據按相應的協議打包好,通過內置的zigbee無線發射模塊將數據發送到中間層的嵌入式網關,該網關中同樣集成了zigbee無線模塊,主要用來接收傳感器上傳的數據,同時響應服務器的請求將數據發送給頂層的Web服務器,Web服務器定時向嵌入式網關請求數據,并將數據存儲在數據庫中,客戶端通過可視化的界面,對服務器中的數據進行查看、編輯等各項操作。
Web服務器采用Nginx+uWSGI組合服務器,部署在服務器上的Web應用采用Django框架,該框架是python語言編寫的一個Web應用框架,采用了MVC的設計模式,非常適合快速開發。
如圖3所示,改進神經網絡的金針菇產量預測方法,包括以下步驟:
步驟1,選擇BP神經網絡模型作為金針菇產量預測系統的基本模型。
步驟2,設置BP神經網絡模型的輸入層的節點數為24、輸出層的節點數為1以及隱含層的節點數為14。
本發明中輸入層的節點數為24,分別對應金針菇六個生長階段的平均空氣溫度、平均空氣濕度、平均土壤溫度、平均土壤濕度這四個指標,輸出節點為1個,對應該區域的金針菇產量。
步驟3,利用遺傳算法改進訓練BP神經網絡模型,得到金針菇產量預測系統的預測模型:
如圖4所示,利用遺傳算法改進訓練BP神經網絡模型的具體步驟為:
(a)采用浮點數編碼方式對權值進行編碼,并在指定的范圍內隨機產生多組編碼,將其作為神經網絡的多組連接權值;
(b)輸入訓練樣本,計算每組連接權值下神經網絡的預測值與實際值之間的誤差平方和,并以該誤差平方和的倒數作為每組連接權值的適應度;
(c)選擇所有組適應度中較大的1/3的連接權值對應的個體作為進化群體;
(d)利用交叉、變異操作對進化群體進行進化,產生新一代群體;
(e)判斷當前遺傳代數是否大于設定的遺傳代數,如是,執行步驟(f),若否,用上一代中的進化群體中個體對應的連接權值代替步驟(b)中的連接權值,重復步驟(b)~步驟(e);
(f)將適應度最大的一組連接權值(7.1749e-06)作為BP神經網絡的初始權值;
(g)訓練BP神經網絡,直到網絡的均方誤差小于初始權值的倒數為止,得到金針菇產量預測系統的預測模型;
遺傳算法的控制參數:遺傳代數為100,交叉概率為0.9,變異概率為0.1,適應度函數為誤差均方根函數(MSE)的倒數;這樣的遺傳算法的控制參數的設置能夠產生更多的新個體,加快尋優的速度。
步驟4,輸入60組測試樣本,得到金針菇產量預測結果為423g;
這里60組測試樣本指的是各個階段的環境均值數據。
采用同樣的訓練樣本訓練傳統的預測模型和本發明改進神經網絡的預測模型,結果顯示,當輸入同樣的預測樣本時,采用本發明改進神經網絡的預測模型得到的平均誤差為0.0038,傳統的預測模型得到的平均誤差為0.0064,因此,這種預測模型使得預測系統更加精確。
以上所述的具體實施方式對本發明的技術方案和有益效果進行了詳細說明,應理解的是以上所述僅為本發明的最優選實施例,并不用于限制本發明,凡在本發明的原則范圍內所做的任何修改、補充和等同替換等,均應包含在本發明的保護范圍之內。