1. 程式人生 > >cs229筆記三 支援向量機

cs229筆記三 支援向量機

支援向量機(Support Vector Machine ,SVM )

SVMs通常被認為是最好的現成的學習演算法。在敘述SVM之前我們先討論一下邊界和通過一個很大的間隙將資料進行分隔。接下來,我們討論一下最優化間隔分類器,這將讓我們看到拉格朗日對偶。同時我們將學習到核(kernels),核將讓SVM能在高維特徵空間更加有效,最後我們將介紹一下SMO演算法。

間隔:直覺

這節我們將對邊界給出一個直觀的感受以及預測結果的置信度。考慮邏輯迴歸通過

h θ ( x ) = g ( θ T x )
建模得到概率 p ( y = 1 | x ; θ ) .當且僅當 h θ ( x ) 0.5 時也就是當 θ T x 0 時,一個輸入 x 的預測結果為”1”。對於一個正例訓練資料 ( y = 1 ) θ T x 越大 h θ ( x ) = p ( y = 1 | x ; w , b ) 也越大,同時訓練樣本標籤為“1”的可信度也越大。因此,我們可以大致認為當 θ T x >> 0 時, y = 1 的置信度是很高的。相反,當 θ T x << 0 時,我們認為 y = 0 的置信度是很高的。對於一個給定的訓練集,我們將會得到這個訓練資料的一個很好的擬合,若我們可以找到 θ 使得對於所有的樣本 y ( i ) = 1 θ T x ( i ) >> 0 以及對於所有的 y ( i ) = 0 θ T x ( i ) << 0 。這看起來是一個很不錯的目標,接下來我們將其表示為邊界函式的形式。
對於另外一個直觀的感受,考慮一下下面的圖。圖中”x”表示正訓練樣本,”o”表示負訓練樣本。決策邊界由方程 θ T x = 0 決定,也叫做超平面。以及給出了A,B,C三個點。我們可以看到對於一個未知點,它離決策線越遠,那我們更有信心給出它的預測結果。35

符號

為了更方便的對SVMs進行討論,我們先介紹一些符號。我們先考慮一個對特徵為 x ,標籤為 y 的二值分類問題進行分類的線性分類器。從現在起, y { 1 , 1 } 而不是 { 0 , 1 } 來表示類別的標籤。同樣,我們的線性分類器的引數現在也不是 θ 而是 w , b 線性分類的可以寫為:
h w , b ( x ) = g ( w T x + b )
這裡,當 z 0 g ( z ) = 1 z < 0 時, g ( z ) = 1 。以及引數 b 就相當於之前的 θ 0 ,引數 w 就相當於 [ θ 1 , , θ n ] T .
注意,從上面定義的函式 g ,分類器的預測結果將直接給出1或-1(與感知器演算法一致)。而不是先經過中間步驟估計 y = 1 時的概率。

函式間隔以及幾何間隔

對於一個給定的訓練集 ( x ( i ) , y ( i ) ) ,我們定義函式間隔為: