支援向量機(svm)
1 摘要
支援向量機是一種二類分類模型,它的基本模型是定義在特徵空間上的間隔最大的線性分類器,所以模型的學習策略就是間隔最大化,因此形式可化為乙個求解凸二次規劃的問題,也等價於正則化的合頁損失函式的最小化問題,支援向量機的學習演算法是求解凸二次規劃的最優化演算法。
對於入門支援向量機,可以先不用看懂上面的摘要,通過逐步理解下面的公式推導,再回過來看摘要,才能徹底掌握支援向量機。
2 線性可分支援向量機原理
考慮乙個二類分類問題,比如金融業的是否違約問題,假定給定乙個特徵空間上的訓練資料集t=.x為第i個樣本的特徵向量,y即是對應的分類標記,當y=+1時,稱這個樣本為正例,當y=-1時,該樣本為負例。對應金融業的信用卡違約問題,+1就代表該人沒有違約,-1代表該人違約。再假設訓練資料集t是線性可分的。
模型的學習目標就是在特徵空間中找到乙個分離超平面,能將例項分到不同的類中,分離超平面對應於方程ωx+b=0,該超平面由法向量ω和截距b決定,分離超平面將特徵空間劃分為兩部分,一部分是正例,一部分是負例,法向量指向的一側為正例,另一側為負例。用圖表示如下所示:
得到分離超平面後,我們也得到了相應的分類決策函式f(x)=sign(ωx+b),對於以後的未知分類的特徵資料集x,我們將x代入該函式即可知道其分類結果。因此該函式稱為線性可分支援向量機。
下面來推導如何找到分離超平面:
3 支援向量機的推導過程
如何找到兩個集合的最優分割超平面,使得兩集合盡量分開。
支援向量機的學習策略就是通過間隔最大化得到分割超平面。先定義分離超平面的形式為
φ(x)是某個確定的特徵空間轉換函式,它的作用是將x對映到更高的空間維度中。最簡單直接的就是令φ(x)=x,就得到了線性的超平面,這裡的φ(x)對後面理解核函式(非線性的支援向量機)有幫助,所以在公式推導中先用φ(x)代替x。
整理符號有:
首先,考慮下圖的二維特徵空間(即樣本只有兩個特徵)中的分類問題,有a,b,c三點,表示三個樣本,均在乙個類別中,a距離超平面較遠,若**該點為正例,就比較確定**是正確的,c距離超平面較遠,若**該點為正例,就不那麼確信,b的確信度在a,c之間。因此乙個點距離分離超平面的遠近可以表示分類**的確信程度,而點到直線的距離可表示為|ωx+b|,ωx+b與y的符號是否一致表示分類是否正確。所以y(ωx+b)來表示分類的正確性及確信度。
但是對於y(ωx+b),要是成比例地改變ω和b,那麼此時的間隔就成為原來的2倍,但是超平面沒有改變,因此我們規範化超平面法向量ω,使得間隔是確定的。這樣點到直線的距離就是 y(ωx+b)/||ω||。
通過對訓練資料集找到間隔最大的超平面意味著以充分大的確信度對訓練資料進行分類,也就是說,不僅要將正負例點分開,還要對最難分的樣本點也要有足夠大的確信度分開。所以間隔最大化的原理就是將距離超平面最近的點的間隔最大化。所以支援向量機中的支援向量就是距離超平面最近的那些點。我們只要找到了這些點,就可以確定出分離超平面的法向量ω和截距b,反過來想,距離分離超平面最近的點形成的線就為ωx+b=±1,即距離超平面最近的點到超平面的距離是1,對於一般情況,y(ωx+b)≥1。
通過上面的分析建立以下模型:
約束條件為:
上面的規劃問題等價於如下形式:
進一步可等價於:
這是乙個凸二次規劃問題,運用拉格朗日乘子法使上面的有約束規劃轉變為無約束規劃問題,拉格朗日函式為:
原始問題為極小極大問題min max l(ω,b,α),根據拉格朗日對偶性,原始問題的對偶問題是極大極小問題max min l(ω,b,α),當具有強對偶性時,對偶問題的解即是原始問題的解。因為格式的限制,具體關於拉格朗日對偶性的推導參考我的部落格:
對對偶問題的無約束求解先求解minl(ω,b,α)問題。將拉格朗日函式l(ω,b,α)分別對ω,b求偏導,並令其等於0:
將上面的結論代入拉格朗日函式為:
等價於求:
那麼要求解得到分離超平面,需要求解出最優的α,即是求解上面的規劃問題。之所以要最後變為最小化問題,是因為求解該問題需要採用smo序列最小最優化方法。
4 支援向量機和感知機的區別
當訓練資料集線性可分時,存在無窮個分離超平面可將兩類資料正確分開,感知機利用誤分類最小的策略求得超平面,不過這時的解有無窮多個,但是線性可分支援向量機利用間隔最大化策略求最優超平面,這時的解是唯一的。
待更新:smo求解方法、軟間隔最大化、非線性支援向量機(核函式)
機器學習 支援向量機 SVM
svm 方法的基本思想是 定義最優線性超平面,並把尋找最優線性超平面的演算法歸結為求解乙個凸規劃問題。進而基於 mercer 核展開定理,通過非線性對映 把樣本空間對映到乙個高維乃至於無窮維的特徵空間 hilbert 空間 使在特徵空間中可以應用線性學習機的方法解決樣本空間中的高度非線性分類和回歸等...
機器學習 支援向量機SVM
svm是一種監督學習演算法,主要用於分類 回歸 異常值檢測。目前應用於文字分類 手寫文字識別 影象分類 生物序列分析。支援向量機是一種通過某種非線性對映,把低維的非線性可分轉化為高維的線性可分,在高維空間進行線性分析的演算法。支援向量機 svm,support vector machine 是根據統...
機器學習 支援向量機SVM
通俗詳見 要明白什麼是svm,便得從分類說起。分類作為資料探勘領域中一項非常重要的任務,它的目的是學會乙個分類函式或分類模型 或者叫做分類器 而支援向量機本身便是一種監督式學習的方法 至於具體什麼是監督學習與非監督學習,請參見此系列machine l data mining第一篇 它廣泛的應用於統計...