支持向量機(Support Vector machine, SVM),本章節說明如何構建SVM的最優化模型-最優間隔分類器。首先先引入兩個間隔定義來衡量預測的置信度。算法
1. 函數間隔函數
引入函數間隔來描述預測的可靠性。咱們從如今開始,本考慮二元分類時,輸出值的可取值{-1,1}。優化
當wTx+b ≥ 0時,輸出類別是1;spa
當wTx+b < 0時,輸出類別是-1。blog
函數間隔的定義爲:io
若是訓練數據是線性可分的,那麼恆爲非負數,當值越大,若yi=1,則wTx+b ≥ 0,越確信數據屬於類別1;若yi=-1,則wTx+b ≤ 0,越肯定數據屬於類別-1。函數間隔能很好地反映出預測的結果置信度。效率
離超平面越近的點對模型的魯棒性要求越高。(ps:魯棒性:也就是健壯和強壯的意思。 它是在異常和危險狀況下生存的關鍵)所以,一般關心的是那些離超平面最近的點,這些邊界點被稱爲支持向量(或支撐向量,support vector)。方法
支持向量到超平面的距離是數據集到超平面的最短距離,形式化定義爲:im
總結:使用函數間隔來衡量預測的置信度有一個不足的地方,那就是當等比例同時方法w和b時,超平面的位置實際上並無任務變化,並且帶你到超平面的距離也沒有變化,但函數間隔卻變大了。d3
2. 幾何間隔
爲了克服函數間隔的缺點,引入了幾何間隔的定義:
從上式能夠看出,幾何間隔實際上就是點到超平面的歐式距離
幾何間隔的意義與函數間隔同樣,當幾何間隔越大,其預測結果越可靠。圖中的A和B兩點,顯然B屬於類別1的機率要遠遠大於點A。
與函數間隔同樣,重點關注支持向量的幾何間隔,定義爲:
咱們的目標是但願間隔越大越好,尤爲是咱們但願那些邊界點,即支持向量的間隔離超平面越大越好。(ps:但願獲得的間隔最小值d也是最大化幾何間隔後的最小值)爲此,獲得了下面的帶約束的最優化問題:
但因爲約束條件||w||=1非凸不可導,先將目標函數從函數間隔的最大值過渡到幾何間隔的最大值。
咱們總能夠將支持向量到超平面的函數間隔值設置爲1,也就是=1,同時,經過將最大化問題轉化爲求最小化問題,是的目標函數變成一個二次的凸函數,凸函數的最優化問題遠比非凸函數簡單,且能保證得到最優解。所以,轉化獲得下面的約束最優化問題:
上式就是要求解的SVM最優化模型,由其最優解獲得的分類器,稱爲最優間隔分類器,同時上式也被稱爲SVM最優化的基本型。
上式經過最優化策略已經能夠求解出最優值,咱們仍是須要考慮其對偶問題(ps:須要使用拉格朗日乘子法和KKT條件。高效的求解算法是著名的Sequential minimal optimization算法,SMO)。主要基於兩方面考慮:
1、對偶問題的求解比直接求解原始問題的效率更高;
2、對偶問題能更方便引入核函數。
爲何引入核函數?
通常狀況下,都是假設數據是線性可分的,但在實際應用中,遇到更多的是線性不可分的數據,核函數的做用是用過將線性不可分的輸入特徵向量映射到高維空間中,使得映射後的結果在高維空間可以用過超平面分離。
幾個常見的核函數:
1. 多項式核
2. 高斯核