支援向量機:SVM
SVM 是一種監督式的機器學習演算法,可用於分類或迴歸問題。它使用一種稱為核函式的技術來變換資料,然後基於這種變換,演算法找到預測可能的兩種分類之間的最佳邊界。通俗來講,它是一種二類分類模型,其基本模型定義為特徵空間上的間隔最大的線性分類器,即支援向量機的學習策略便是間隔最大化,最終可轉化為一個凸二次規劃問題的求解。
1. 最大間隔分隔
上圖中綠色和藍色分別表示不同的兩個類別,可以看出資料是線性可分,第二張圖中間的直線就是一個分類函式,它可以將兩類樣本完全分開。這種可以將資料集分隔開來的直線稱為分隔超平面。在上面給出的資料點都在二維平面上,所以此時分隔超平面就只是一條直線。但是,如果所給的資料集是三維的,那麼此時用來分隔資料的就是一個平面。顯而易見,更高維的情況可以依此類推。
支援向量就是離分隔超平面最近的那些點。接下來要試著最大化支援向量到分隔面的距離,要找到這些支援向量。
我們定義分隔超平面的表示式為
,分類的結果為
(正例
為1,負例
為 -1)。如果資料點處於正方向(即正例)並且離分隔超平面很遠的位置時,
會是一個很大的正數,同時
也會是一個很大的正數。而如果資料點處於負方向(負例)並且離分隔超平面很遠的位置時,此時由於類別標籤為-1,則
仍然是一個很大的正數。
現在的目標就是找出分類器定義中的
和
。為此,我們必須找到具有最小間隔的資料點,一旦找到具有最小間隔的資料點,我們就需要對該間隔最大化。這就可以寫作:
注:
1.
被稱為點到超平面的函式間隔
2.
為點到超平面的幾何間隔
3.
為支援向量,即上圖中紅色的點
直接求解上述問題相當困難,但是如果我們令所有支援向量的
都為1,那麼就可以通過求
的最大值來得到最終解,但是並不是所有點的
都為1,只有離超平面最近的點才為1,越遠的點值越大,所以這裡我們加個約束條件:如果
則
,那麼到超平面最近的距離為
,即最大的間隔分隔為
。
2. 最優化求解
上面我們已經分析出最大的間隔為
,
的意思是
的二範數,可以寫成
,所以
到這裡,最優化問題可以使用拉格朗日乘子法去解,使用了KKT條件的理論,這裡直接作出這個式子的拉格朗日目標函式: