包艷飛,崔東文
(1.云南省水文水資源局曲靖分局,云南曲靖655000;2.文山州水務局,云南文山663000)
人工神經(jīng)網(wǎng)絡(Artificial Neural Networks,ANNs)也稱為神經(jīng)網(wǎng)絡(NNs),是模擬生物神經(jīng)網(wǎng)絡進行信息處理的一種數(shù)學模型,它以對大腦的生理研究成果為基礎,模擬大腦的某些機理與機制,實現(xiàn)一些特定的功能[1].由于神經(jīng)網(wǎng)絡具有并行分布式處理、非線性處理以及自學習和硬件實現(xiàn)等功能,目前,已在人工智能、自動控制、計算機科學、信息處理、機器人、模式識別、空間科學等方面取得了令人矚目的成果[2].MATLAB是美國 Mathworks公司20世紀80年代推出的數(shù)值分析軟件,也是當今世界上最優(yōu)秀的數(shù)值計算軟件之一.MATLAB神經(jīng)網(wǎng)絡工具箱包含神經(jīng)網(wǎng)絡應用設計和分析的許多工具箱函數(shù),涵蓋了感覺器網(wǎng)絡、線性神經(jīng)網(wǎng)絡、BP神經(jīng)網(wǎng)絡、徑向基函數(shù)網(wǎng)絡、反饋網(wǎng)絡、自組織網(wǎng)絡和控制系統(tǒng)網(wǎng)絡等神經(jīng)網(wǎng)絡模型[3],提供了很多經(jīng)典的學習算法,能夠快速實現(xiàn)對實際問題的建模求解.其編程簡單,使用者能夠從繁瑣的編程中解脫出來,從而提高工作效率和質量[1].
筆者基于MATLAB神經(jīng)網(wǎng)絡和我國湖庫富營養(yǎng)化評價標準,運用人工神經(jīng)網(wǎng)絡模式識別理論和方法,分別建立了BP,PNN,GRNN和Elman神經(jīng)網(wǎng)絡湖庫富營養(yǎng)化等級評價模型,對全國24個主要湖泊富營養(yǎng)化程度進行了評價、比較,旨在探尋MATLAB神經(jīng)網(wǎng)絡在湖庫營養(yǎng)狀態(tài)評價中的應用效果.
依據(jù)水利部《地表水資源質量評價技術規(guī)程》(SL 395—2007)湖庫營養(yǎng)狀態(tài)評價標準,選取葉綠素 α(Chla)、總磷(TP)、總氮(TN)、高錳酸鹽指數(shù)(CODMn)和透明度(SD)作為湖庫營養(yǎng)狀態(tài)評價因子[4],見表1.選取我國主要湖泊的調查資料進行實例分析,見表2.
1.2.1 樣本設計
由于目前訓練樣本數(shù)目的確定沒有通用的方法,樣本過少可能使網(wǎng)絡表達不夠充分,從而導致網(wǎng)絡外推的能力不夠;而樣本過多可能會出現(xiàn)樣本冗余,增加了網(wǎng)絡的訓練負擔,也可能出現(xiàn)信息量過剩使網(wǎng)絡過度擬合.實踐表明,網(wǎng)絡訓練所需樣本數(shù)取決于輸入輸出非線性映射關系的復雜程度,映射關系越復雜,樣本中含的噪聲越大,為保證一定的映射精度所需的樣本數(shù)就越多,精度也很難再提高.一般訓練樣本數(shù)取網(wǎng)絡連接權總數(shù)的5~10倍[1].因此,按照我國富營養(yǎng)化評價等級標準,將每一等級評價指標值利用線性插值方法等比例劃分為10個訓練樣本,1—10號為貧營養(yǎng);11—20號為貧中營養(yǎng);21—30號為中營養(yǎng);31—40號為中富營養(yǎng);41—50號為富營養(yǎng);51—60號為重富營養(yǎng)(以待測試樣本中各指標的最大值為重富營養(yǎng)學習上限值),將這60個樣本作為學習樣本.
表1 我國湖泊富營養(yǎng)化評價標準
表2 我國主要湖泊調查資料[5]
1.2.2 輸入輸出向量設計
以葉綠素α(Chla)、總磷(TP)、總氮(TN)、高錳酸鹽指數(shù)(CODMn)和透明度(SD)作為輸入向量(因子),以湖庫富營養(yǎng)化等級作為輸出(目標)向量.以表2中資料作為測試樣本,即待評價樣本.依據(jù)我國湖泊富營養(yǎng)化評價標準(分為6個等級),目標輸出模式為(000001)(000010)(000100)(001000)(010000)和(100000),分別對應湖泊營養(yǎng)程度的1,2,3,4,5 和6 級,見表3.
1.2.3 數(shù)據(jù)處理
由于網(wǎng)絡的各個輸入數(shù)據(jù)常常具有不同的物理意義和不同的量綱及數(shù)量級,采用最大最小法對原始數(shù)據(jù)歸一化,公式如下:
表3 湖泊富營養(yǎng)化程度評價學習樣本及輸出模式
式中:x^為經(jīng)過標準化處理的數(shù)據(jù);x為原始數(shù)據(jù);xmax和xmin分別為數(shù)據(jù)序列中的最大數(shù)和最小數(shù).經(jīng)過標準化處理后,數(shù)據(jù)處于[0~1]范圍之內,有利于網(wǎng)絡訓練.選取60組數(shù)據(jù)為學習樣本,24組數(shù)據(jù)(我國主要湖泊)作為測試樣本.湖泊富營養(yǎng)化程度中透明度越大,表明富營養(yǎng)化程度越低;而其他因子則是數(shù)據(jù)越大,表明富營養(yǎng)化程度越高.因此,需要對透明度的原始數(shù)據(jù)進行倒數(shù)處理.
2.1.1 BP 網(wǎng)絡概述
BP網(wǎng)絡是一種單向傳播的多層前饋神經(jīng)網(wǎng)絡,其主要特點是信號前向傳播,誤差反向傳播.在前向傳播中,輸入信號從輸入層經(jīng)隱含層逐層處理,直至輸出層.每一層的神經(jīng)元狀態(tài)只影響下一層神經(jīng)元狀態(tài),如果輸出層得不到期望輸出,則轉入反向傳播,根據(jù)預測誤差調整網(wǎng)絡權值和閾值,從而使BP神經(jīng)網(wǎng)絡預測輸出不斷逼近期望輸出.由非線性變換單元組成的BP神經(jīng)網(wǎng)絡,不僅結構簡單(僅含輸入、輸出和隱節(jié)點3層),而且具有良好的非線性映射能力[6-7].
BP網(wǎng)絡的輸入層和輸出層的神經(jīng)元數(shù)是由輸入向量和輸出向量的維數(shù)確定的.本例中輸入向量的維數(shù)也就是影響湖庫營養(yǎng)化程度因素的個數(shù),即葉綠素α(Chla)、總磷(TP)、總氮(TN)、高錳酸鹽指數(shù)(CODMn)和透明度(SD)5個因素,所以確定輸入層為5個神經(jīng)元;依據(jù)湖泊富營養(yǎng)化評價標準,湖泊富營養(yǎng)化程度分為6個等級,所以確定輸出層神經(jīng)元的個數(shù)為6;在隱層神經(jīng)元個數(shù)的選取上,目前并沒有統(tǒng)一的計算方法,采用目前較為普遍的Kolmogorv定理確定隱含層神經(jīng)元數(shù),最終確定為11個隱含層神經(jīng)元.
2.1.2 BP網(wǎng)絡湖庫營養(yǎng)狀態(tài)評價的實現(xiàn)
利用MATLAB 2010a神經(jīng)網(wǎng)絡工具箱中的newff()函數(shù)編寫算法程序,采用5—11—6型評價模型對表3的60個樣本進行網(wǎng)絡學習訓練,在達到訓練精度要求后對表2中我國主要湖泊進行營養(yǎng)狀態(tài)等級評價.經(jīng)過反復測試,訓練次數(shù)為3 000次,訓練目標為0.001,學習速率為0.1,中間層的傳遞函數(shù)為S型正切函數(shù),網(wǎng)絡所用訓練函數(shù)為trainlm(該函數(shù)優(yōu)化算法比傳統(tǒng)的BP及其他改進算法,如共軛梯度法、附加動量法、自適應調整法等的迭代次數(shù)少,收斂速度快,精確度高等優(yōu)點),其余參數(shù)取默認值[1-2].評價結果見表 4.
2.2.1 概率神經(jīng)網(wǎng)絡概述
概率神經(jīng)網(wǎng)絡(PNN)是一種結構簡單、訓練簡潔、應用廣泛的人工神經(jīng)網(wǎng)絡,在實際應用中,尤其在解決分類問題的應用中,能用線性學習算法來完成以往非線性學習算法所做的工作,同時又能保持非線性算法的高精度等特性.這種網(wǎng)絡對應的權值就是模式樣本的分布,網(wǎng)絡不需要訓練,因而能滿足訓練上實時處理的要求.其實質是基于貝葉斯最小風險準則發(fā)展而來的一種并行算法,目前已在雷達、心電圖儀等電子設備中獲得廣泛應用[8].
PNN網(wǎng)絡的輸入層和輸出層的神經(jīng)元數(shù)也是由輸入向量和輸出向量的維數(shù)確定的.本例的輸入層有5個結點,分別對應湖庫營養(yǎng)狀態(tài)評價的5個特征因子;輸出層有6個結點,分別對應湖泊營養(yǎng)狀態(tài)的1—6個等級.
2.2.2 概率神經(jīng)網(wǎng)絡湖庫營養(yǎng)狀態(tài)評價的實現(xiàn)
利用MATLAB 2010a神經(jīng)網(wǎng)絡工具箱中的newpnn()函數(shù)編寫算法程序對表3進行網(wǎng)絡學習訓練,在達到訓練精度要求后對表2中我國主要湖泊進行營養(yǎng)狀態(tài)等級評價.經(jīng)過反復測試,徑向基函數(shù)的分布密度 spread 為0.1 時能達到較好的評價精度[1-2].評價結果見表4.
2.3.1 廣義回歸神經(jīng)網(wǎng)絡概述
廣義回歸神經(jīng)網(wǎng)絡(GRNN)是一種基于onepass學習算法的高度并行徑向基網(wǎng)絡.GRNN不同于傳統(tǒng)的神經(jīng)網(wǎng)絡,它僅需要1個簡單的平滑參數(shù),不必進行循環(huán)的訓練過程,在訓練過程中不調整神經(jīng)元之間的連接權值,網(wǎng)絡穩(wěn)健,計算速率快.實際應用中,其優(yōu)勢在于當訓練樣本數(shù)目很大時能夠快速學習并收斂到樣本量積聚最多的最優(yōu)回歸平面,并且可以處理不穩(wěn)定的數(shù)據(jù).但平滑因子的確定是GRNN訓練的關鍵和難點.
GRNN包括3層:輸入層、徑向基隱含層及線性輸出層.輸入層節(jié)點只傳遞輸入信號到隱含層,隱含層節(jié)點由像高斯函數(shù)那樣的徑向基傳遞函數(shù)構成,而輸出層節(jié)點通常是簡單的線性函數(shù).隱含層節(jié)點中的基函數(shù)對輸入信號將在局部產(chǎn)生響應,當輸入信號靠近基函數(shù)的中央范圍時,隱含層節(jié)點將產(chǎn)生較大的輸出,所以 GRNN 具有局部逼近能力[1-2].本例的輸入層有5個結點,分別對應湖庫營養(yǎng)狀態(tài)評價的5個特征因子;輸出層有6個結點,分別對應湖泊營養(yǎng)狀態(tài)的1—6個等級.
2.3.2 GRNN網(wǎng)絡湖庫營養(yǎng)狀態(tài)評價的實現(xiàn)
利用MATLAB 2010a神經(jīng)網(wǎng)絡工具箱中的newgrnn()函數(shù)編寫算法程序對表3進行網(wǎng)絡學習訓練,在達到訓練精度要求后對表2中營養(yǎng)狀態(tài)等級評價.經(jīng)過反復測試,光滑因子設置為0.07時能達到較好的評價精度[1].評價結果見表4.
2.4.1 Elman 網(wǎng)絡概述
Elman網(wǎng)絡是一種典型的動態(tài)回歸神經(jīng)網(wǎng)絡,是在BP網(wǎng)絡結構的基礎上,通過存儲內部狀態(tài)使其具備映射動態(tài)特征的功能,從而使系統(tǒng)具有適應時變特性的能力,能夠更生動、更直接地反映系統(tǒng)的動態(tài)特性.Elman回歸神經(jīng)網(wǎng)絡除了普通的輸入層、隱含層和輸出層外,還有一個特別的單元,稱為上下文層或狀態(tài)層.輸入層單元起信號傳輸作用,輸出層單元起線性加權作用,隱含層單元一般為非線性激活函數(shù),而上下文層單元從隱含層接受反饋信號,即用來記憶隱含層單元前一時刻的輸出值,可以認為是一步時延算子[1-2].
合理確定Elman網(wǎng)絡的結構是湖庫營養(yǎng)狀態(tài)評價的基礎,結構的確定尤其是中間層神經(jīng)元數(shù)的確定是一個經(jīng)驗性問題,需要大量的實驗.本例中網(wǎng)絡輸入層為5個神經(jīng)元,分別對應湖庫營養(yǎng)狀態(tài)評價的5個特征因子;輸出層為6個神經(jīng)元,分別對應湖泊營養(yǎng)狀態(tài)的1~6個等級;根據(jù)實驗,中間層神經(jīng)元的數(shù)目設置為9個.
?
2.4.2 Elman網(wǎng)絡湖庫營養(yǎng)狀態(tài)評價的實現(xiàn)
利用MATLAB 2010a神經(jīng)網(wǎng)絡工具箱中的newlm()函數(shù)編寫算法程序對表3進行網(wǎng)絡學習訓練,在達到訓練精度要求后對表2中的營養(yǎng)狀態(tài)等級評價.經(jīng)過反復測試,訓練次數(shù)為2 000次,訓練目標為0.01,中間層傳遞函數(shù)為tansig(),輸出層傳遞函數(shù)為 logsig()[1].評價結果見表4.
分別運用上述4種神經(jīng)網(wǎng)絡模型對我國主要湖庫營養(yǎng)狀態(tài)進行評價,并與文獻[5]和文獻[9]的評價結果進行比較,見表 4.由表 4可以得出以下結論:
1)MATLAB神經(jīng)網(wǎng)絡評價模型的評價結果與文獻[5]投影尋蹤模式和文獻[9]評分指數(shù)模式的評價結果不完全一致,但與文獻[9]評分指數(shù)模式的評價結果非常接近,僅有3個湖泊(博斯騰湖、于橋水庫、固成湖)的評價結果比其偏大1個等級;與文獻[5]采用投影尋蹤模式的評價結果相比,文中的評價結果中博斯騰湖、于橋水庫、蘑菇湖和邛海比其偏小1個等級,評價結果有些偏小,但均能達到湖庫營養(yǎng)狀態(tài)等級評價的精度要求.
2)采用BP,PNN,GRNN和Elman 4種神經(jīng)網(wǎng)絡模型的評價結果一致.但相對于BP神經(jīng)網(wǎng)絡來說,GRNN和Elman神經(jīng)網(wǎng)絡的識別誤差要大一些,但不影響實際應用.
3)相對而言,PNN神經(jīng)網(wǎng)絡訓練速度快,在工程上易于實現(xiàn),對樣本噪聲具有較強的魯棒性,且其輸出結果最直觀明了,缺點是從評價輸出模式上無法了解對湖泊富營養(yǎng)化程度評價的識別誤差.
4)由于光滑因子對GRNN網(wǎng)絡的性能影響較大,因此,需要不斷嘗試才能獲得最佳值.GRNN神經(jīng)網(wǎng)絡在湖庫營養(yǎng)狀態(tài)評價中的應用是有效的,就具體網(wǎng)絡訓練而言,與BP網(wǎng)絡相比,由于需要調整的參數(shù)比較少,只有1個光滑因子,因此可以更快地找到合適的評價網(wǎng)絡,具有較強的計算優(yōu)勢.
5)自組織神經(jīng)網(wǎng)絡模型較適合解決分類和識別方面的應用問題,但由于其采用無導師學習算法,在本例中評價效果不理想.
6)從程序調試過程中知,中間層神經(jīng)元個數(shù)的增加雖然可以提高網(wǎng)絡的映射精度,但并不一定能提高網(wǎng)絡的性能.
1)文中的關鍵之處在于依據(jù)我國富營養(yǎng)化評價等級標準構造訓練樣本,即將每一等級評價指標值利用線性插值方法等比例劃分為10個訓練樣本,在經(jīng)過一定次數(shù)的訓練后,網(wǎng)絡的目標誤差達到精度要求,測試和評價結果令人滿意.這一方法可以根據(jù)映射關系的復雜程度動態(tài)調整網(wǎng)絡訓練樣本的容量,以滿足評價或預測的精度要求;可以解決訓練樣本難以獲取的客觀條件限制;可以有效控制訓練樣本范圍,以拓寬神經(jīng)網(wǎng)絡在分類、模式識別以及預測方面的應用.
2)從對我國24個主要湖泊營養(yǎng)狀態(tài)的評價結果上看,采用BP,PNN,GRNN和Elman 4種神經(jīng)網(wǎng)絡模型的評價結果完全一致,模型簡單易行,且評價精度高,可為湖庫富營養(yǎng)化程度評價提供新的途徑和方法(文中程序均在MATLAB R2010a中調試通過).
[1]張德豐.MATLAB神經(jīng)網(wǎng)絡應用設計[M].北京:機械工業(yè)出版社,2009.
[2]張良均,曹晶,蔣世忠.神經(jīng)網(wǎng)絡實用教程[M].北京:機械工業(yè)出版社,2008.
[3]王佳斌,康賜榮.MATLAB中神經(jīng)網(wǎng)絡工具包的應用[J].泉州師范學院學報:自然科學版,2009,19(2):80-83.
[4]水利部水環(huán)境監(jiān)測研究評價中心.SL 395—2007地表水資源質量評價技術規(guī)程[S].北京:中國水利電力出版社,2007.
[5]王貴作,任立良,王斌,等.基于投影尋蹤的湖泊富營養(yǎng)化程度評價模型[J].水資源保護,2009,25(5):14-18.
[6]王曉萍,孫繼洋,金鑫.基于BP神經(jīng)網(wǎng)絡的錢塘江水質指標的預測[J].浙江大學學報:工學版,2007,41(2):361-364.
[7]張成燕,徐望,趙冬冬,等.基于神經(jīng)網(wǎng)絡的水廠原水水質的綜合評價[J].冶金分析,2008,28(5):44 -47.
[8]陳永燦,陳燕,鄭敬云,等.概率神經(jīng)網(wǎng)絡水質評價模型及其對三峽近壩水域的水質評價分析[J].水力發(fā)電學報,2004,23(3):7 -12.
[9]舒金華.我國主要湖泊富營養(yǎng)化程度的評價[J].海洋與湖沼,1993,24(6):616 -620.