機器學習之支援向量機(線性模型)的最佳化問題

Lois發表於2020-07-04


將中間的這條線分別向兩邊平行移動,直到穿過某一個或某幾個訓練樣本點為止。
我們將超平面記為(W, b)。
定義:
1.訓練資料及標籤(X_1,y_1) (X_2,y_2)…(X_N,y_N),其中 X_i 為向量,y_i = + 1或-1
2.一個訓練集線性可分是指

訓練集:{(X_i,y_i)}_{i = 1\sim N}\\ \exists (\mathbf W,b),使:\\ 對\forall i = 1\sim N,有\\ (1).若 y_i = +1,則 W^TX_i + b\geq 0\\ (2).若 y_i = -1,則W^TX_i + b< 0\\ “(1) 和 (2)”等價於“ y_i[W^TX_i + b]\geq0(公式 1 ) ”

3.支援向量:在支援向量機中,距離超平面最近的且滿足一定條件的幾個訓練樣本點被成為支援向量。

支援向量機的最佳化問題

歸結為以下兩點:

最小化 ( Minimize ):\dfrac{1}{2}||W||^2

限制條件 ( Subject to ):y_i[W^TX_i + b]\geq 1 ( i = 1\sim N )

證明:
事實 1:w^TX + b = 0 與 aW^TX + ab = 0是同一個平面。a\in R^+
若(W, b)滿足公式 1,則(aW, ab) 也滿足公式 1。
事實 2:點到平面的距離公式
平面:w_1x + w^2y + b = 0 則(x_0, y_0) 到此平面的距離:

d = \dfrac{|w_1X_0 + w_2y_0 + b|} {\sqrt{w_1^2 + w_2^2}}

支援向量X_0 到超平面 ( W, b ) 的距離可寫為

d = \dfrac{|\mathbf{W}^T\mathbf{X_0} +b|}{||\mathbf{W}||}\\ 注意:||W|| = \sqrt {W_1^2 + W_2^2 +... + W_n^2}

我們可以用 a 去縮放

( W, b)\xrightarrow{} ( aW, ab)

最終使在支援向量x_0(所有支援向量上都滿足)上有|W^TX_0 + b|=1, 此時支援向量與平面的距離

d = \dfrac{1}{||W||}

所以要使距離\dfrac{2}{||W||}最大化,即最小化\dfrac{1}{2}||W||^2

本作品採用《CC 協議》,轉載必須註明作者和本文連結
Hacking

相關文章