林香亮,袁瑞,孫玉秋,王超,陳長勝
(長江大學信息與數學學院,湖北 荊州 434023)
20世紀90年代,俄羅斯數學家Vapnik等[1]提出了支持向量機(Support Vector Machines,SVM)[2,3]的概念:支持向量機以統計學習理論(Statistical Learning Theory,SLT)[4,5]為基礎,基于結構風險最小化(Structural Risk Minimization,SRM)[6]原理建立數據模型,為解決有限數據樣本情況下的統計模式識別奠定了堅實的基礎。與傳統機器學習方法相比,該方法具有結構簡單、適應性好、全局最優、訓練速度快和泛化能力強等諸多優勢。下面,筆者簡要回顧了傳統支持向量機的發展歷史與基本理論,介紹了支持向量機的改進算法,系統總結了支持向量機在分類與回歸問題中的具體應用實例及其優勢。

圖1 支持向量機原理
支持向量機的基本思想如圖1所示,實心點和空心點分別代表2類數據樣本;H代表分類超平面;H1和H2分別代表數據樣本中離H最近且平行于H的面,H1和H2之間的距離稱為分類間隔(Margin)。H面不但能將H1和H2這2類樣本正確分開,而且使H1和H2之間的分類距離最大,在確保結構風險最小化的情況下,真正的降低了風險。H1和H2上的數據樣本點就叫做支持向量(Support Vector)。
假設給定樣本數據為(xi,yi),i=1,2,…,l,其中xi∈Rn,yi∈{-1,+1}。n維空間中的線性判別式為:
f(x)=(m*xi)+n
分類超平面方程為:
(m*xi)+n=0
其中,m為權重向量;n為偏置向量。
該約束條件可引入 Lagrange(拉格朗日)函數:
則可得出對偶問題:
進而,可得到最優分類函數:

以上解決的問題是線性可分的。但在實際應用中,遇到的大多數問題是非線性可分問題,因此支持向量機的主要思想就是通過非線性變換將樣本數據映射到高維的特征向量空間(Hilbert空間)中,在高維特征向量空間中求得最優分類超平面,再用變換后的內積運算重復上述過程。依據統計學習理論,假設k(x,y)為內積函數,即核函數(Kernel Function),用核函數代替決策函數,即:
在求解過程中常用的算法有塊算法(Chunking Algorithm)、分解算法(Decomposing)、增量算法(Incremental Algorithm)、序列最小優化算法(Sequential Minimal Optimization,SMO)和多類分類算法(Multi-category Classification Algorithm)等。
隨著數學其他領域的突破,傳統的支持向量機理論和技術得以快速發展,出現了眾多的改進支持向量機理論,例如模糊支持向量機(Fuzzy Support Vector Machine,FSVM)[7,8]、最小二乘支持向量機(Least Squares Support Vector Machine,LSSVM)[9]、NN-支持向量機(Nearest Neighbor Support Vector Machine,NN-SVM)[10]、BS-支持向量機(Boundary Sample Support Vector Machine,BS-SVM)[11]等。
2002年,Lin等[7,8]提出了模糊支持向量機(Fuzzy Support Vector Machine,FSVM),該方法主要是根據樣本輸入不同導致分類效果不同以及懲罰系數會隨樣本隸屬度的變化而變化等特點,進一步削弱孤立點或噪聲對支持向量機分類結果的影響。具體做法是各樣本點對應一個隸屬度Si(0 式中,C為懲罰系數;ei為松弛變量;Siei表示不同樣本被錯分的程度。 引入Lagranga函數得出對偶問題: 即得到最優分類函數: f(x)=sgn{(m*x)+n} 其中,SiC表示樣本xi的重要程度。當SiC越大時,xi被錯分的可能性就越低,分類間隔就越小;反之,分類間隔就越大。對于噪聲或者孤立點而言,Si越小,對應的SiC就越小,從而提高了分類的準確度。 20世紀90年代末,Suykens等[9]提出了最小二乘支持向量機,該算法遵循結構風險最小化的原則,將傳統的支持向量機中的不等式約束問題轉化為等式約束問題,將二次規劃問題轉化為線性方程組來求解: s.t.m·φ(xi)+n=1-eii=1,2,…,l 式中,e為誤差變量;γ為正則化參數,可平衡擬合精度和模型推廣度。 最小二乘支持向量機在很大程度上降低了樣本點在訓練過程中的復雜度,運算速度方面也遠遠超過傳統支持向量機。 最近鄰即為歐氏距離最近的樣本。與傳統支持向量機相比,NN-支持向量機具有分類時間短、正確率高、可用于大數據訓練樣本等優勢。 計算樣本屬于模式類的概率: 通過RP的大小可將樣本分為好樣本、差樣本和邊界樣本3類,再取邊界樣本進行訓練得到分類器。該方法具有分類速度快、正確率高、訓練樣本集大的優點。 除了以上幾種改進的支持向量機外,還有中心支持向量機(Proximal Support Vector Machine)[12]、小波支持向量機(Wavelet Support Vector Machine)[13]和推理型支持向量機(InferenceSupport Vector Machine)[14]等,隨著支持向量機的不斷改進與發展,將會出現更多的改進支持向量機算法。 1)智能故障診斷 支持向量機分類器應用廣泛,早在智能故障診斷(Intelligent Trouble Diagnosis)方面有所應用。董明等[15]在大型電力變壓器故障診斷模型中引入支持向量機,他們發現支持向量分類器為挖掘有關監測參數中所含的故障信息方面提供了便利,在樣本數目有限的情況下也能得到比較精準的診斷結果,同時支持向量分類器被認為是一種通用的機器學習算法,避免了當樣本數目很大的情況下結果誤差難以控制的缺點;張周鎖等[16]提出了一種基于支持向量機的機械故障診斷方法,他們利用模擬故障數據建立了多種故障診斷分類器,無需進行數據預處理就能進行多故障的診斷與識別;鄭水波等[17]將支持向量機應用到傳感器故障診斷中,他們在建立傳感器預測模型時主要運用了支持向量機回歸估計方法,構造出傳感器的解析冗余來產生殘差,進而構成支持向量機殘差生成器來獲得故障結果;袁勝發等[18]將人工免疫與支持向量機相結合應用在機械故障診斷中,他們認為支持向量機能夠對故障數據進行聚類和分類預處理,再將類別的中心作為人工免疫系統的疫苗,人工免疫系統會將其作為抗體進行學習,獲得故障特征,并為人工免疫系統提供了先驗信息,用這種方法學習速度快,診斷效果好。 2)圖像處理 支持向量機分類器在圖像處理(Image Processing)領域也有所應用。凌旭峰等[19]和張燕昆等[20]提出了將支持向量機與主元分析(Principal ComponentAnalysis)相結合的人臉識別算法,算法充分利用了支持向量機能夠處理小樣本以及泛化能力強等方面的優勢;段立娟等[21]提出了一種多層次圖像過濾方法,過程中采用了多個分類器,主要有膚色檢測器、最近鄰方法和支持向量機分類法,結果表明支持向量機分類法和最近鄰方法達到了85%以上的準確率;李三平等[22]提出了一種基于支持向量機的彩色圖像水印算法,該方法先對圖像進行小波分解,利用分解后子圖系數之間的關系訓練支持向量機,再將訓練好的支持向量機在小波域內嵌入水印和提取水印,試驗驗證了這種方法對于普通的圖像處理具有很強的魯棒性。 3)石油勘探與開發 支持向量機分類器在石油探勘與開發(Petroleum Exploration and Development)過程中也被廣泛應用,周繼宏等[23]將支持向量機引入到碎屑巖儲層巖性識別過程中,結果表明,與當前被廣泛運用的BP神經網絡方法相比,基于BP神經網絡方法的巖性識別效果遠遠不如基于支持向量機方法的巖性識別效果;袁瑞[24]、張翔等[25]和龍熙華等[26]在研究巖性識別過程中分別對支持向量機方法進行了改進,改進后的支持向量機能夠準確的反映測井資料與地層巖性之間的非線性關系,大大提高了準確性。 4)說話人識別 在說話人識別(Speaker Recognition)方面,忻棟等[27]在處理聲音信號識別時將支持向量機與隱式馬爾可夫模型(Hidden Markov Models, HMM)結合起來建立混合模型,通過實驗得到的結果與其他模型相對比,該方法明顯降低了錯誤率,縮短了訓練時間;金煥梅等[28]研究短語音說話人識別,將支持向量機與高斯混合模型(Gaussian Mixture Model)相結合,提高了短語音數據條件下語音的識別性能,同時減少了說話人識別訓練的時間,大大提高了系統的實用性;李明等[29]提出了一種基于粒子群優化算法訓練支持向量機研究說話人識別的方法,該方法具有較高的收斂精度和較快的識別速度,解決識別問題具有顯著的時間優勢;張振領[30]提出了一種基于支持向量機和小波分析的說話人識別方法,首先用小波分析對語音進行預處理,實現語音增強的效果,再利用支持向量機多類分類器對樣本進行訓練和測試,實現說話人的分類識別。 除此之外,支持向量機分類器還被應用于互聯網技術(Internet Technology)[31~33]、金融管理(Financial Management)[34~36]和生物醫學(Biomedical Sciences)[37~49]等各個科學領域,成功解決了與工業、交通、農業和環境等多方面有關的實際問題,發揮了巨大的應用優勢。 1)水質檢測與評價 針對水質檢測與評價(Water Quality Testing and Evaluation),傳統的內梅羅指數法(NemerowIndex)[40]、模糊綜合法(Fuzzy Comprehensive Method)[41]、灰色聚類法(Grey Clustering Method)[42]等方法在解決水質因子和評價等級之間非線性關系方面存在著不足,BP神經網絡方法[43]訓練速度慢,花費時間長,結果極易受局部極小點的影響,且泛化能力低。馬文濤[44]提出了一種基于支持向量機回歸的方法來檢測評估水質,結果表示,支持向量機回歸的方法能夠較好地進行水質評價,同時還可預測水質的污染程度,在水質檢測方面具有良好的優勢;陳琳等[45]在對地下水進行水質評價時,通過建立支持向量機模型,改進地下水評價的方式,應用非線性支持向量機中分類支持向量機對地下水水質進行評價,將最終結果分別與綜合指數法和BP神經網絡法得到的結果進行對比,驗證了該方法具有計算速度快,所需參數少,評價精度高且易于通過計算機來實現等優點;張秀菊等[46]在進行水質預測中,分析了支持向量機的理論與算法,構建了支持向量機水質預測模型,利用Libsvm軟件包和Matlab軟件進行水質預測,發現預測結果與實際情況相近,預測結果能較好地反映水質情況。 2)金融預測 支持向量機回歸器被應用于金融預測(Preparing Financial Forecasts)領域。顧紅其[47]提出一種基于主成分分析的支持向量機期貨價格預測方法,首先利用主成分分析對期貨價格影響因子進行處理,消除因子之間的冗余,再用支持向量機對保留的主成分建立模型并預測,結果表明,主成分分析支持向量機模型預測的結果要優于其他模型,且預測的結果更接近于實際值;祝金榮[48]提出將支持向量機應用于石油期貨價格預測的方法,該方法采用石油期貨價格序列的一階差分作為支持向量機的輸出,一階差分的滯后值作為支持向量機的輸入并建立模型,試驗驗證了支持向量機的方法相比于神經網絡等其他方法更具有優勢,預測精度高,而且避免了過擬合現象;吳江等[49]提出一種基于加權支持向量機的金融時間序列的預測方法,對金融時間序列預測過程中的近期數據和遠期數據采用不同的權值,使近期數據的權值大一些,以此來提高預測的精度,與傳統金融時間序列的預測方法相比,該方法能夠提高金融時間序列預測的精度。 3)氣象預測 支持向量機回歸器在氣象預測(Weather Forecast)領域被廣泛應用。胡邦輝等[50]在研究云量預報問題時引入了最小二乘支持向量機的方法,通過選擇合適的參數和核函數,對不同時段的云量建立預報模型,試驗結果證明了該算法預報的結果要優于神經網絡方法,且預報的準確率不會隨樣本量的變化而受影響;王振友等[51]在研究大氣中臭氧含量分析的問題時運用了支持向量機回歸的方法,通過對多個氣象指標進行比較以及對臭氧含量進行預測,得出的預測結果與實際情況相近,說明支持向量機在預測云量方面具有較強的泛化能力;滕衛平等[52]將支持向量機引入到研究汛期旱澇問題,首先對降水量資料進行分析并提取高相關因子,再利用支持向量機回歸方法和逐步回歸方法分別建立汛期旱澇預測模型,結果對比發現支持向量機回歸模型無論是在精度預測方面還是實際預測能力方面都優于逐步回歸模型。 此外,支持向量機回歸器還被應用于電信技術(Telecommunications Technology)[53~55]、機械工業(Engineering Industry)[56,57]和航空航天(Aerospace)[58~60]等領域,獲得了良好的應用效果。 作為一種新型的機器學習方法,支持向量機具有堅實的理論基礎,能夠較好地解決小樣本、非線性和高維數等數學問題,適用于函數模擬、回歸分析和數據分類等領域。與其他傳統方法相比,支持向量機具有結構簡單、適應性好、訓練速度快和泛化能力強等優勢。盡管支持向量機的實際應用范圍遠不及人工神經網絡,但是隨著信息化時代的發展,傳統和改進的支持向量機將在大數據、云技術、深度學習和人工智能等大信息領域深入應用,具有更大的應用潛力。


2 支持向量機的應用
2.1 支持向量機分類器的應用
2.2 支持向量機回歸器的應用
3 結語