李巖 吳國文
摘 要: 支持向量機(SVM)是一種基于統(tǒng)計學習理論的新型機器學習方法,由于其出色的性能,已成為當前機器學習界的研究熱點之一。本文實現(xiàn)了基于SVM的SMO算法的分析,并使用徑向基高斯核函數(shù)對數(shù)據(jù)進行維度映射處理,最后結合系統(tǒng)運維中產(chǎn)生的仿真數(shù)據(jù)進行試驗,實現(xiàn)了對該領域的應用研究。
關鍵詞: SVM;SMO;高斯核函數(shù);系統(tǒng)運維應用
Abstract:Support Vector Machine is a new machine learning method based on statistical learning theory due to its excellent performance which has become one of the research hotspots in the discipline of machine learning nowadays. This paper analyzes the SMO algorithm based on SVM and uses the Gaussian RBF kernel function to deal with the data transformed in different dimension. Based on the above combining with the simulation data produced in the system operation the paper designs and conducts the experiment therefore completes the research of its application in this field.
Key words: SVM;SMO;Gaussian kernel function;application in system operation
引言
隨著科技信息化的高速發(fā)展,特別是互聯(lián)網(wǎng)的普及,信息服務已經(jīng)深入到社會的各個領域,如今人們的衣、食、住、行都已離不開信息系統(tǒng)的服務;而各種各樣的信息服務都離不開其底層系統(tǒng)的支持,因此,保障信息系統(tǒng)的穩(wěn)定性已成為系統(tǒng)運維的重要事件。對于系統(tǒng)的穩(wěn)定性而言,除了自身硬件和軟件的協(xié)同配合外,日常運行的數(shù)據(jù)指標分析,也是保障系統(tǒng)持續(xù)穩(wěn)定長期運行的關鍵因素。
傳統(tǒng)的系統(tǒng)運維,主要依靠人工的定期巡檢及突發(fā)事件的應急響應機制,在絕大部分情況下可以滿足設計指定的運維功能需求,但成本開銷較大,而且對于系統(tǒng)歷史運行產(chǎn)生的歷史數(shù)據(jù),也并未形成良好的回溯機制。一種觀念認為,人工智能在運維領域的應用發(fā)展已成為必然趨勢[1]。而一些已有的機器學習方法在該領域的研究進展,也多為采用K-近鄰算法(KNN)對運維數(shù)據(jù)處理后的時間結果進行分類,不僅計算和空間復雜度高,其普適性也欠佳、又不好。本文采用了另一種機器學習的方法,探討和分析了支持向量機和已經(jīng)獲得廣泛使用的序列最小優(yōu)化算法的原理,并結合使用徑向基核函數(shù)實現(xiàn)了對于非線性分類的優(yōu)化[2-3];同時,通過仿真樣本數(shù)據(jù)進行了模擬實驗[4],結果證實了這一算法在系統(tǒng)運維領域中應用的可行性。
1 基于SVM的SMO算法分析及實現(xiàn)
1.1 SVM模型分析
支持向量機(Support Vector Machine SVM)是一種二分類模型,其基本模型是定義在特征空間上的間隔最大的線性分類器。對于具有N個維度的線性可分(linearly separable)的數(shù)據(jù),存在N-1維的對象來將這些數(shù)據(jù)進行分隔,這種N-1維的對象就是分隔超平面(separating hyperplane);單個的數(shù)據(jù)點到分隔超平面的距離,可稱為間隔(margin);而與分隔超平面距離最近的那些點就是支持向量(support vector)。支持向量機學習的基本指導思想就是求解能夠正確劃分訓練集并且集合間隔最大的分離超平面。對訓練數(shù)據(jù)集找到幾何間隔最大的超平面,意味著以充分大的確信度對訓練集進行分類。也就是說,不僅將二類情況以正負實例點分開,而且對最難以區(qū)分的點(距離分隔超平面間隔最小的點)也有足夠大的確信度將其辨認分開。這樣的分隔超平面將會對位置的新實例具有較好的分類預測能力。
其中,常數(shù)C用于控制“最大化間隔”和“保障大部分點的函數(shù)間隔小于1.0”這2個目標的權重,可稱之為松弛變量。通過調(diào)節(jié)該參數(shù)的值,可以得到不同的結果。
1.2 SMO算法分析
序列最小優(yōu)化(Sequential Minimal Optimization, SMO)是一種公認流行的用于訓練SVM的算法,其本質(zhì)是將一個優(yōu)化問題分解為多個小優(yōu)化問題來求解。這些被分解的小問題往往更容易計算,而且對其按既定順序求解后的結果與將其作為一個整體求解的結果是完全等價的,因此一般情況下SMO有著更低的時間和空間復雜度。SMO算法的原理是每次循環(huán)中選擇2個alpha(α1,α2)進行優(yōu)化處理,如果α1確定,α2也隨即可得;這2個alpha必須在間隔邊界之外,或者還未經(jīng)過區(qū)間化處理或者不在邊界上[5-6]。SMO算法的步驟執(zhí)行過程可表述如下:
基于前述給出的SMO算法分析,就可以得出SMO算法實現(xiàn)的一般方法。進一步,將推得該通用方法的偽代碼設計邏輯流程如圖1所示。
1.3 利用核函數(shù)進行優(yōu)化
對于線性分類問題,一般的線性分類支持向量機已經(jīng)是一種成功有效的學習方法。但是,對于數(shù)據(jù)集分類為非線性的時候,這種線性分類的支持向量機將不再適用。SVM優(yōu)化中,所有的運算都可以寫成內(nèi)積的形式,即2個向量相乘之后得到的單個標量或者數(shù)值。此時,可以使用核方法,利用核函數(shù)表示將輸入從輸入空間映射到特征空間得到的特征向量之間的內(nèi)積。通過使用核函數(shù)學習的非線性支持向量機,等價于隱式地在高維的特征空間中學習線性支持向量機。
本文中采用了徑向基核函數(shù)(Radial Basis Function RBF)來設計展開研究優(yōu)化過程。徑向基函數(shù)是一個采用向量作為自變量的函數(shù),其高斯核函數(shù)的數(shù)學公式為:
其中,σ為可調(diào)參數(shù)。不同的σ值會使得模型具有不同的支持向量個數(shù),并影響模型的分類準確率。其對應的支持向量機是高斯徑向基函數(shù)分類器,分類決策函數(shù)的公式表述如下:[JP6]
通過利用上述的高斯核函數(shù),就會將數(shù)據(jù)從其特征空間映射到更高維的空間來變換處理,從而大大增強了這一算法的適用性。
2 實驗與結果
由于在實際的系統(tǒng)運行環(huán)境中,系統(tǒng)性能的指標數(shù)值與系統(tǒng)自身是否存在異常并未設定一個明確可分的界限,故本次實驗采用了一組非線性可分的仿真數(shù)據(jù)。訓練數(shù)據(jù)集和測試數(shù)據(jù)集中均有100個數(shù)據(jù),有2個屬性A1,A2,分別為系統(tǒng)硬件的健康狀態(tài)性能指標和軟件的性能評估指標,標簽“-1”表示存在風險,標簽“1”表示系統(tǒng)正常運行。實驗先通過訓練數(shù)據(jù)集訓練生成了核函數(shù)優(yōu)化的SMO-SVM模型,然后分別在不同的σ值條件下用訓練數(shù)據(jù)實現(xiàn)回溯,并用測試數(shù)據(jù)集來測試模型分類預測的錯誤率,記錄錯誤數(shù)據(jù)個數(shù)并統(tǒng)計支持向量的個數(shù)。實驗運行結果可見表1。
具體地,實驗結果的可視化柱狀圖如圖2所示。
實驗數(shù)據(jù)證明,通過調(diào)節(jié)參數(shù)σ的數(shù)值,會影響到訓練模型中支持向量的個數(shù)。當σ取值非常?。é?0.1)時,有大部分數(shù)據(jù)實例(88個)成為支持向量,得到的測試數(shù)據(jù)錯誤率也較低;逐漸增大σ值發(fā)現(xiàn),當σ=1.3時,研究中測試數(shù)據(jù)的錯誤率最低,降為3%,支持向量的個數(shù)為26個,這就表明此時的數(shù)據(jù)分類效果最好;當σ再逐漸增大,支持向量個數(shù)和測試數(shù)據(jù)的錯誤率都隨之上升。特別地,當σ=5時,測試數(shù)據(jù)的錯誤率高達38%,分類器的分類效果較差。
3 結束語
本文研究了支持向量機SVM的模型原理,分析了序列最小優(yōu)化算法SMO的運行機制[8],并使用徑向基高斯核函數(shù)對SMO-SVM進行改造優(yōu)化,使其可以處理非線性分類的數(shù)據(jù)。結合系統(tǒng)運維中產(chǎn)生的性能指標參數(shù),設計采用了仿真實驗,且由實驗結果證實了其在該領域應用的可行性[9];通過調(diào)節(jié)參數(shù)σ的數(shù)值得出了性能最好的參數(shù)解,具有一定的創(chuàng)新及實踐意義。
參考文獻
[1] 屠要峰,吉鋒,文韜. 機器學習在大視頻運維中的應用[J]. 中興通訊技術,2017(4):2-8.
[2] 閻曉娜,趙犁豐. 基于支持向量機的改進高斯核函數(shù)聚類算法研究[J]. 現(xiàn)代電子技術,2011,34(13):67-70,73.
[3] 黃嘯. 支持向量機核函數(shù)的研究[D]. 蘇州:蘇州大學 2008.
[4] 趙振江. 基于SMO_SVM算法的變壓器故障診斷[J]. 煤礦機械,2011,32(1):247-249.
[5] 周曉劍,馬義中,朱嘉鋼. SMO算法的簡化及其在非正定核條件下的應用[J]. 計算機研究與發(fā)展,2010,47(11):1962-1969.
[6] 趙長春,姜曉愛,金英漢.非線性回歸支持向量機的SMO算法改進[J]. 北京航空航天大學學報,2014,40(1):125-130.
[7] 李航. 統(tǒng)計學習方法[M]. 北京:清華大學出版社,2012.
[8] 丁世飛,齊丙娟,譚紅艷. 支持向量機理論與算法研究綜述[J]. 電子科技大學學報,2011,40(1):125-130.
[9] HARRINGTON P. Machine learning in action[M] . 李銳,李鵬,曲亞東,等譯. 北京:人民郵電出版社,2013.