李海濤,劉泰麟
(青島科技大學信息科學與技術學院,山東 青島 266061)
隨著刺參Apostichopus japonicus 養殖等水產養殖業的發展,養殖方式正在朝著科學、智慧的方向發展。自身的產業特點和刺參養殖的經驗性和專業性使預測刺參養殖產量面臨巨大挑戰??茖W的預測方式能指導相關人員合理調整養殖產業結構,在一定程度上促進水產養殖行業的發展。目前,科學的預測方式主要采用相關性分析、SWM(支持向量機)、多元回歸、灰色模型、神經網絡模型等算法預測水產養殖產量,如基于灰色新陳代謝GM(1,1)模型的中國水產品年總產量的預測[1]、基于灰色馬爾可夫修正模型的水產品產量預測[2],以及對蝦相對產量預測的人工神經網絡模型[3]等。與其他預測模型相比,BP 神經網絡是最高效和適用的方法之一,尤其是對非線性的、規律性弱的刺參養殖活動數據,應用BP 神經網絡進行預測可以得到理想的預測結果。然而,傳統BP 神經網絡模型在選擇輸入層神經元和確定隱含層節點數量方面存在不足,在對非平穩序列、非線性和相關關系復雜、預測精度要求高的刺參養殖產量預測中,容易出現訓練時間長、學習效率低、易陷入局部極小、預測精度低等問題[4],限制了其應用和擴展。
為了解決上述問題,本文研究設計一種基于C4.5 決策樹優化的BP 神經網絡刺參養殖產量的預測模型,利用決策樹降低輸入層神經元維度,加快BP 神經網絡收斂速度,提高產量預測的精準度。
以山東省刺參養殖年產量預測為例。為使最終結果更加切合實際結果,本文在數據選擇上參考現有的水產養殖相關文獻[5],得出海參養殖產量受氣候、環境條件、養殖政策、養殖技術、經濟效益等多種因素的影響,在此基礎上,最終選定年平均水溫(X1)、育苗量(X2)、養殖面積(X3)、災害經濟損失(X4)、養殖技術推廣人數(X5)、海參損失數量(X6)和專業養殖勞動力(X7)作為初始輸入條件屬性,海參養殖產量預測為決策屬性(Xk)。海參養殖相關數據來自《中國漁業統計年鑒2017》[6];海水環境數據來自國家海洋環境預報中心網站。
采用歸一化方法對模型輸入數據進行數據預處理,在訓練集的選取上涵蓋最大最小特征值,避免測試集的數據越界。將各要素統一到[0,1]區間,減少不同要素取值范圍差異過大而忽略小數值數據價值[7]。線性歸一化公式和還原公式如下:

上述兩式中,x 和x分別為輸入條件屬性數據歸一化前和歸一化后的值,xmax和xmin分別是該屬性因素序列中的最大值和最小值。
C4.5 決策樹算法能克服數據要求高、參數復雜、計算繁瑣等困難,可以根據既定規則完成基本的決策任務[8],具有良好的分類和預測能力,廣泛應用于數據挖掘中。C4.5 決策樹算法的原理如下:
設S 是類樣本的數據訓練集,m 是訓練集中的類別數量,Si為S 中第i 類樣本的數量,i=1,2,......,m,即:

此時訓練集S 的信息熵H(S)為:

式中,訓練集S 被屬性A 的屬性值劃分為m 個子集,i=1,2,......,m,|Si| 表示第i 個子集中的樣本數量,|S|表示劃分前數據集中樣本的總數量。
根據屬性A,令={S1,S2,…,Sn},其中n 為屬性A包含不同值的數目。于是,訓練集在屬性A 上的信息熵為:

信息增益率為:

“二分分割算法”是使區間的兩個端點逐漸向零點逼近,以得到零點近似值的方法[9]?;舅枷肴缦拢?/p>
(1)確定隱含層節點數的近似范圍,假設范圍是[1,10]。
(2)將s1=1、s2=10、s3=(s1+s2)/2=6(四舍五入)分別帶入訓練網絡,用同一組樣本數據、同樣的轉移函數、訓練函數進行訓練,分別比較不同隱含層節點數在神經網絡訓練下的輸出均方誤差(MSE)。
(3)計算三個不同節點數輸出的均方誤差,假設s1輸出誤差為E(s1),s2的輸出誤差為E(s2),s3的輸出誤差為E(s3)。如果E(s1)>E(s2),則將隱含層節點數范圍壓縮至[s3,s2]。如果E(s1)<E(s2),則將隱含層節點數范圍壓縮至[s1,s3]。連續壓縮區間范圍,直至均方誤差最小節點數即為所需要的隱含層節點數。
BP 神經網絡是模擬人類大腦神經網絡的結構和特性構建的網絡模型,具有良好的學習和歸納能力,已廣泛應用于各類預測模型中[10-14]。神經網絡可以很好地模擬刺參養殖產量及相關影響要素間的關系,把輸入、輸出問題轉化為非線性映射,解決因缺乏精確計算公式而導致海參養殖產量預測精度低的問題[9]。BP 神經網絡的建立包括三個過程:網絡初始化、正向傳遞和反向傳遞。具體算法步驟如下:
(1)輸入學習樣本(Xi,Y)i(i=1,2,...,n),Xi和Yi分別是學習樣本的輸入參數和輸出結果;
(2)確定各層的神經元數量,隨機在兩層神經元之間建立連接權重矩陣,Mo代表第1 層和第L+1 層的連接矩陣,表示每層的輸出值;
(4)比較各輸出節點的均方誤差:

(5)判斷是否符合原定誤差ε,如果滿足要求,則結束,否則進入步驟6;
(7)轉至步驟4,直到結果的均方誤差在允許的誤差范圍之內。
在BP 神經網絡模型基礎上,根據已知樣本數據,通過決策樹的分類選擇方法過濾多余輸入條件屬性,取最簡屬性集合作為神經網絡輸入節點構建神經網絡,用“二分分割算法”來確定隱含層節點數量,并在輸入條件屬性和海參養殖產量之間建模(圖1)。
通過樣本數據訓練,獲得預測網絡,經測試、調整,即可用于預測刺參養殖產量。具體實施步驟如下:
(1)對網絡的權重、閾值、收斂精度和最大迭代次數進行初始化;
(2)通過決策樹依次獲取信息增益率最高的屬性,結合模型情況確定網絡最佳條件屬性集合;

圖1 刺參養殖產量預測模型建立過程Fig.1 Establishment of prediction model for sea cucumber production
(3)通過二分分割算法快速計算確定隱含層節點數量;
(4)確定優化的BP 神經網絡結構,進行網絡訓練;
(5)進行網絡測試,檢查訓練是否達到預期精度,若達到預期精度或達到最大迭代次數,停止并獲取網絡的輸出結果。
輸入BP 神經網絡進行訓練的數據通常包含很多屬性,其中有些屬性與目標能力無關或影響很小。輸入屬性太多時,會降低神經網絡收斂速率,而增加過度擬合的可能性。因此,在將屬性數據輸入神經網絡進行訓練前,要根據目標能力對屬性進行約簡,選擇合適的輸入屬性,確定BP 神經網絡的最優輸入屬性集合。計算訓練數據后,比較各個屬性的信息增益率是選擇C4.5 決策樹分類選擇最佳輸入屬性的方法。依信息增益率大的屬性或者屬性集合確定網絡的初始輸入。以收集的初始輸入條件屬性數據為基礎,經C4.5 決策樹算法計算相關條件屬性的信息增益率(表1)。
上述條件屬性的信息增益率表明,年平均水溫(x1)、養殖面積(x2)、育苗量(x3)、海參損失數量(x4)的條件屬性信息增益率均大于10%,對海參養殖產量影響比較大,作為最優特征組合和神經網絡的輸入變量。

表1 條件屬性信息增益率結果Tab.1 Results of conditional attribute information gain rate

表2 不同隱含層節點數神經網絡性能的比較Tab.2 Performance comparison of neural networks with number of nodes in different hidden layers
BP 神經網絡輸入層神經元,即經決策樹分類優先特征選擇算法后的年平均水溫、養殖面積、育苗量、海參損失數量四個影響產量的條件數據。網絡轉移函數采用Sigmoid 函數[15],即:

為提高模型收斂速率,減少誤差,避免陷入局部極小,本模型采用Delta 學習規則[16]使誤差信號的目標函數最小:

式中,△Wij(n)表示當輸入向量為xn時神經元i和j 之間的連接權值,η 和yi分別表示學習效率和神經元i 的期望輸出值,Oi和Qj分別表示神經元i和神經元j 的激活值。經實驗,取η 為0.50,誤差容量為0.0001,訓練次數為500。
已有研究表明,目前還沒有成熟的理論依據支持精確地確定隱含層節點數量,很多研究還是根據以往的經驗公式得到一個確定的值[17-20]。常見的經驗公式如下:

上述三個公式中,C、m 和n 分別表示隱含層節點數、輸出層神經元數和輸入層神經元數,a∈[1,10]。
根據經驗公式可以得到隱含層節點數,但是其經驗性太強,誤差太大,預測結果不夠準確。本文經過經驗公式粗略計算,得出隱含層節點數的范圍為[3,10],再結合“二分分割算法”計算得出不同隱含層節點數對應的網絡性能數據(表2)。
由表2 可知,當隱含層節點數為6 時,神經網絡總體性能最高。所以,確定本文神經網絡模型的最佳隱含層節點數為6;隱含層節點數有無限個的單隱層BP 神經網絡可實現任意的非線性映射[21]。因此,本文網絡模型中隱含層的層數為1。設計BP神經網絡預測模型的拓撲結構為4-6-1(圖2)。

圖2 BP 神經網絡預測模型的拓撲Fig.2 Topology of BP neural network prediction model
為檢驗優化后的BP 神經網絡模型的性能,隨機選取五組數據帶入本文訓練好的模型進行產量預測,并與傳統的BP 神經網絡和灰色GM(1,1)預測結果進行比較(表3)。
用均方誤差(MSE)來評估本文BP 神經網絡模型與傳統的BP 神經網絡以及灰色GM(1,1)預測模型的性能。結果表明,MSE 的值與模型的預測精度成反比。公式如下:

本文模型與傳統BP 神經網絡預測模型和灰色GM(1,1)的學習速率的差異對比結果見表4。
對比結果表明,本文模型預測結果的均方誤差比傳統BP 神經網絡模型和灰色GM(1,1)分別減少了0.05 和0.12,均方誤差更?。痪W絡運行平均耗時也有所縮短。本文模型能在較短時間內獲得較高精度的預測結果。

表3 不同預測方法對不同年份產量的預測結果比較Tab.3 Comparison of forecast production by various prediction models in different years

表4 不同預測模型性能的比較Tab.4 Comparison of performance of different prediction models
利用BP 神經網絡結合C4.5 決策樹算法對刺參養殖產量歷史數據進行訓練,形成的網絡模型預測刺參養殖產量誤差變小、平均耗時縮短,可以滿足刺參養殖產量預測的精度要求。優化后的BP 神經網絡數據訓練分析模型可以應用到對蝦養殖產量預測、養殖水質預測、養殖病害預測等研究,具有一定的擴展性和推廣價值。