曾 濤,趙 嵐
(1.燕山大學(xué)信息化處,河北 秦皇島 066004;2.秦皇島職業(yè)技術(shù)學(xué)院 機(jī)電工程系,河北 秦皇島 066004)
20世紀(jì)90年代,Vapnik等在統(tǒng)計(jì)學(xué)習(xí)理論(SLT)的基礎(chǔ)上提出一種新型機(jī)器學(xué)習(xí)方法——支持向量機(jī) (Support Vector Machine,SVM)。與神經(jīng)網(wǎng)絡(luò)等學(xué)習(xí)方法相比,支持向量機(jī)基于結(jié)構(gòu)風(fēng)險最小化原則,具有小樣本學(xué)習(xí)、泛化能力強(qiáng)等特點(diǎn),能有效地避免過學(xué)習(xí)、局部極小點(diǎn)以及“維數(shù)災(zāi)難”等問題[1,2]。目前,SVM 的實(shí)用算法研究、設(shè)計(jì)和實(shí)現(xiàn)都已取得了豐碩的成果,并且廣泛應(yīng)用于故障診斷、數(shù)據(jù)挖掘、文本識別[3]等領(lǐng)域。但是支持向量機(jī)的參數(shù)選擇決定了其學(xué)習(xí)性能和泛化能力,由于在參數(shù)的選擇范圍內(nèi)可選擇的數(shù)量是無窮的,在多個參數(shù)中盲目搜索最優(yōu)參數(shù)是需要極大的時間代價,并且很難逼近最優(yōu)。針對支持向量機(jī)的參數(shù)選擇問題,很多學(xué)者進(jìn)行了大量的研究,文獻(xiàn)[4]在分析了幾種評估SVM性能的方法之后,利用梯度下降法對SVM參數(shù)進(jìn)行優(yōu)化,取得了較好的效果,但是梯度下降法容易陷入局部極小值。文獻(xiàn)[5]利用Bootstrap方法建立的支持向量機(jī)的評估函數(shù),利用模擬退火算法對參數(shù)進(jìn)行了優(yōu)化。文獻(xiàn)[6,7]分別利用蟻群優(yōu)化算法與小生境遺傳算法對SVM核參數(shù)進(jìn)行優(yōu)化,都取得了較好的結(jié)果。
蜂群算法是建立在蜜蜂自組織模型和群體智能基礎(chǔ)上的一種非數(shù)值優(yōu)化計(jì)算方法[8]。文獻(xiàn)[9]對蜂群算法在解決組合優(yōu)化問題中的原理和應(yīng)用方法,并將其應(yīng)用于旅行商問題 (TSP)等問題。本文將人工蜂群算法應(yīng)用于支持向量機(jī)的參數(shù)優(yōu)化當(dāng)中,對其應(yīng)用方法進(jìn)行了詳細(xì)的闡述,并利用UCI數(shù)據(jù)庫中的數(shù)據(jù)對其進(jìn)行了仿真,最終將其用于模擬電路故障診斷當(dāng)中,取得了較好的效果。
支持向量機(jī)就是尋找一個最優(yōu)分類超平面,即最大間隔超平面。訓(xùn)練集為非線性時,通過一個非線性函數(shù)φ(x)將訓(xùn)練集數(shù)據(jù)x映射到一個高維線性特征空間,在這個維數(shù)可能為無窮大的線性空間中構(gòu)造最優(yōu)分類超平面,并得到分類器的決策函數(shù)。
對于二類分類情況,訓(xùn)練樣本集為
為了找到最優(yōu)超平面,必須求解下列二次優(yōu)化問題:
式中:*表示內(nèi)積;ω為系數(shù)向量;ξi≥0為考慮到存在一些樣本不能被正確分類,為了保證分類的正確性,而引入的松弛變量;C稱為懲罰因子,通過改變懲罰因子可以在分類器的泛化能力和誤分類率之間進(jìn)行折衷。
其對偶問題為一個凸二次規(guī)劃問題,具有全局最優(yōu)解,從而避免了局部極小點(diǎn)的問題。
最終可以得到?jīng)Q策函數(shù):
構(gòu)造這一類決策函數(shù)的學(xué)習(xí)機(jī)器稱為支持向量機(jī)。支持向量機(jī)的結(jié)構(gòu)示意圖如圖1所示[10]。
圖1 支持向量機(jī)結(jié)構(gòu)圖Fig.1 Structure block of support vector machine
支持向量機(jī)的性能依賴于多個參數(shù),其中懲罰因子C,控制間隔的最大化與分類誤差之間的折衷,C越大,則對于錯分樣本的懲罰越大。其他的參數(shù)出現(xiàn)在非線性映射函數(shù)中的核參數(shù),影響樣本在高維特征空間的分布情況,如RBF函數(shù)中的γ,核參數(shù)的改變實(shí)際上隱含著改變了映射函數(shù),即改變了特征空間的VC維,從而影響置信范圍,最終影響結(jié)構(gòu)風(fēng)險范圍。為了簡單,將它們統(tǒng)稱為核參數(shù),這樣就可以將它們在一個統(tǒng)一的框架內(nèi)處理。
人工蜂群算法 (Artificial Bees Colony,ABC)是近年來根據(jù)自然界密封群體的搜集食物,即采蜜過程的模擬而提出的一種群算法。蜂群采蜜行為主要包括3個基本部分:蜜源、采蜜蜂、待工蜂。此外引入3種基本的行為模式:搜索蜜源、為蜜源招募和放棄蜜源。
(1)蜜源。蜜源代表各種可能的解。
(2)采蜜蜂。采蜜蜂攜帶了具體的蜜源信息,這些信息包括蜜源與蜂巢的距離、蜜源方向、蜜源的收益度;采蜜蜂通過搖擺舞與其他蜜蜂分享這些信息,按一定比例,部分成為引領(lǐng)蜂。
(3)待工蜂。待工蜂可以分為偵查蜂、跟隨蜂。偵查蜂搜索蜂巢附件的新蜜源。跟隨蜂在蜂巢內(nèi)等待,通過分享采蜜蜂的信息,尋找蜜源。開始時,待工蜂沒有蜂巢附近蜜源的信息,因此有兩種選擇:(a)待工蜂可以作為偵察蜂,由于某一內(nèi)部激勵或可能的外在因素,開始自發(fā)地搜尋在蜂巢附近的蜜源。(b)在觀察到其他蜜蜂搖擺舞后,它可被招募并按照獲得的信息尋找蜜源。待工蜂發(fā)現(xiàn)新的蜜源后,記住蜜源的位置,并迅速開始采蜜,此時,待工蜂變成了采蜜蜂。蜜蜂采蜜回到蜂箱卸蜂后,有以下幾種選擇:(a)放棄蜜源,成為待工的跟隨蜂;(b)返回同一蜜源前,跳搖擺舞招募蜂巢其他伙伴。(c)不招募其他蜜蜂,繼續(xù)采蜜。初始時刻,蜜蜂均無任何先驗(yàn)知識,都是偵察蜂。隨機(jī)搜索到食物源后,偵察蜂返回蜂巢的舞蹈區(qū),根據(jù)食物源收益度的相對大小,偵察蜂可以轉(zhuǎn)變?yōu)樯鲜鋈魏我环N蜜蜂,原則如下:
(1)所采集食物源的收益度相對很低時,它可以再次成為偵察蜂搜尋附近的食物源。其轉(zhuǎn)變結(jié)果是放棄上次采集的食物源。
(2)所采集食物源的收益度排名小于臨界值(如排名在后50%)時,它可以在觀察完舞蹈后成為跟隨蜂,并前往相應(yīng)的食物源采蜜。
(3)所采集食物源的收益度排名高于臨界值時,它成為引領(lǐng)蜂,繼續(xù)在同一食物源采蜜,并在舞蹈區(qū)招募更多的蜜蜂采集相應(yīng)食物源。
ABC算法正是受此啟發(fā),該算法基本思路如下:在循環(huán)開始時,所有的人工蜂均在蜂巢。在搜索過程中每個人工蜂都做局部的搜索,從而逐步增加可行解。在每一步的搜索過程中,其中的一個或者多個最優(yōu)解都被保存下來,最終通過決策分析得到最優(yōu)解。根據(jù)人工蜂群算法和支持向量機(jī)參數(shù)尋優(yōu)的特點(diǎn),其基本思路如下:
Step 1:確定人工蜂群的群體數(shù)量,即蜂群中蜜蜂總數(shù),設(shè)為B。確定偵查蜂占群體數(shù)量的比例,一般大于10%,易于收斂,偵查蜂數(shù)量為SN。
Step 2:開始時刻,所有蜜蜂均成為偵查蜂,在給定范圍內(nèi)隨機(jī)確定B個蜜源,即隨機(jī)選擇B個 (C,γ)的組合參數(shù)。
Step 3:計(jì)算這B個蜜源的品質(zhì),初始蜜源的品質(zhì)由其單點(diǎn)的分類準(zhǔn)確率決定。對于蜜源品質(zhì)低的情況,偵查蜂可以繼續(xù)作為偵查蜂繼續(xù)搜索蜜源,也可以作為跟隨蜂去較高品質(zhì)的蜜源進(jìn)行采蜜;根據(jù)蜜源品質(zhì),跟隨蜂按照一定的比例跟隨到各個蜜源進(jìn)行采蜜。
Step 4:跟隨蜂到達(dá)各個蜜源后,在蜜源附近的連續(xù)區(qū)域進(jìn)行采蜜,以確定在這一蜜源的最優(yōu)品質(zhì)點(diǎn)。其中蜜源附近各個蜜源點(diǎn)的確定方式采用下式確定:
式中:xmax和xmin決定了要搜索的蜜源區(qū)域范圍。
Step 5:蜂群回到蜂巢后,計(jì)算各個蜜源的品質(zhì),重新分配各個蜜源的采蜜蜂數(shù)量。計(jì)算蜜源品質(zhì)的方法:a.蜜源中最好的品質(zhì)點(diǎn),即其中最優(yōu)的分類準(zhǔn)確率;b.蜜源區(qū)域所得的品質(zhì)平均值,即所有分類準(zhǔn)確率的平均值。
循環(huán)上述步驟,最終得到最優(yōu)的蜜源點(diǎn),即得到最優(yōu)的SVM參數(shù)。
首先,利用 UCI[11]數(shù)據(jù)庫中的 Ionosphere,Haberman,Dermatology和Vehicle數(shù)據(jù)對本方法進(jìn)行仿真驗(yàn)證。其中核函數(shù)選擇RBF核函數(shù),即需要選擇的核參數(shù)位懲罰參數(shù)C和寬度參數(shù)γ。在Matlab環(huán)境下對其進(jìn)行仿真。人工蜂群的參數(shù)選擇如下:蜂群數(shù)量為100,偵查蜂的比例為20%。文中同時利用網(wǎng)格搜索的方式進(jìn)行參數(shù)的搜索,以和人工蜂群搜索結(jié)果進(jìn)行對比,其中參數(shù)范圍選擇為 C=(2-5,2-4,…,28),γ =(2-5,2-4,…,25)。最終仿真結(jié)果如表1所示。
表1 UCI數(shù)據(jù)仿真結(jié)果Tab.1 Simulation results of UCI data
由仿真結(jié)果表明,人工蜂群算法相對于網(wǎng)格搜索的方法能夠較好地對支持向量機(jī)參數(shù)進(jìn)行優(yōu)化。
將人工蜂群優(yōu)化參數(shù)的支持向量機(jī)用于模擬電路的故障診斷。本文采用ITC’97[12]中的Elliptical濾波器標(biāo)準(zhǔn)電路對本文方法進(jìn)行仿真驗(yàn)證。圖2所示為文中用到的Elliptical濾波器電路原理圖。表2所示為電路中各個元器件的標(biāo)稱值。在Pspice環(huán)境下對電路進(jìn)行正常狀態(tài)和故障狀態(tài)的仿真。表3給出了設(shè)置故障的方式,這里均采用原件的軟故障,即元器件標(biāo)稱值上升或下降50%。
圖2 Elliptical濾波器原理圖Fig.2 Schematic diagram of Elliptical filter
表2 元器件標(biāo)稱值Tab.2 Nominal value of components
表3 電路故障設(shè)置方式Tab.3 Setting mode of circuit fault
對電路正常狀態(tài)和所有設(shè)置故障狀態(tài)進(jìn)行30次Monte-Carlo分析,得到輸出信號。這里采用3個運(yùn)放的輸出信號作為故障診斷信號。對采集信號進(jìn)行小波變換以進(jìn)行特征提取,利用信號的各頻段的頻譜能量作為診斷特征進(jìn)行診斷。通過小波特征提取,得到330個樣本,每類30個樣本,這里利用每類中的20個樣本訓(xùn)練,另外10個樣本作為驗(yàn)證樣本。
利用ABC-SVM對電路得到的特征樣本進(jìn)行訓(xùn)練和驗(yàn)證。仿真結(jié)果如下:C=95.616 9,γ=0.796 7,分類準(zhǔn)確率達(dá)到99.09%。以上結(jié)果表明,基于人工蜂群算法優(yōu)化參數(shù)的支持向量機(jī)能夠較好地實(shí)現(xiàn)對模擬電路的故障診斷。
針對支持向量機(jī)中的參數(shù)優(yōu)化問題,本文引入了人工蜂群算法。利用人工蜂群算法的全局優(yōu)化特性對支持向量機(jī)的參數(shù)進(jìn)行了有效的選擇。最終將人工蜂群支持向量機(jī)用于模擬電路故障診斷,有效得到了故障分類器的最優(yōu)參數(shù),從而提高了模擬電路故障診斷準(zhǔn)確率。但是本文中只是利用人工蜂群算法對支持向量機(jī)的參數(shù)進(jìn)行了選擇,由于參數(shù)和特征選擇是密切相關(guān)的,因此對其進(jìn)行聯(lián)合優(yōu)化是以后的研究方向。
[1]張倩,楊耀權(quán).基于支持向量機(jī)核函數(shù)的研究[J].電力科學(xué)與工程,2012,25(5):42-45.Zhang Qian,Yang Yaoquan.Research on the kernel function of support vector machine[J].Power Science and Engineering,2012,25(5):42-45.
[2]祖文超,李紅君,苑津莎.基于糾錯能力的SVM在變壓器故障診斷的應(yīng)用[J].電力科學(xué)與工程,2012,28(11):39-43.Zu Wenchao,Li Hongjun,Yuan Jinsha.Application of transformer fault diagnosis based on the error-correcting codes capability of SVM[J].Power Science and Engineering,2012,28(11):39-43.
[3]Wang T Y,Chiang H M.Fuzzy support vector machine for multi-class text categorization[J].Information Processing and Management,2007,43:914-929.
[4]Chapelle O,Vapnik V,Bousquet O,et al.Choosing multiple parameters for support vector machines[J].Machine Learning,2002,(46):131-159.
[5]趙春秀,周輝仁,劉春霞.基于SA和Bootstrap的LSSVM參數(shù)優(yōu)選及應(yīng)用[J].統(tǒng)計(jì)與決策,2008,(15):25-28.
[6]劉春波,王鮮芳,潘豐.基于蟻群優(yōu)化算法的支持向量機(jī)參數(shù)選擇及仿真[J].中南大學(xué)學(xué)報 (自然科學(xué)版),2008,39(6):1309-1313.Liu Chunbo,Wang Xianfang,Pan Feng.Parameters selection and stimulation of support vector machines based on ant colony optimization algorithm[J].Journal of Central South University(Science and Technology),2008,39(6):1309-1313.
[7]朱寧,馮志剛,王祁.基于小生境遺傳算法的支持向量機(jī)分類器參數(shù)優(yōu)化[J].南京理工大學(xué)學(xué)報 (自然科學(xué)版),2009,33(1):16-20.Zhu Ning,F(xiàn)eng Zhigang,Wang Qi.Parameter optimization of support vector machine for classification using niche genetic algorithm[J].Journal of Nanjing University of Science and Technology(Nature Science),2009,33(1):16-20.
[8]胡中華,趙敏.基于人工蜂群算法的TSP仿真[J].北京理工大學(xué)學(xué)報,2009,29(11):978-982.Hu Zhonghua,Zhao Min.Simulation on traveling salesman problem(TSP)based on artificial bees colony algorithm[J].Journal of Beijing Institute of Technology,2009,29(11):978-982.
[9]Teodorovic D,Lucic P,Markovic G,Dell'Orco M.Bee colony optimization:principles and applications[C],2006:151-156.
[10]Vapnik.統(tǒng)計(jì)學(xué)習(xí)理論[M].許建華,張學(xué)工譯.北京:電子工業(yè)出版社,2004.
[11]Blake C L,Merz C J.UCI repository of machine learning databases.Univ.Clifornia,Dept.Inform.Comput.Sci.,Irvine,1998.
[12]Kondagunturi R,Bradley E,Maggard K,et al.Benchmark circuits for analog and mixed-signal testing[C].1999.