紀 芳,侯一筠
(1.中國科學院海洋研究所,山東青島266071;2.中國科學院研究生院,北京100049)
人工神經(jīng)網(wǎng)絡(Artificial Neural Networks,ANN),是1種模仿動物行為特征,進行分布式并行信息處理的算法數(shù)學模型[1]。這種網(wǎng)絡依靠系統(tǒng)的復雜程度,通過調整內(nèi)部大量節(jié)點之間相互連接的關系,從而達到處理信息的目的。
互相連接的方式稱為連接模式。神經(jīng)元之間的連接強度稱為突觸權或連接權。當網(wǎng)絡的連接權矩陣確定后,網(wǎng)絡的連接模式也就隨之確定。因此,連接模式也稱作網(wǎng)絡的連接權矩陣,它是對生物神經(jīng)網(wǎng)絡中的突觸連接強度的模仿。人工神經(jīng)網(wǎng)絡具有自學習和自適應的能力,可以通過預先提供的一批相互對應的輸入-輸出數(shù)據(jù),分析掌握兩者之間潛在的規(guī)律,最終根據(jù)這些規(guī)律,用新的輸入數(shù)據(jù)來推算輸出結果,這種學習分析的過程被稱為“訓練”。
風暴潮指由強烈大氣擾動,如熱帶氣旋(臺風)、溫帶氣旋(寒流)等引起的海面異常升高現(xiàn)象。沿海驗潮站或河口水位站所記錄的海面升降,通常為天文潮、風暴潮、地震及其他長波振動引起海面變化的綜合特征。一般驗潮裝置已經(jīng)濾掉了數(shù)秒級的短周期海浪引起的海面波動。如果風暴潮恰好與天文高潮相疊(尤其是與天文大潮期間的高潮相疊),加之風暴潮往往夾狂風惡浪而至,溯江河洪水而上,則常常使其影響所及的濱海區(qū)域潮水暴漲,甚者海潮沖毀海堤海塘,吞噬碼頭、城鎮(zhèn)和村莊,從而釀成巨大災難[2]。因此對于風暴潮的預報,極為引人關注。海浪預報的難點在于產(chǎn)生浪的風本身具有很大的隨機性和復雜性,造成浪的預報十分困難。關于海浪生成的物理機制,至今尚未得到十分圓滿的解決。因此,積極探索風浪預報的新方法、新思路就顯得很有必要。
人工神經(jīng)網(wǎng)絡以其高度的非線性表達能力,比較適合于臺風風暴潮極值預報這一多因子、多目標的擬合、預測,其特有的拓撲結構和處理信息的方法,能夠有效地解決一些傳統(tǒng)方法難以解決的問題。它明顯的優(yōu)點是具有較好的自適應學習和非線性映射能力,容錯能力強,預報速度快,比較適合處理那些物理機制復雜,因果關系和推理規(guī)則難以確定的非線性問題[3]。因此它的這些特點都為運用到臺風浪預報中提供了可能。
多層前饋神經(jīng)網(wǎng)絡的反傳學習理論(即BP)最早由Werbos在1974年提出,并由Rumelhart等在1985年發(fā)展為BP算法[4]。BP算法實際上是工程上最常用的最小均方誤差算法的1種廣義形式,它使用梯度最速下降搜索技術,按網(wǎng)絡的實際輸出和期望輸出的均方誤差最小的準則遞歸求解網(wǎng)絡的權值和各節(jié)點的閾值。
BP算法屬于有導師的學習算法[5]。其主要思想是,學習過程由信號的正向傳播與誤差的反向傳播兩個過程組成。正向傳播時,輸入樣本從輸入層傳人,經(jīng)各隱含層逐層處理后,傳向輸出層。若輸出層的實際輸出與期望的輸出不符,則轉入誤差的反向傳播階段。將輸出誤差以某種形式通過隱含層向輸入層逐層反傳,并將誤差分攤給各層的所有單元,從而獲得各層單元的誤差信號,此誤差信號即作為修正各單元權值的依據(jù)。信號正向傳播與誤差反向傳播的各層權值調整過程周而復始地進行。此過程一直進行到網(wǎng)絡輸出的誤差減少到可接受的程度,或進行到預先設定的學習次數(shù)為止。對于m個學習樣本:X1…Xm,已知其對應的輸出樣本為:Y1…Ym。學習的目的是用網(wǎng)絡的實際輸出O1…O m與目標矢量Y1…Ym之間的誤差來修改其權值,使O與期望的Y盡量接近,即網(wǎng)絡的輸出層的誤差平方和達到最小。
圖1 BP網(wǎng)絡結構示意圖Fig.1 BP neural network structure
BP算法由于其具有實現(xiàn)任何復雜非線性映射的功能、具有自學習能力以及一定的推廣概括能力,在很多方面得到了廣泛的應用。但是它也存在自身的限制和不足,其主要表現(xiàn)在它的訓練過程的不確定上。主要缺點為:學習效率低、收斂速度慢;容易陷入局部極小點;完全不能訓練。Cauchy訓練[4]雖然訓練速度較慢,但它的最大長處是,在訓練中,連接權的調整時隨機的,它有可能使網(wǎng)絡逃離局部極小點。因此,本文將結合Cauchy訓練和BP算法得到1種改進的BP算法。該算法具有BP算法的聯(lián)接權調整量確定的優(yōu)點,又具有Cauchy算法中聯(lián)接權調整隨機性和試探性所帶來的可以逃離局部極小點的優(yōu)點。
BP算法與Cauchy算法相結合[4],由BP算法提供直接計算部分計算聯(lián)接權的調整量,wij=wij+Δwij;Cauchy算法提供隨機部分,按照Cauchy訓練來計算聯(lián)接權的調整量。Δwij=α((1-β)δjoi+βΔwij′)+(1-α)Δ。α∈(0,1)為學習率,β∈(0,1)為沖量系數(shù)。
改進算法的具體描述如下:
[1]初始化各層的聯(lián)接權矩陣W;定義人工溫度T的初值;初始化λ、控制精度ε
[2]E=0;
[3]從樣本集中取出一樣本(xP,yP);按均勻分布在[0,1]區(qū)間取一隨機數(shù)r;
若r<λ則執(zhí)行以下程序:
(a)計算出理想輸出與實際輸出的差EP;E=E+EP;計算輸出層調整權Δw;調整W(M);對每層神經(jīng)元按照指數(shù)平滑的方法計算;調整隱含層的W(h)。
若r>λ則執(zhí)行以下程序:
(b)計算其輸出與目標函數(shù)E=({W});依次選取{W}中每一個W(h),按照Cauchy分布計算出W(h)的1個調整量ΔW(h);根據(jù){W(h)+ΔW(h)}重計算相應目標函數(shù)和輸出ΔE=E({W(h)+ΔW(h)})-E({W});E({W(h)+ΔW(h)});如果ΔE<0則調整W(h)為W(h)+ΔW(h);否則按照以下概率P(E({W(h)+ΔW(h)}))=exp(-來調整W(h)為W(h)+ΔW(h);
[4]如果E小于控制精度ε或T足夠小則結束,否則繼續(xù)[2]。
通常,BP神經(jīng)網(wǎng)絡的輸入變量即為待分析系統(tǒng)的影響因子或自變量數(shù),一般根據(jù)使用者需要求解問題來確定。輸出變量即為系統(tǒng)待分析的系統(tǒng)性能指標或因變量,可以是1個或多個。影響臺風風暴潮的因素有很多。針對確定的預報地點,它與該地點的風區(qū)、風時、風速、風向、底摩擦及研究海區(qū)海水深淺等有關。但是,對于某一確定地點,除風場外,其他因素對風浪的影響可近似地認為是相同的。風速對風暴潮有明顯的影響;在開闊海域,風向對風暴潮浪高的影響具有各向同性的效果,但是在近岸海域,風向的作用則有所不同。風向不僅對風暴潮的波向有重要影響,對風暴潮的浪高也同樣作用顯著。另外,臺風的移向、移速也是影響臺風風暴潮的重要因素。因此要做好臺風風暴潮的預報就要研究這些因素對臺風浪的影響。
倘若選取的因子過多,會使得建立的網(wǎng)絡不夠穩(wěn)定,網(wǎng)絡模型對樣本擬合會存在擬合值上周期性小波的存在以及由此帶來的擬合誤差[6-7]。一般來說,臺風風速與臺風風暴潮極值浪高有較好的相關關系,通常風速越大,所對應的臺風風暴潮浪就越高;臺風風暴潮浪高與臺風中心氣壓的對應關系不是那么的明顯。臺風風暴潮浪高與臺風中心距預報海區(qū)的距離關系顯著,臺風中心距預報海區(qū)的距離越近,所對應的浪高越高。因此,本文只選取對風暴潮極值水位影響比較顯著的4個因子,即臺風中心距預報海區(qū)距離、預報海區(qū)的臺風強度、風速和臺風移速,作為輸入因子,而把臺風風暴潮的極值水位作為預報輸出因子,分別運用BP算法和改進的BP算法來構建非線性風暴潮極值水位網(wǎng)絡預報模型。
本文選取山東某站點的每年臺風風暴潮資料,分別運用BP算法和改進BP算法,建立臺風強度、風速、和臺風移速與風暴潮極值水位的非線性網(wǎng)絡預報模型。根據(jù)站點的每年臺風風暴潮資料,對該站的風暴潮極值水位進行預報。通過對實驗結果進行對比比較,以此來驗證改進BP算法的可行性與準確性。
在所取26個個例中,選取其中的20個個例,分別運用2種算法對訓練樣本進行網(wǎng)絡模型的訓練。為了加快計算和收斂的速度,對輸入因子作了歸一化處理。對訓練樣本訓練、擬合1 000步以后,實驗結果見圖2(圖中*號為實際的極值水位值,實線為擬合曲線):
圖2(a) BP網(wǎng)絡訓練樣本的極值水位擬合效果Fig.2(a) BP neural network sample fitted curve of maximum water stage
圖2(b) 改進BP網(wǎng)絡訓練樣本的極值水位擬合效果Fig.2(b) Imp roved BP neural netwo rk sample fitted curve of maximum water stage
從圖中可以看出,BP網(wǎng)絡模型與改進的BP網(wǎng)絡模型都有很好的歷史樣本擬合能力。但是通過對比圖2(a)與圖2(b)可以看出,改進的BP算法的實驗效果要好于原來的BP算法,擬合程度要更高一些。在實際的運用中,網(wǎng)絡好壞的關鍵是看能否說明網(wǎng)絡模型的預報結果。因此,取剩下的6個極值水位個例進行檢驗,分別以BP網(wǎng)絡以及改進的BP網(wǎng)絡運用上述的技術原理與方法,網(wǎng)絡模型的預報極值水位實驗結果見圖3。
從圖3(a)與圖3(b)可以看出,建立的網(wǎng)絡模型對預報極值水位的結果與實際值基本接近,只是個例2的預報結果與實際值相差較大一點,但是從整體上看,預報結果是較為理想的,這就說明所建網(wǎng)絡模型對實際風暴潮極值水位的描述和預報是可行、可用的。
圖3(a) BP網(wǎng)絡模型的預報極值水位檢驗Fig.3(a) BP neural network sample test curve of maximum water stage
圖3(b) 改進BP網(wǎng)絡模型的預報極值水位檢驗Fig.3(a) Imp roved BP neural network sample test curve of maximum water stage
通過表1中BP網(wǎng)絡模型與改進的BP網(wǎng)絡模型預報極值水位誤差對比,可以看出在訓練擬合和檢驗2方面,改進的BP算法均比原先的BP算法效果要好。證明了改進算法的正確性與可行性。
表1 BP與改進BP網(wǎng)絡模型誤差對比圖Table 1 The error comparison of BP neural network and imp roved BP neural network
本文通過采用Cauchy訓練與傳統(tǒng)BP算法相結合的方法,對傳統(tǒng)BP算法進行了改進,并將改進算法用于臺風風暴潮極值水位預報中。經(jīng)M atlab仿真實驗結果表明,改進的算法取得了令人滿意的效果,網(wǎng)絡所表現(xiàn)出的穩(wěn)定性以及準確性都比傳統(tǒng)算法性能優(yōu)越。新的算法為神經(jīng)網(wǎng)絡算法的研究和訓練拓寬了思路,提供了新的研究途徑,同時也為臺風風暴潮極值水位預測提供了新思路。
[1] 張韌.用MA TLAB中的Neural Network toolbox仿真赤道太平洋SST的預報模型[J].海洋科學,2001,25(2):38-41.
[2] 沙文鈺.風暴潮、浪數(shù)值預報[M].北京:海洋出版社,2004.
[3] 張立明.人工神經(jīng)網(wǎng)絡的模型及其應用[M].上海:復旦大學出版社,1994:11.
[4] 蔣宗禮.人工神經(jīng)網(wǎng)絡導論[M].北京:高等教育出版社,2001:55-56.
[5] Galvan M,Isasi P,A ler R,et al.A selective learning method to imp rove the generalization of multilayer feedforward neural networks[J].International Journal of Neural Systems,2001(2):167-177.
[6] 王科俊,王克成.神經(jīng)網(wǎng)絡建模、預報與控制[M].哈爾濱:哈爾濱工程大學出版社,1996:37.
[7] 薛彥廣,沙文鈺,徐海斌,等.人工神經(jīng)網(wǎng)絡在風暴潮增水預報中的應用[J].海洋預報,2005,22(2):35.