中北大學機械工程與自動化學院 葉 超 姚竹亭
時間序列是由一個低維的具有非線性和確定性的動態系統產生的外表象隨機信號但并非是隨機信號的時間序列,這些序列中存在著一些與產生該序列的非線性動力學系統相關的固有的確定性和一些幾何拓撲不變性。預測是人們根據事物的發展規律、歷史和現狀,分析影響其變化的因素,對其發展前景和趨勢預先進行的一種推測。對于現實中大量存在的非線性、非平穩的復雜動力系統問題,需要確定合適的模型階數,這是比較困難的,為了更好地解決這一困難,本論文通過建立在對人工魚群算法和BP神經網絡算法的掌握及應用在時間序列預測上,提出了基于人工魚群算法和BP神經網絡算法的時間序列預測系統模型[1]。
無論是在自然科學,還是在社會科學領域的實際工作者和研究人員都要和一系列的觀測數據打交道,這些觀測數據隨時間變化而相互關聯,其排列順序與大小體現了不同時刻的觀測值之間的相互聯系,觀測值之間的這種依賴關系或相關性,表征了產生這些數據的現象、過程或系統的某些時間變化特征和規律。我們把這些按照時間順序產生和排列的觀測數據序列稱為時間序列。從系統意義上看,時間序列就是某一系統在不同時間(地點、條件等)的響應。在時間序列預測中,BP神經網絡是最常使用的網絡。BP網絡是一種非線性神經網絡,Robert Hecht Nielson已證明只有一個隱層的神經網絡,只要隱節點足夠多,就可以以任意精度逼近一個非線性函數[2]。
但是神經網絡方法有它的缺點,比如:
(1)計算速度慢(計算量大,學習算法不成熟,不同的算法針對不同的問題收斂才快些)。
(2)輸入信號與訓練信號相差加大時,可能導致結果完全錯誤(不同的區域可能有不同的極值)。
因此可以將人工魚群算法與BP神經網絡相結合。人工魚群(Artificial Fish-swarm Algorithm,AFSA)是一種基于模擬魚群行為的優化算法,是由李曉磊等于2002年提出的一種新型的尋優算法。AFSA是一種新型的思路,從具體的實施算法到總體的設計理念,都不同于傳統的設計和解決方法,但同時它又能與傳統方法相融合。因此,AFSA自提出以來,得到了國內外學者的廣泛關注,對算法的研究應用已經滲透到多個應用領域,并由解決一維靜態優化問題發展到解決多維動態組合優化問題。AFSA己經成為交叉學科中一個非?;钴S的前沿性研究問題[3]。
在基本人工魚群算法(AFSA)中,主要是利用了魚群的覓食、聚群和追尾行為,從構造單條魚的底層行為做起,通過魚群中各個體的局部尋優,達到全局最優值在群體中突現出來的目的。從目前對人工魚群算法的研究來看,絕大部分集中在如何應用AFSA解決實際問題。通過深入研究和實踐發現,AFSA雖然具有很多優良的特性,但它本身也還是存在一些問題,如隨著人工魚數目的增多,將會需求更多的存儲空間,也會造成計算量的增長[4];對精確解的獲取能力不夠,只能得到系統的滿意解域;當尋優的區域較大,或處于變化平坦的區域時,收斂到全局最優解的速度變慢,搜索效率劣化;算法一般在優化初期具有較快的收斂性,而后期卻往往收斂較慢。這些算法本身存在的問題,在一定程度上也影響了算法的實際應用[5]。
在當今已經有許多的研究方向,首先采用人工魚群算法擬合時間序列并求出大量的數據訓練神經網絡,彌補了歷史數據缺乏的問題;然后用訓練好的神經網絡代替傳統的最小二乘法擬合時間序列因素,從而求出預測值。仿真結果表明,此模型能夠有效地改善模型的擬合能力并提高預測精度。為實現更好的預測,有時采用神經網絡,但前饋神經網絡結構難以確定,運用BP算法時又極易陷入局部解。本文將改進人工魚群算法與BP算法相結合的IAFSA+BP算法,實現了人工魚群算法的全局搜索能力與BP算法的局部尋優性能的互補結合。將所設計的神經網絡利用MATLAB/SIMULINK進行傳感器控制系統的建模仿真實驗結果表明,該算法具有良好辨識效果[6]。

圖1 基于人工魚群算法和BP神經網絡的計算流程

圖2 基于BP神經網絡時間序列預測模型的部分程序
由于BP神經網絡存在對初始參數要求高、學習收斂速度慢,網絡性能差,優化權值時容易陷入局部極小值等缺陷。而人工魚群算法具有對初值和參數要求不高,克服局部極值、更好地協調全局和局部搜索能力等優點。因此,將人工魚群算法與BP算法相結合的混合算法訓練人工神經網絡,可實現兩種算法的取長補短。
構造人工魚個體模型是改進人工魚群算法優化訓練BP神經網絡關鍵,設人工魚群規模為N,每個人工魚看為一個前向神經網絡,任意兩人工魚個體的和(U1+U2)或差(U1-U2)其中i,j∈{0,1,.,N—l})仍看作不同神經網絡:待尋優神經網絡的參數設有權值矩陣[wij]和[vki],其中[wij]為第i個隱層神經元與第j個輸入神經元之間的權值,[vki]為第k個輸出神經元與第i個隱層神經元之間的權值;閾值向量[wio]和[vko],而[wio]為第i個隱層神經元的閾值,[vko]為第k個輸出神經元的閾值;其參數也隨著人工魚的迭代進化而不斷優化。
設神經網絡的輸入和輸出節點分別為S和P,而網絡隱層節點數一般取輸入輸出節點的平均值,以Sigmoid函數作為BP網絡的激勵函數,根據前向網絡計算算法求出相應每組輸入樣本的網絡輸出結果;把網絡輸出均方誤差的倒數作為改進人工魚群算法的適應函數(食物濃度)Y來指導人工魚群的進化。通過人工魚群算法的優化搜索來訓練神經網絡的權值和閾值,當神經網絡輸出均方誤差指標達到最小時,搜索出就是最優BP網絡,而該網絡相應的權值和閾值等參數也是最佳的。其算法的適應函數表示如下:

基于人工魚群算法的BP網絡訓練算法流程如下:
步驟一:輸入人工魚群的群體規模N,最大迭代次數number,人工魚的可視域VISUAL,人工魚的最大移動步長STEP,擁擠度因子δ。
步驟二:設置初始迭代次數num= 0,在控制變量可行域內隨機生成N個人工魚個體,形成初始魚群,即產生N組[wij],[wio],[vki],[vko]且各個分量均為[- 1,1]區間內的隨機數。
步驟三:計算初始魚群各人工魚個體當前位置的食物濃度值FC,并比較大小,取FC為最大值者進入公告板,將此魚賦值給公告板。
步驟四:各人工魚分別模擬追尾行為和聚群行為,選擇行動后FC值較大的行為實際執行,缺省行為方式為覓食行為。
步驟五:各人工魚每行動一次后,檢驗自身的FC與公告板的FC,如果優于公告板,則以自身取代之。
步驟六:中止條件判斷:判斷num是否已達到預置的最大迭代次數number,若是,則輸出計算結果(即公告板的FC值),否則num+= 1,轉步驟一。
基于人工魚群算法和BP神經網絡的計算流程圖如圖1所示。
本論文對建立時間序列預測的BP神經網絡的過程加以規范化,建立了基于BP神經網絡的時間序列預測的通用方法,并通過實例來檢驗該時間序列預測模型的預測能力。MATLAB神經網絡工具箱給出了兩種用于提高神經網絡推廣能力的方法,即正則化方法(Regularization)和提前停止(Early stopping)方法,本文的模型建立過程中,用到正則化方法,利用sim函數可以對訓練后的網絡進行仿真。sim函數的常用格式如下:
①[Y,Pf,AL E,perf]=sim(net,P,Pi,Ai,T)
②[Y,Pf,Af,E,perf]=sim(net,{Q,TS},Pi,Ai,T)
③[Y,Pf,Af,E,perf]=sim(net,Q,Pi,Ai,T)
在sim函數的調用形式①中,輸入net為神經網絡對象,P為網絡輸入,Pi為輸入延遲的初始狀態,Ai為層延遲的初始狀態,T為目標矢量。在函數返回值中,Y為網絡輸出,Pf為訓練終止時的輸入延遲的初始狀態,Af為訓練終止時的層延遲狀態,E為輸出和目標矢量之間的誤差,perf為神經網絡的性能值。該函數中的P、T、Pi、Y、E、Pf和Af等參量可以是單元數組或矩陣。sim函數的調用形式②③用于沒有輸入的神經網絡,其中,Q為批處理數據的個數,TS為神經網絡仿真的時間步數。此外,神經網絡工具箱還提供了postreg函數,該函數可對訓練后網絡的實際輸出(仿真輸出)和目標輸出做線性回歸分析,以檢驗神經網絡的訓練效果。使用MATLAB語言進行程序編寫,實現基于BP神經網絡的時間序列預測模型,程序片斷如圖2所示。
根據2.2中提出的方法,在MATLAB軟件中對算法進行編程與實施,得到的仿真結果如圖3所示。
其中,檢測誤差:SSE=8.0059e-004,rerror21=-0.0054。

圖3 仿真結果
本文給出了基于人工魚群算法的BP神經網絡的訓練模型,并形成了一種新的BP網絡訓練算法。從試驗結果比較分析可見:
(1)該方法具有較好的收斂性、初值不敏感和參數不敏感等特點;
(2)算法具有較快的收斂速度,算法收斂過程有明顯優勢。
(3)算法用于對時間序列的預測,其結果表明是可行的。如何更好地將覓食、聚群和追尾三種優化行為,體現在算法的處理上,以便使運算更加簡單,還需要進一步提高。
[1]李曉磊,邵之江,錢積新.一種基于動物自治體的尋優模式:魚群算法[J].系統工程理論與實踐,2002,22(11):32-38.
[2]張冬,明新國等.基于BP神經網絡和設備特性的工業設備備件需求預測[J].機械設計與研究,2010,26(1):72-77.
[3]康進,劉敬偉.非參數回歸估計與人工神經網絡方法的預測效果比較[J].統計與決策,2009(23):153-155.
[4]王西鄧.人工魚群算法的改進研究[D].西安:西安建筑科技大學,2007.
[5]李曉磊.一種新型的智能優化方法——人工魚群算法[D].杭州:浙江大學,2003.
[6]魏崇輝,金福祿,何亞群.基于粗糙集和神經網絡的空軍航材消耗預測方法[J].東南大學學報(自然科學版),2004,34(Sup):68-70.
[7]Martin T.Hagan Howard B.Demuth Mark H.Beale.神經網絡設計[M].戴葵,等譯.北京:機械工業出版社,2006.