張麗葉,謝文秀
(裝備指揮技術學院 裝備采辦系,北京 101416)
支持向量機(Support Vector Machines,SVM)是貝爾實驗室Vapnik 等人提出的一種新的統(tǒng)計學習方法,能夠解決小樣本、非線性、高維數(shù)和局部極小點等實際問題。標準SVM算法的復雜度雖然不依賴于輸入空間的維數(shù),但依賴于樣本數(shù)據(jù)的個數(shù),當樣本數(shù)據(jù)量較大時,求解過程所需計算資源很大,計算速度也慢。目前,解決該問題的方法較多,比較成功的是J.A.K.Suykens 等提出的最小二乘SVM算法(Least Squares Support Vector Machine,LS-SVM)。LS-SVM和標準SVM的主要區(qū)別在于將誤差平方和損失函數(shù)作為訓練集的經(jīng)驗損失,用等式約束代替不等式約束,把求解耗時的受約束的二次型規(guī)劃問題變成求解一組等式方程問題,降低了計算的復雜性,提高了求解速度。
但是,在對 LS-SVM的研究中我們發(fā)現(xiàn),LS-SVM在具體應用中存在一個突出問題,即如何設置LS-SVM的調(diào)整參數(shù)γ和核參數(shù)σ2(這兩個參數(shù)對LS-SVM的性能的影響非常關鍵)。目前在這一領域還沒有什么較好的方法,通常在具體使用時都是應用網(wǎng)絡搜索的方法,而這種方法相當耗時,程序運算一次往往需要10~20 min。有學者提出使用梯度下降法選擇LS-SVM的參數(shù)[1],但該方法受核函數(shù)必須可導的限制,且在搜索過程中容易陷入局部極小。也有學者嘗試用免疫算法來優(yōu)化LS-SVM的參數(shù)[2],以減少參數(shù)選擇的盲目性,提高LS-SVM的預測精度,但該方法實現(xiàn)較復雜。還有學者提出采用遺傳算法確定LS-SVM 參數(shù)[3],但是遺傳算法需要進行交叉(crossover)以及變異(mutation)操作,需要調(diào)整許多參數(shù),計算復雜且效率較低。粒子群算法是一種新型的基于群體智能的隨機優(yōu)化算法,同遺傳算法類似,也是一種基于群體的隨機搜索優(yōu)化工具,但是并沒有遺傳算法的交叉以及變異操作,而是粒子在解空間追隨最優(yōu)的粒子進行搜索,具有并行處理特征,魯棒性好、簡單容易實現(xiàn)、計算效率較高、能以較大的概率找到優(yōu)化問題的全局最優(yōu)解等優(yōu)點。目前已廣泛應用于函數(shù)優(yōu)化、神經(jīng)網(wǎng)絡訓練、模糊系統(tǒng)控制以及其他遺傳算法等應用領域。
本文嘗試應用粒子群算法來優(yōu)化LS-SVM的參數(shù)選擇問題,建立基于粒子群優(yōu)化參數(shù)的LS-SVM回歸預測模型(PSO_LS-SVM),并將其用于裝備研制費用預測。
粒子群優(yōu)化(Particle Swarm Optimization,PSO)是由Kennedy和Eberhari在1995年提出的一種基于群智能(Swarm Intelligence)的新的全局優(yōu)化進化算法[4],它源于鳥類捕食行為的模擬。其原理如下:
PSO 初始化為一群隨機粒子(隨機解),然后通過迭代找到最優(yōu)解。這些粒子在搜索空間中以一定的速度飛行,并根據(jù)粒子本身的飛行經(jīng)驗以及同伴的飛行經(jīng)驗對自己的飛行速度進行動態(tài)調(diào)整,即每個粒子通過統(tǒng)計迭代過程中自身的最優(yōu)值(pBest)和群體的最優(yōu)值(gBest)來不斷地修正自己的前進方向和速度大小,從而形成群體尋優(yōu)的正反饋機制。PSO算法就是這樣依據(jù)每個粒子對環(huán)境的適應度將個體逐步移到較優(yōu)的區(qū)域,并最終搜索、尋找到問題的最優(yōu)解。
假設在一個D 維的目標搜索空間中,有m個粒子組成一個群落,其中在第t次迭代時粒子i的位置表示為一個D 維向量i=1,2,…,m。換言之,每個粒子的位置就是一個潛在的解。將 xi帶入一個目標函數(shù)就可以計算出其適應值,根據(jù)適應值的大小衡量 xi的優(yōu)劣。第i個粒子的“飛翔”速度也是一個 D 維的向量,記為
開始執(zhí)行PSO算法時,首先,隨機初始化m個粒子的位置和速度;然后,通過迭代尋找最優(yōu)解,在每一次迭代中,粒子通過跟蹤兩個極值(pBest和gBest)來更新自己的速度和位置,記第i個粒子迄今為止搜索到的最優(yōu)位置為
整個粒子群迄今為止搜索到的最優(yōu)位置為
在第t+1次迭代計算時,粒子根據(jù)下列規(guī)則來更新自己的速度和位置[5]:
為了討論方便,設f(x)為最小化的目標函數(shù),則微粒i的當前最好位置由下式確定
群體中所有微粒所經(jīng)歷過的最好位置為pg(t),稱為全局最好位置。則:
式中:i=1,2,…,m;d=1,2,…,D;m為粒子數(shù),一般取20~40,其實對于大部分問題10個粒子已經(jīng)可以取得好的結(jié)果,不過對于比較難的問題或者特定類別的問題,粒子數(shù)可以取到100 或200個粒子的長度,這是由優(yōu)化問題,即問題解的長度決定的;c1和c2是兩個非負常數(shù),分別稱為自信度系數(shù)和互信度系數(shù),一般c1等于 c2并且范圍在0和4之間;r1和r2是介于[0,1]之間的隨機數(shù);w為慣性因子;為最大速度,如果當前對粒子的加速將導致它在某維的速度v 超過該維的最大速度 vmax,則該維的速度被限制為該維的最大速度vmax,它決定了粒子在解空間的搜索精度,如果 vmax太高,粒子可能會飛過最優(yōu)解,如果 vmax太小,粒子陷入局部搜索空間而無法進行全局搜索。粒子的位置向量被限制在范圍內(nèi),xmin、xmax由實際問題決定,vmax通常選為kxmax,其中[6]
迭代終止條件根據(jù)具體問題一般選為達到最大迭代次數(shù)或最小誤差要求為止。
應用第1節(jié)粒子群優(yōu)化的算法,建立基于PSO_LS-SVM的裝備研制費用預測模型,見圖1。
圖1 基于PSO_LS-SVM的裝備研制費用預測模型
應用PSO算法,對LS-SVM 兩個關鍵參數(shù)的選擇進行優(yōu)化的程序邏輯框圖如圖2所示。優(yōu)化步驟為:
第一步,PSO 參數(shù)初始化。設定粒子數(shù)m,最大迭代次數(shù)Tmax;由于LS-SVM 只有兩個關鍵參數(shù)γ和2δ,因此,d=1,2;設定c1和c2、c1較大時,會使粒子過多地在局部范圍徘徊,而 c2較大時會促使粒子過早收斂到局部最小值,為了平衡隨機因素的作用,本文c1和c2通常取2[7];r1和r2是介于[0,1]的隨機數(shù);設w為慣性因子,w較大時算法具有較強的全局搜索能力,w較小則算法傾向于局部搜索。本文將w 初始值設為0.9,并使其隨迭代次數(shù)的增加線性遞減至0.4,設[8]設定最大速度 vmax;隨機初始化粒子群中各個粒子位置和速度,即t=0,記
圖2 PSO_LS-SVM預測的程序邏輯框圖
第二步,計算每個粒子的適應值。粒子的適應度函數(shù)值越大,則粒子位置越好。這里,適應度函數(shù)定義為:分別為LSSVM 訓練輸出值和期望輸出值。
第三步,按式(1)、(2)更新粒子的速度和位置,再與群體中所有微粒所經(jīng)歷過的最好位置pg(t)進行比較,產(chǎn)生新種群x(t+1)。
第四步,檢查結(jié)束條件。若滿足,則結(jié)束尋優(yōu);否則t=t+1,轉(zhuǎn)至第二步。結(jié)束條件為尋優(yōu)達到最大迭代次數(shù)Tmax,或評價值小于給定精度。
第五步,把尋到的粒子最優(yōu)位置,即LS-SVM的最優(yōu)調(diào)整參數(shù)γ和最優(yōu)核參數(shù)σ2賦給LS-SVM模型。
第六步,用樣本數(shù)據(jù)對LS-SVM 進行訓練,利用改進的序列極小化方法求解。
本節(jié)以從公開出版物收集到的國外某類武器研制費用為例,在樣本數(shù)據(jù)(樣本數(shù)據(jù)見表1)準備好的基礎上,建立基于PSO_LS-SVM的某類武器研制費用預測模型,并對費用預測結(jié)果進行比較分析,檢驗所建預測模型的合理性,為其他裝備研制的研制費用預測建模提供思路和方法。
表1 國外某類武器性能參數(shù)與研制費用樣本數(shù)據(jù)表
采用Matlab7.0編制仿真程序,粒子群規(guī)模設為5,解空間為2 維,分別對應參數(shù)gam和RBF核參數(shù)sig2。取w 隨進化代數(shù)從0.9 線性遞減至0.4:為最大迭代次數(shù),這里取為300,加速因子 c1=c2=2;gam初始值為1,sig2初始值為1。
POS_LS-SVM算法的matlab核心程序任務包括:求每個樣本的輸出值;判斷得出的結(jié)果是否滿足要求,如滿足就結(jié)束,不滿足則計算參數(shù)增加值;求單個樣本最佳參數(shù)值;和原來的群最佳值比較。
1)確定參數(shù)。
采用PSO優(yōu)化的方法確定參數(shù),調(diào)用LS-SVM lab的train lssvm函數(shù)文件進行搜索調(diào)整,重復實驗5 000次,選擇效果最好的一次,得到確定的一組正規(guī)化參數(shù)gam=4.06和RBF核參數(shù)sig2=7.52。結(jié)果如圖3所示。
2)建立模型。
在確定正規(guī)化參數(shù)gam和RBF核參數(shù)sig2之后,即可建立國外某類武器研制費用PSO_LS-SVM回歸模型,即程序:
% PSO_LS-SVM 回歸模型,只需輸入X,即可計算出預測值Yt
3)對預測結(jié)果進行分析,檢驗模型的性能。
本例訓練結(jié)果和測試結(jié)果見表2、3的LS-SVM模型和PSO_LS-SVM模型訓練和測試結(jié)果對比表。
圖3 POS_LS-SVM算法中gam和sig2選值圖
表2 PSO_LS-SVM模型訓練和測試結(jié)果
表3 LS-SVM模型和PSO_LS-SVM模型訓練和測試結(jié)果對比表
表3對國外某類武器費用的實際值、LS-SVM預測值和PSO_LS-SVM 預測值進行了比較,目的是輸入測試樣本驗證訓練模型的應用能力。
LS-SVM計算結(jié)果常用的評價指標有:平均絕對誤差(MAE)、平方差(SSE)、均方差、平均相對誤差(MAPE)、根方差或標準差(RMSE)、相對誤差平方和(ESE)。本文采用MAPE和ESE 進行結(jié)果評估。
從預測結(jié)果可以看出,在同樣樣本條件下,將計算結(jié)果帶入平均相對誤差(MAPE)和相對誤差平方和(ESE)的計算公式中,得出如下結(jié)果:采用LS-SVM模型訓練測試的預測結(jié)果評價指標MAPE=0.018 0,綜合評估指標ESE=0.002 5;采用PSO_LS-SVM模型訓練測試的預測結(jié)果評價指標MAPE=0.014 7,綜合評估指標ESE=0.001 4。此外,采用LS-SVM模型確定訓練參數(shù),程序運行時間高達約15 min之久,而采用PSO_LS-SVM模型確定訓練參數(shù),程序運行時間只需3~4 min。
從以上分析可以得出如下結(jié)論:采用粒子群優(yōu)化算法與目前普遍應用的通過全面搜索的方法確定LS-SVM參數(shù)的方法相比,粒子群優(yōu)化算法的參數(shù)選擇具有更明確的理論指導,PSO_LS-SVM預測方法的預測精度更高,而且訓練參數(shù)尋優(yōu)速度也快,建立的PSO_LS-SVM費用預測模型是有效的,可以將此模型推廣到其他裝備研制費用的預測中。
在對目前LS-SVM兩個關鍵參數(shù)的確定方法進行對比分析之后,得出采用粒子群優(yōu)化算法對確定最小二乘支持向量機的參數(shù)更具有優(yōu)勢。因此,提出應用PSO算法優(yōu)化LS-SVM參數(shù)(γ,σ2),建立了基于PSO_LS-SVM裝備研制費用預測模型,研究了模型計算的程序流程和預測步驟,并以國外某類武器為例,進行了實例驗證,最后將POS_LS-SVM和LS-SVM費用預測值進行了對比,通過對比得出:在同樣樣本情況下,應用LS-SVM方法進行國外某類武器研制費用預測具有良好的預測精度;而建立的PSO_LS-SVM費用預測模型精度更高,計算速度更快。
因此,基于以上理論和算法建立的PSO_LSSVM裝備研制費用預測模型具有很高的應用價值。
[1]CHAPELLE O,VAPNIK V.Choosing multiple parameters for support vector machines[R].NewYork∶AT&T Research Labs,2001.
[2]吳宏曉,侯志儉.基于免疫支持向量機方法的電力系統(tǒng)短期負荷預測[J].電網(wǎng)技術,2004,28(23)∶47-51.
[3]劉志偉.艦船裝備建造費預測研究[D].北京∶裝備指揮技術學院,2008∶55-60.
[4]EBERHART R,KENNEDY J.A new optimizer using particle swarm theory[C]//Proc.of the Sixth International Symposium on Micro Machine and Human Science.Nagoya,Japan,1995∶39-43.
[5]SHI Y,EBERHART R.A modified particle swarm optimizer[C]//IEEE World Congress on Computation Intelligence.1998∶69-73.
[6]BERGH F,ENGELBRECHT A.A new locally convergent particle swarm optimizer[C]//Proc.of IEEE Int.Conf.on Systems,Man and Cybernetics.Tunisia∶IEEE.2002∶96-107.
[7]馬文曉,白曉民,沐連順.基于人工神經(jīng)網(wǎng)絡和模糊推理的短期負荷預測方法[J].電網(wǎng)技術,2003,27(5)∶29-32.
[8]張紅梅.基于支持向量機的電力系統(tǒng)短期負荷預測研究[D].南京∶河海大學,2006∶53.