摘要 以c++程序設計為平臺,運用人工神經網絡的方法建立林分林種出材率的BP神經網絡模型。通過查閱學習伐區設計資料和實際生產碼單數據,最后確定以平均樹高,平均胸徑,樹種年齡,保留密度,蓄積量為輸入輸入神經元,分析明確了從影響BP算法的學習率和預測精確度的因素中的隱含層的神經元數量,訓練次數,隱含層函數,樣本數量應訴進行對林分材種出材率預測的BP網絡模型進行優化設計,也明確了林分材種出材率預測的人工神經網絡模型。
關鍵詞 人工神經網路 林分材種出材率 BP算法
引言
林分材種出材率是林分調查工作的重要指標,它可以進一步評價森林木材資源的經濟價值,而研究森林木材,又可以合理正確的經營森林資源,達到人與自然和諧相處的目的。林分林種出材率就是原木材積于立木材積之比,我國現行的森林采伐限額制度、查處亂砍濫伐林木案件、制訂林業發展規劃、計劃和編制森林經營方案、預測和計算、開展森林資源資產評估等等,都需掌握積蓄量和材種的出材率的指標。我國已經不斷學習借鑒前蘇聯的先進技術編制自己的材種出材率表了,隨著我國天然林保護工程的全面實施和林業分類經營的逐步推行,人工商品林比例的不斷提高,我國森林結構和性質也有所變化,所以傳統的統計學以難以解決很多問題,運用人工神經網絡在林業生成與運用則是一個不二之選的方法,對林業的發展也有很大的理論價值和推廣意義。
人工神經網絡(Artificial Neural Network-ANN),簡稱“神經網絡”,是由大量處理單元過極其豐富和完善的互聯組成的非線性、自適應信息處理系統。它的提出是基于現代神經科學研究成果上,以模擬大腦神經網絡處理、記憶信息的方式進行信息處理。涉及學科較多,較為廣泛。
1 研究內容和方法
平均樹高,平均胸徑,林種年齡,立地質量,積蓄量,保留密度等等因素都會影響林分材種出材率,而林分林種出材率具有非線性和非確定性的因素,一般采用統計分析方法進行預測采樣,需要大量的林木樣本元素,模型涉及的許多參數無法或很難有較高的精確度。
人工神經網絡(Artificial Neural Network)具有非線性,非局限性,自適應,自組織,自學習的特征,相較于傳統的統計學方法,不同之處在于它的容錯性和儲存量,通過單元之間的相互作用,相互連接能模擬大腦的局限性。ANN的獨到之處,也使得人們注意了ANN,并且廣泛的應用于各種學科之中,如心理學,邏輯學,數學模型,遺傳算法,語音識別,智能控制等等。當然,運用人工神經網絡對林分林種出材率進行預測也同樣具有很好的效果與實現。
研究主要完成,通過對數據的采樣和分析處理,對神經網路預測模型的結構,參數進行優化,再應用到林分材種出材率的預測中。以c++程序設計為設計平臺,運用人工神經網絡中的BP算法,分析各隱含層神經元的數量,訓練的次數,隱含層函數,樣本數量,進行優化建立林分材種出材率的預測模型。
1.1BP人工神經網絡
BP(Back-Propagation Network)神經網絡是一種以誤差逆傳播算法(BP)訓練的多層前饋網絡,目前應用較為廣泛的神經網絡模型之一。BP神經網絡能學習和存貯多個輸入-輸出模式映射關系,而且無需事前對這種映射關系的數學方程進行描述。它通過不斷反向傳播來調整神經網絡的權值和閾值,使神經網絡的誤差平方和最小。BP神經網絡模型拓撲結構由三層組成分別是輸入層(input)、隱層(hidelaver)和輸出層(output layer)。
BP人工神經網絡主要以標準BP算法為主,而標準BP算法有存在許多問題,由于是非線性梯度優化算法,就會存在局部極小值問題,使得精確度受限;算法迭代系數過多,使得學習率降低,收斂速度降低;網絡對初始化的值存在發散和麻痹;隱節點不確定性的選取。所以引進了幾種BP算法:動量BP算法、學習速率可變的BP算法和LM算法(Levenberg-Marquardt)。動量BP算法以上一次修正結果來影響本次的修正,動量因子越大,梯度的動量就越大。學習效率可變的BP算法怎是力求算法的穩定,減小誤差。為了在近似二階訓練速率進行修正時避免計算HeSSian矩陣,選擇LM算法。所以為了神經網絡計算的速度與精確度,所以運用不同的優化算法來改善BP網絡中的局部極小值問題,提高收斂速度和避免了抖動性。
2 基于BP人工神經網絡和林分材種出材率預測模型的建立
分析了大量的材種出材率的相關資料后,均有非線性的特征,對于模型的建立和預測,傳統的識別系統在研究和實踐中有很大的問題,而采用人工神經網絡,不僅其特征是非線性,而且人工神經網絡具有較為穩定的優越性,所以,對于林分材種出材率的預測和建立采用BP人工神經網絡。
2.1建模工具
研究采用c++程序設計對數值的計算和預測,對模型進行編譯和實現。c++語言是受到非常廣泛應用的計算機編程語言,它支持過程化程序設計,面向對象程序設計等等程序設計風格。c++是一門獨立的語言,在學習時,可以結合c語言的知識來學習,而c++又不依賴于c語言,所以我們可以不學c語言而直接學習C++。
用c++來模擬BP網絡是相對較好的程序設計語言,以面向對象程序設計來設計和實現林分材種出材率的BP算法,直觀而簡潔。
2.2BP神經網絡結構的確定
對于使用BP算法,關鍵在于隱含層層數和各層節點數。而神經元的輸入輸出又影響著隱含層層數,而對于BP萬羅中的輸入輸出層是確定的,重點就在于隱含層層數,增加隱含層數可以提高網絡的處理能力,是的訓練復雜化,樣本數目增加,收斂速度變慢等,而隱含層的節點數越多,可以提到其精確度。
研究過程中,多層隱含層會將訓練復雜化,所以我們往往選擇三層就夠了,即一個輸入層,一個隱含層,一個輸出層的基本單層BP網絡結構。最后確定以下四個神經元:平均樹高、平均胸徑、林種年齡、每公頃積蓄量作為輸入單元。輸出單元為林分材種出材率。
結論
以BP神經網絡建立林分材種出材率的網絡模型,使得出材率的精確度提高。根據樣本的選取和整理,算法的優化,避免了異常數據和算法的不安全性對神經網絡的學習影響,提高了網絡的繁華能力,利用數據歸一化節約了網絡資源,學習負擔減輕,避免了訓練過程中的抖動與麻痹狀態。歲模型的總體分析,減少神經元個數的輸入,權值減少,極大的提高了網絡訓練中的收斂速度,也使得網絡的穩定性和容錯性提高。
參考文獻:
1 黃傳春,基于神經網絡林分材種出材率模型研究(碩士學位論文)2007,4