楊宜霖 劉臣宇 薛永亮 馬中原 孫偉奇
(1.海軍航空大學(xué)青島校區(qū) 青島 266041)(2.海軍航空大學(xué) 煙臺(tái) 264001)
航材供應(yīng)直接影響著航空兵部隊(duì)?wèi)?zhàn)斗力的形成、維持和提高,是提高戰(zhàn)斗出動(dòng)率的基礎(chǔ),航材預(yù)測對航材供應(yīng)有著重要影響[1~2]。建立一個(gè)合理的航材預(yù)測模型合理預(yù)測航材消耗數(shù)量是提高航材保障效率的有效途徑。對于許多型號的飛機(jī)存在裝備時(shí)間短、數(shù)量少、執(zhí)行高強(qiáng)度任務(wù)次數(shù)少等原因間接的導(dǎo)致航材消耗數(shù)據(jù)體量小,涵蓋信息量不足,航材預(yù)測模型難以有效預(yù)測航材消耗。針對小樣本的航材消耗數(shù)據(jù)采用合理的預(yù)測模型進(jìn)行精確地預(yù)測航材消耗具有很強(qiáng)的現(xiàn)實(shí)意義。
支持向量機(jī)是在維理論和結(jié)構(gòu)風(fēng)險(xiǎn)最小化原理基礎(chǔ)上引入核函數(shù),利用核函數(shù)把輸入空間數(shù)據(jù)映射到一個(gè)高維的特征向量空間來解決低維復(fù)雜問題。在數(shù)據(jù)預(yù)測等問題上有著廣泛的應(yīng)用,支持向量機(jī)預(yù)測模型不需要先驗(yàn)知識,且能夠克服機(jī)器學(xué)習(xí)中部分存在的維數(shù)災(zāi)難問題、局部極小值問題以及過學(xué)習(xí)問題[3~6]。但支持向量機(jī)的應(yīng)用上存在核函數(shù)參數(shù)選擇不合理以及回歸非線性問題引入懲罰參數(shù)取值不合理的問題,如果出現(xiàn)取值不合理將影響預(yù)測結(jié)果導(dǎo)致不同程度的過學(xué)習(xí)或者欠學(xué)習(xí)問題[7~9]。人工免疫算法是 20世紀(jì) 70年代 Jerne開創(chuàng)的,經(jīng)過多年發(fā)展人工免疫算法已經(jīng)在信息安全、機(jī)器學(xué)習(xí)與數(shù)據(jù)挖掘等領(lǐng)域得到廣泛應(yīng)用,在解決應(yīng)用在數(shù)據(jù)優(yōu)化上有著獨(dú)特的優(yōu)勢[10]。利用人工免疫算法對支持向量機(jī)航材預(yù)測模型參數(shù)進(jìn)行優(yōu)化可以有效地增加預(yù)測模型的擬合效果有助于預(yù)測模型達(dá)到預(yù)測精度。
將航材消耗數(shù)據(jù)分為訓(xùn)練樣品和測試樣品。設(shè)航材測試樣品預(yù)測值zi,航材消耗數(shù)據(jù)為(xi,yi),=1,2,…,n。xi為訓(xùn)練樣本,yi為測試樣品實(shí)際消耗值。利用支持向量機(jī)的非線性回歸算法模擬訓(xùn)練尋找最優(yōu)一個(gè)函數(shù)實(shí)現(xiàn)訓(xùn)練樣本與預(yù)測值之間的轉(zhuǎn)化:zi=φ(xi)=w×xi-b[11]。給定一個(gè)誤差范圍ε(ε>0)的條件下,計(jì)算航材消耗預(yù)測值與實(shí)際消耗值得誤差,誤差小于ε不計(jì)入損失,誤差大于ε記入損失,即不敏感損失函數(shù)。故航材消耗預(yù)測的風(fēng)險(xiǎn)最小化轉(zhuǎn)化為minφ(w,y,z,ε)=。不能直接求解方程,引入松馳因ξ≥0,ξ*≥0和參數(shù)C(C>0,為常數(shù)表示對超出誤差ε的樣本的懲罰程度),C的取值直接影響擬合結(jié)果,C的取值根據(jù)擬合要求確定[11]。對上式進(jìn)行轉(zhuǎn)換,獲得簡單的對偶形式,相應(yīng)的約束條件問題可轉(zhuǎn)化為一個(gè)二次規(guī)劃問題。
引入Lagrange乘子α,α*,建立拉格朗日函數(shù)以及約束條件,同時(shí)引入ηi,約束乘子α,α*保證假設(shè)變量的最優(yōu)形式[12],Lagrange函數(shù)為
綜上所述航材預(yù)測的支持向量機(jī)回歸方程:
人工免疫系統(tǒng)受生物免疫學(xué)說啟發(fā),模仿生物免疫系統(tǒng)利用了有限的資源應(yīng)對病毒入侵體現(xiàn)了極強(qiáng)的全局搜索能力[13]。人工免疫系統(tǒng)的原理是以待解決問題為抗原,待驗(yàn)證數(shù)據(jù)為抗體進(jìn)行匹配,抗體與抗原的結(jié)合程度叫做親和力,以親和力作為導(dǎo)向?qū)贵w進(jìn)行有效的克隆變異重組,最終達(dá)到親和力的成熟實(shí)現(xiàn)最優(yōu)解。
人工免疫優(yōu)化參數(shù)一般流程為
1)確定抗原、抗體,抗體抗原編組。
2)確定親和度計(jì)算函數(shù),進(jìn)行抗體親和度評估,設(shè)置輸出條件。
3)判斷親和度是否符合條件,符合條件直接步驟8。
4)根據(jù)親和力建立抗體記憶庫。
5)選擇親和度高的抗原進(jìn)行克隆變異擴(kuò)增重組。
6)抑制親和度低的抗體,克隆抗體經(jīng)歷親和度成熟過程。
7)更新抗體記憶庫,返回步驟2)。
8)輸出結(jié)果。
由于支持向量機(jī)的懲罰參數(shù)C與徑向基核函數(shù)參數(shù)σ的取值對預(yù)測結(jié)果有重要影響且C的取值范圍較大(0,+∞)。在巨大的取值范圍上以往的做法是依據(jù)經(jīng)驗(yàn)縮小取值范圍固定步長枚舉方法進(jìn)行對比費(fèi)時(shí)較長且說服力不足從而降低預(yù)測模型的預(yù)測合理性。很多支持向量機(jī)模型采取網(wǎng)格搜索算法,遺傳算法及粒子群算法來優(yōu)化參數(shù)以達(dá)到擬合效果[14~16]。雖然這些算法一般情況下會(huì)得出相應(yīng)的參數(shù)但以上算法往往會(huì)造成局部最優(yōu)。人工免疫算法有較好的全局搜索能力,選用人工免疫算法進(jìn)行參數(shù)優(yōu)化在一定程度上能夠有效避免。
人工免疫算法優(yōu)化基于支持向量機(jī)航材預(yù)測模型參數(shù)流程如圖1,具體步驟為
1)確定抗原與抗體,抗體為C(C>0),σ(σ>0)參數(shù),抗原為目標(biāo)函數(shù)。
2)初始化參數(shù)在參數(shù)范圍內(nèi)隨機(jī)產(chǎn)生N個(gè)數(shù)作為初代抗體。
3)計(jì)算擬合值(人工免疫算法優(yōu)化可以通過親和度的設(shè)定來搜索符合要求的參數(shù),由于數(shù)據(jù)變化幅度較大誤差范圍設(shè)置過小容易失去意義)。抗體與抗原無法直接進(jìn)行匹配,將初代抗體代入支持向量機(jī)內(nèi)利用訓(xùn)練集進(jìn)行擬合,擬合值為該參數(shù)下的預(yù)測值。
4)計(jì)算親和度。擬合值代入相對誤差公式求取的相對誤差即定義為親和度。預(yù)測相對誤差公式為親和度函數(shù)。判斷親和度是否符合要求,符合要求停止計(jì)算。
5)克隆增值,高頻變異。選出親和度高的抗體進(jìn)行增值,親和度越高的增值數(shù)量越多;高頻變異可以將抗體向親和度高的方向進(jìn)化,變異強(qiáng)度與親和度成反比,確保了抗體的多樣性。
6)更換重組,保留高親和度的抗體,隨機(jī)生成新的抗體將親和度低的替換。這樣能夠使進(jìn)化過程中擴(kuò)大全局搜索的能力加快進(jìn)化速度。
7)返回步驟3)中。
圖1 人工免疫算法優(yōu)化基于支持向量機(jī)航材預(yù)測模型參數(shù)流程圖
某項(xiàng)航材的2004~2005年度平時(shí)逐季供應(yīng)量如表1。
表1 2004~2005年度某項(xiàng)航材消耗數(shù)據(jù)
該型航材樣本時(shí)間跨度較短且數(shù)據(jù)樣本方差較大呈現(xiàn)隨機(jī)狀態(tài),以該數(shù)據(jù)為學(xué)習(xí)樣本。該首先借助Matlab軟件進(jìn)行經(jīng)人工免疫優(yōu)化支持向量機(jī)參數(shù)模型仿真學(xué)習(xí)。經(jīng)過學(xué)習(xí)參數(shù)值輸出c=210,σ=104。以2006年的樣本為測試樣本。代入測試樣本進(jìn)行航材消耗預(yù)測結(jié)果如圖2。
圖2 2006年某型航材預(yù)測結(jié)果
表2 測試樣本預(yù)測結(jié)果相對誤差
由于數(shù)據(jù)浮動(dòng)較大從圖2中可以看到預(yù)測結(jié)果基本符合實(shí)際情況,表2為圖2數(shù)據(jù)的相對誤差表,可以看出誤差還是比較大的。該類型航材消耗數(shù)據(jù)呈現(xiàn)隨機(jī)狀態(tài),加上樣本數(shù)據(jù)較少,預(yù)測難度較大。參考文獻(xiàn)[17]未改進(jìn)支持向量機(jī)航材消耗預(yù)測對該類型航材消耗預(yù)測誤差在23%~39%,通過對比可以看出該模型對航材預(yù)測相對誤差比較小能夠?yàn)閿?shù)據(jù)變化較大的小樣本航材預(yù)測提供幫助。
經(jīng)過人工免疫算法對參數(shù)的優(yōu)化使得基于支持向量機(jī)航材預(yù)測模型能夠給數(shù)據(jù)變化較大的小樣本航材消耗預(yù)測提供有效的預(yù)測結(jié)果,使支持向量機(jī)參數(shù)選擇更加合理。針對其他更具針對性的支持向量機(jī)航材預(yù)測模型參數(shù)同樣也可以采用人工免疫算法進(jìn)行優(yōu)化。但從結(jié)果上看對實(shí)現(xiàn)精確保障該預(yù)測結(jié)果尚有不足,受限于數(shù)據(jù)變化較大且樣本體量較小單純利用航材數(shù)據(jù)分析預(yù)測很難給出精確的預(yù)測值。需要針對不同航材的實(shí)際情況通過增加其他影響數(shù)據(jù)的影響對支持向量機(jī)模型進(jìn)行新一步的改進(jìn)優(yōu)化,才能夠給相似類型航材提供更加精確的航材預(yù)測值。