機器學習:支持向量機

支持向量機(SVM)是感知機的進化版本,解決的問題相同,同樣是解決二分類的問題,解決的策略不同,感知機採用的是誤分類最小的策略,而支持向量機採用的是間隔最大化原則,而且支持向量機可以解決非線性二分類的問題,比如異或問題。支持向量採用間隔最大化策略,也就是找到一條分界河,使得河面最寬,而那些在河邊的點是決定河寬的關鍵(也稱為支持向量),所以這個分類算法被稱作支持向量機。

因為線性可分訓練數據集是存在的(證明略),所以這個最大分割的超平面wx+b=0是一定可以找到的。支持向量機求最大超平面的問題被轉化成為一個凸二次優化問題(大家可參考李航的《統計學習方法》看推導過程,總之就是一個線性約束的二次函數求最優解的問題。與感知機相同,該問題可以轉化為對偶問題求解,化為對偶問題的好處是自然引入了核函數從而解決非線性二分類問題。對於線性不可分數據集,凸優化問題中的約束可能是不滿足的,所以需要將約束條件增加一個彈性條件,使得分類間隔不是一個固定的值而是一個範圍,以容納分類錯誤的類。(河岸不再是一條線,而是一個堤壩上面可以走人甚至開車)。支持向量機算法比較常見的是SMO算法,它是一種快速算法,不斷的將原二次規劃問題分解為只有兩個變量的二次子規劃問題(分治思想),通過啟發式得到原二次規劃的最優解。

總結一下,支持向量機的模型是分類平面wx+b=0,其策略是間隔最大策略,算法可以參照SMO快速求解,主要可以用於解決線性或非線性二分類問題。


機器學習:支持向量機


分享到:


相關文章: