天天看點

對《支援向量機通俗導論--了解SVM 的三層境界》的了解引入1 了解線性分類器2 函數間隔和集合間隔3 最大間隔分類器4 從原始問題到對偶問題5 K.K.T.條件6 對偶問題求解7 線性不可分的情況8 核函數9 使用松弛變量處理outliers10 SMO算法

文章目錄

  • 引入
  • 1 了解線性分類器
  • 2 函數間隔和集合間隔
  • 3 最大間隔分類器
  • 4 從原始問題到對偶問題
  • 5 K.K.T.條件
  • 6 對偶問題求解
  • 7 線性不可分的情況
  • 8 核函數
  • 9 使用松弛變量處理outliers
  • 10 SMO算法

引入

  調包俠近日開始深入了解SVM背後的故事,所參照文章為《支援向量機通俗導論–了解SVM 的三層境界》。需要說明的是,這裡主要記錄的是SVM的推導過程,且文中公式的編号與原文完全一緻。

1 了解線性分類器

  令 x \boldsymbol{x} x表示資料點, y ∈ { + 1 , − 1 } y\in\{+1,-1\} y∈{+1,−1}表示類别,一個線性分類器的學習目标則是在 n n n維的資料空間中找到一個超平面,其表示為:

w T x + b = 0 (1.1) \tag{1.1} \boldsymbol{w}^T\boldsymbol{x}+b=0 wTx+b=0(1.1)  一個簡單的例子如下:已有一個二維平面,平面上有兩種不同的資料,分别用圈和叉表示。這些資料是線性可分的,即可以用一條直接将兩類資料劃分開,即超平面,并表示為 f ( x ) = w T x + b f(x)=\boldsymbol{w}^T\boldsymbol{x}+b f(x)=wTx+b。

  根據函數取值的不同,有以下三種對應情況:

  1. x x x是超平面上的點 ⇔ f ( x ) = 0 \Leftrightarrow f(\boldsymbol{x})=0 ⇔f(x)=0;
  2. y = 1 y=1 y=1的資料點 ⇔ f ( x ) > 0 \Leftrightarrow f(\boldsymbol{x})>0 ⇔f(x)>0;
  3. y = − 1 y=-1 y=−1的資料點 ⇔ f ( x ) < 0 \Leftrightarrow f(\boldsymbol{x})<0 ⇔f(x)<0;
對《支援向量機通俗導論--了解SVM 的三層境界》的了解引入1 了解線性分類器2 函數間隔和集合間隔3 最大間隔分類器4 從原始問題到對偶問題5 K.K.T.條件6 對偶問題求解7 線性不可分的情況8 核函數9 使用松弛變量處理outliers10 SMO算法

2 函數間隔和集合間隔

  目前的推導,均假設資料集是線性可分的。在超平面 w T x + b \boldsymbol{w}^T\boldsymbol{x}+b wTx+b确定的情況下, ∣ w T x + b ∣ |\boldsymbol{w}^T\boldsymbol{x}+b| ∣wTx+b∣能夠表示點 x \boldsymbol{x} x到超平面的遠近,并可以通過觀察 w T x + b \boldsymbol{w}^T\boldsymbol{x}+b wTx+b與标簽 y y y的一緻性來判斷分類是否正确。是以,引入函數間隔如下:

γ ^ = y ( w T x + b ) = y f ( x ) (1.6) \tag{1.6} \hat{\gamma}=y\left(\boldsymbol{w}^{T} \boldsymbol{x}+b\right)=y f(\boldsymbol{x}) γ^​=y(wTx+b)=yf(x)(1.6)而超平面關于資料集 T T T種所有樣本點 ( x i , y i ) (\boldsymbol{x}_i,y_i) (xi​,yi​)的的函數間隔最小值,即超平面關于資料集 T T T的函數間隔:

γ ^ = min ⁡ γ ^ i , ( i = 1 , … , n ) (1.7) \tag{1.7} \hat{\gamma}=\min\hat{\gamma}_i,(i=1,\dots,n) γ^​=minγ^​i​,(i=1,…,n)(1.7)  函數間隔的缺點在于如果成比例的改變 w \boldsymbol{w} w和 b b b,函數間隔的值也會相應增加。是以需要引入幾何間隔,其通過對 w \boldsymbol{w} w加入限制來定義真正點到超平面的距離。一個例子如下圖:

  令 x 0 \boldsymbol{x}_0 x0​表示 x \boldsymbol{x} x在超平面上的垂直投影點,則有 x = x 0 + γ w ∥ w ∥ \boldsymbol{x}=\boldsymbol{x}_0+\gamma\frac{\boldsymbol{w}}{\|\boldsymbol{w}\|} x=x0​+γ∥w∥w​。由于 x 0 \boldsymbol{x}_0 x0​在超平面上的點,滿足 f ( x 0 ) = 0 f(\boldsymbol{x}_0)=0 f(x0​)=0,代入超平面的方程 w T x + b = 0 \boldsymbol{w}^{T} \boldsymbol{x}+b=0 wTx+b=0,可以得到:

γ = w T x + b ∥ w ∥ = f ( x ) ∥ w ∥ (1.8) \tag{1.8} \gamma=\frac{\boldsymbol{w}^{T} \boldsymbol{x}+b}{\|\boldsymbol{w}\|}=\frac{f(\boldsymbol{x})}{\|\boldsymbol{w}\|} γ=∥w∥wTx+b​=∥w∥f(x)​(1.8)  為了得到 γ \gamma γ的定義,令 γ \gamma γ乘上類别 y y y,即得到集合間隔的定義:

γ ~ = y γ = γ ^ ∥ w ∥ \tilde{\gamma}=y\gamma=\frac{\hat{\gamma}}{\|\boldsymbol{w}\|} γ~​=yγ=∥w∥γ^​​

對《支援向量機通俗導論--了解SVM 的三層境界》的了解引入1 了解線性分類器2 函數間隔和集合間隔3 最大間隔分類器4 從原始問題到對偶問題5 K.K.T.條件6 對偶問題求解7 線性不可分的情況8 核函數9 使用松弛變量處理outliers10 SMO算法

3 最大間隔分類器

  對一個資料集進行分類,如下圖,當超平面離資料點的間隔越大,分類的确信度也越大,是以,定義最大間隔分類器的優化目标如下:

max ⁡ γ ~ (1.10) \tag{1.10} \max\tilde{\gamma} maxγ~​(1.10)  同時需要滿足以下條件:

y i ( w T x i + b ) = γ ^ i ≥ γ ^ , i = 1 , … , n (1.11) \tag{1.11} y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)=\hat{\gamma}_i\geq\hat{\gamma}, i=1,\dots,n yi​(wTxi​+b)=γ^​i​≥γ^​,i=1,…,n(1.11)

對《支援向量機通俗導論--了解SVM 的三層境界》的了解引入1 了解線性分類器2 函數間隔和集合間隔3 最大間隔分類器4 從原始問題到對偶問題5 K.K.T.條件6 對偶問題求解7 線性不可分的情況8 核函數9 使用松弛變量處理outliers10 SMO算法

  進一步,令函數間隔 γ ^ = 1 \hat{\gamma}=1 γ^​=1,則目标函數轉化為:

max ⁡ 1 ∥ w ∥ ,      s . t .      y i ( w T x i + b ) ≥ 1 , i = 1 , … , n (1.12) \tag{1.12} \max\frac{1}{\|\boldsymbol{w}\|},\ \ \ \ s.t.\ \ \ \ y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)\geq1,i=1,\dots,n max∥w∥1​,    s.t.    yi​(wTxi​+b)≥1,i=1,…,n(1.12)  一個例子如下,中間的實作代表尋找到的最優超平面,其到兩條虛線的距離相等,這個距離便是幾何間隔 γ ~ \tilde{\gamma} γ~​,兩條虛線之間的距離等于 2 γ ~ 2\tilde{\gamma} 2γ~​。虛線上的點,在SVM中,則對應于支援向量。

對《支援向量機通俗導論--了解SVM 的三層境界》的了解引入1 了解線性分類器2 函數間隔和集合間隔3 最大間隔分類器4 從原始問題到對偶問題5 K.K.T.條件6 對偶問題求解7 線性不可分的情況8 核函數9 使用松弛變量處理outliers10 SMO算法

4 從原始問題到對偶問題

  由于求 1 / ∥ w ∥ 1/\|\boldsymbol{w}\| 1/∥w∥的最大值等價于求 1 2 ∥ w ∥ 2 \frac{1}{2}\|\boldsymbol{w}\|^2 21​∥w∥2的最小值,是以優化目标等價于

min ⁡ 1 2 ∥ w ∥ 2 ,      s . t .      y i ( w T x i + b ) ≥ 1 , i = 1 , … , n (2.2) \tag{2.2} \min\frac{1}{2}\|\boldsymbol{w}\|^2,\ \ \ \ s.t.\ \ \ \ y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)\geq1,i=1,\dots,n min21​∥w∥2,    s.t.    yi​(wTxi​+b)≥1,i=1,…,n(2.2)  由于目前優化目标結構的特殊性,可以通過拉格朗日對偶性變換到對偶變量的優化問題。這樣的好處在于:

  1)對偶問題往往更容易求解;

  2)可以自然地引入核函數,進而推廣到非線性分類問題。

  融合拉格朗日函數的目标函數如下:

L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 n α i ( y i ( w T x i + b ) − 1 ) \mathcal{L}(\boldsymbol{w},b,\boldsymbol{\alpha})=\frac{1}{2}\|\boldsymbol{w}\|^2-\sum_{i=1}^n\alpha_i(y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)-1) L(w,b,α)=21​∥w∥2−i=1∑n​αi​(yi​(wTxi​+b)−1)  然後令:

θ ( w ) = max ⁡ α i ≥ 0 L ( w , b , α ) \theta(\boldsymbol{w})=\max_{\alpha_i\geq0}\mathcal{L}(\boldsymbol{w},b,\boldsymbol{\alpha}) θ(w)=αi​≥0max​L(w,b,α)  當某個限制條件不滿足時,例如 y i ( w T x i + b ) < 1 y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)<1 yi​(wTxi​+b)<1,那麼隻需令 α i = ∞ \alpha_i=\infty αi​=∞,則有 θ ( w ) = ∞ \theta(\boldsymbol{w})=\infty θ(w)=∞。是以,當所有限制條件均滿足時,有 θ ( w ) = 1 2 ∥ w ∥ 2 \theta(\boldsymbol{w})=\frac{1}{2}\|\boldsymbol{w}\|^2 θ(w)=21​∥w∥2,亦即最初要最小化的量。

  是以,在要求滿足限制條件的情況下最小化 1 2 ∥ w ∥ 2 \frac{1}{2}\|\boldsymbol{w}\|^2 21​∥w∥2,等價于:

min ⁡ w , b θ ( w ) = min ⁡ w , b max ⁡ α i ≥ 0 L ( w , b , α ) = p ∗ \min_{\boldsymbol{w},b}\theta(\boldsymbol{w})=\min_{\boldsymbol{w},b}\max_{\alpha_i\geq0}\mathcal{L}(\boldsymbol{w},b,\boldsymbol{\alpha})=p^* w,bmin​θ(w)=w,bmin​αi​≥0max​L(w,b,α)=p∗其中 p ∗ p^* p∗表示這個問題的最優值,且和最初的問題是等價的。

  為了友善求解,這裡将最大和最小交換以下位置:

max ⁡ α i ≥ 0 min ⁡ w , b L ( w , b , α ) = d ∗ \max_{\alpha_i\geq0}\min_{\boldsymbol{w},b}\mathcal{L}(\boldsymbol{w},b,\boldsymbol{\alpha})=d^* αi​≥0max​w,bmin​L(w,b,α)=d∗  交換後的問題是原始問題的對偶問題,最優質用 d ∗ d^* d∗來表示,且有 d ∗ ≤ p ∗ d^*\leq p^* d∗≤p∗。

5 K.K.T.條件

  K.K.T.條件的意義在于:它是一個非線性規劃問題有最優解的充要條件。

  對于标準的最優化問題,有:

min ⁡ f ( x )  s.t.  h j ( x ) = 0 , j = 1 , … , p g k ( x ) ≤ 0 , k = 1 , … , q x ∈ X ⊂ ℜ n (2.7) \tag{2.7} \begin{array}{ll} \min & f(x) \\ \text { s.t. } & h_{j}(x)=0, \quad j=1, \ldots, p \\ & g_{k}(x) \leq 0, \quad k=1, \ldots, q \\ & x \in \mathcal{X} \subset \Re^{n} \end{array} min s.t. ​f(x)hj​(x)=0,j=1,…,pgk​(x)≤0,k=1,…,qx∈X⊂ℜn​(2.7)其中 f ( x ) f(x) f(x)是優化目标, h ( x ) h(x) h(x)是等式限制, g ( x ) g(x) g(x)是不等式限制, p p p和 q q q分别為等式和不等式限制的數量。

  同時需要了解凸優化的概念: X ⊂ ℜ n \mathcal{X}\subset\Re^n X⊂ℜn為一凸集, f : X → ℜ f:\mathcal{X}\to\Re f:X→ℜ為一凸函數,凸優化就是要找到一點 x ∗ ∈ X x^*\in\mathcal{X} x∗∈X,使得 ∀ x ∈ X , f ( x ∗ ) ≤ f ( x ) \forall x\in\mathcal{X},f(x^*)\leq f(x) ∀x∈X,f(x∗)≤f(x)。

  K.K.T.條件則是指上面最優化标準模型中的最小點 x ∗ x^* x∗必須滿足:

  1) h j ( x ∗ ) = 0 , j = 1 , … , p , g k ( x ∗ ) ≤ 0 , k = 1 , … , q h_j(x^*)=0,j=1,\dots,p,\quad g_k(x^*)\leq0,k=1,\dots,q hj​(x∗)=0,j=1,…,p,gk​(x∗)≤0,k=1,…,q

  2) Δ f ( x ∗ ) + ∑ j = 1 p λ j Δ h j ( x ∗ ) + ∑ k = 1 q μ k Δ g k ( x ∗ ) = 0 , λ j ≠ 0 , μ k ≥ 0 , μ k g k ( x ∗ ) = 0 \Delta f\left(x^{*}\right)+\sum_{j=1}^{p} \lambda_{j} \Delta h_{j}\left(x^{*}\right)+\sum_{k=1}^{q} \mu_{k} \Delta g_{k}\left(x^{*}\right)=0, \lambda_{j} \neq 0, \mu_{k} \geq 0, \mu_{k} g_{k}\left(x^{*}\right)=0 Δf(x∗)+∑j=1p​λj​Δhj​(x∗)+∑k=1q​μk​Δgk​(x∗)=0,λj​​=0,μk​≥0,μk​gk​(x∗)=0

  當然,我們這裡的優化目标是滿足條件的。

6 對偶問題求解

  首先固定 α \alpha α,要讓 L \mathcal{L} L關于 w \boldsymbol{w} w和 b b b最小化,分别對 w \boldsymbol{w} w和 b b b求偏導:

∂ L ∂ w = 0 ⇒ w = ∑ i = 1 n α i y i x i (2.8) \tag{2.8} \frac{\partial L}{\partial \boldsymbol{w}}=0\Rightarrow\boldsymbol{w}=\sum_{i=1}^n\alpha_iy_i\boldsymbol{x}_i ∂w∂L​=0⇒w=i=1∑n​αi​yi​xi​(2.8) ∂ L ∂ b = 0 ⇒ ∑ i = 1 n α i y i = 0 (2.9) \tag{2.9} \frac{\partial L}{\partial b}=0\Rightarrow\sum_{i=1}^n\alpha_iy_i=0 ∂b∂L​=0⇒i=1∑n​αi​yi​=0(2.9)  代入 L \mathcal{L} L:

L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 n α i ( y i ( w T x i + b ) − 1 ) = 1 2 w T w − ∑ i = 1 n α i y i w T x i − ∑ i = 1 n α i y i b + ∑ i = 1 n α i = 1 2 w T ∑ i = 1 n α i y i x i − ∑ i = 1 n α i y i w T x i − ∑ i = 1 n α i y i b + ∑ i = 1 n α i = 1 2 w T ∑ i = 1 n α i y i x i − w T ∑ i = 1 n α i y i x i − ∑ i = 1 n α i y i b + ∑ i = 1 n α i = − 1 2 w T ∑ i = 1 n α i y i x i − ∑ i = 1 n α i y i b + ∑ i = 1 n α i = − 1 2 w T ∑ i = 1 n α i y i x i − b ∑ i = 1 n α i y i + ∑ i = 1 n α i = − 1 2 ( ∑ i = 1 n α i y i x i ) T ∑ i = 1 n α i y i x i − b ∑ i = 1 n α i y i + ∑ i = 1 n α i = − 1 2 ∑ i = 1 n α i y i ( x i ) T ∑ i = 1 n α i y i x i − b ∑ i = 1 n α i y i + ∑ i = 1 n α i = − 1 2 ∑ i , j = 1 n α i y i ( x i ) T α j y j x j − b ∑ i = 1 n α i y i + ∑ i = 1 n α i = − 1 2 ∑ i , j = 1 n α i y i α j y j x i T x j − b ∑ i = 1 n α i y i + ∑ i = 1 n α i = ∑ i = 1 n α i − 1 2 ∑ i , j = 1 n α i α j y i y j x i T x j (2.10) \tag{2.10} \begin{aligned} \mathcal{L}(\boldsymbol{w},b,\boldsymbol{\alpha})&=\frac{1}{2}\|\boldsymbol{w}\|^2-\sum_{i=1}^n\alpha_i(y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)-1)\\ &=\frac{1}{2}\boldsymbol{w}^T\boldsymbol{w}-\sum_{i=1}^n\alpha_iy_i\boldsymbol{w}^T\boldsymbol{x}_i-\sum_{i=1}^n\alpha_iy_ib+\sum_{i=1}^n\alpha_i\\ &=\frac{1}{2}\boldsymbol{w}^T\sum_{i=1}^n\alpha_iy_i\boldsymbol{x}_i-\sum_{i=1}^n\alpha_iy_i\boldsymbol{w}^T\boldsymbol{x}_i-\sum_{i=1}^n\alpha_iy_ib+\sum_{i=1}^n\alpha_i\\ &=\frac{1}{2}\boldsymbol{w}^T\sum_{i=1}^n\alpha_iy_i\boldsymbol{x}_i-\boldsymbol{w}^T\sum_{i=1}^n\alpha_iy_i\boldsymbol{x}_i-\sum_{i=1}^n\alpha_iy_ib+\sum_{i=1}^n\alpha_i\\ &=-\frac{1}{2}\boldsymbol{w}^T\sum_{i=1}^n\alpha_iy_i\boldsymbol{x}_i-\sum_{i=1}^n\alpha_iy_ib+\sum_{i=1}^n\alpha_i\\ &=-\frac{1}{2}\boldsymbol{w}^T\sum_{i=1}^n\alpha_iy_i\boldsymbol{x}_i-b\sum_{i=1}^n\alpha_iy_i+\sum_{i=1}^n\alpha_i\\ &=-\frac{1}{2}(\sum_{i=1}^n\alpha_iy_i\boldsymbol{x}_i)^T\sum_{i=1}^n\alpha_iy_i\boldsymbol{x}_i-b\sum_{i=1}^n\alpha_iy_i+\sum_{i=1}^n\alpha_i\\ &=-\frac{1}{2}\sum_{i=1}^n\alpha_iy_i(\boldsymbol{x}_i)^T\sum_{i=1}^n\alpha_iy_i\boldsymbol{x}_i-b\sum_{i=1}^n\alpha_iy_i+\sum_{i=1}^n\alpha_i\\ &=-\frac{1}{2}\sum_{i,j=1}^n\alpha_iy_i(\boldsymbol{x}_i)^T\alpha_jy_j\boldsymbol{x}_j-b\sum_{i=1}^n\alpha_iy_i+\sum_{i=1}^n\alpha_i\\ &=-\frac{1}{2}\sum_{i,j=1}^n\alpha_iy_i\alpha_jy_j\boldsymbol{x}_i^T\boldsymbol{x}_j-b\sum_{i=1}^n\alpha_iy_i+\sum_{i=1}^n\alpha_i\\ &=\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i,j=1}^n\alpha_i\alpha_jy_iy_j\boldsymbol{x}_i^T\boldsymbol{x}_j\\ \end{aligned} L(w,b,α)​=21​∥w∥2−i=1∑n​αi​(yi​(wTxi​+b)−1)=21​wTw−i=1∑n​αi​yi​wTxi​−i=1∑n​αi​yi​b+i=1∑n​αi​=21​wTi=1∑n​αi​yi​xi​−i=1∑n​αi​yi​wTxi​−i=1∑n​αi​yi​b+i=1∑n​αi​=21​wTi=1∑n​αi​yi​xi​−wTi=1∑n​αi​yi​xi​−i=1∑n​αi​yi​b+i=1∑n​αi​=−21​wTi=1∑n​αi​yi​xi​−i=1∑n​αi​yi​b+i=1∑n​αi​=−21​wTi=1∑n​αi​yi​xi​−bi=1∑n​αi​yi​+i=1∑n​αi​=−21​(i=1∑n​αi​yi​xi​)Ti=1∑n​αi​yi​xi​−bi=1∑n​αi​yi​+i=1∑n​αi​=−21​i=1∑n​αi​yi​(xi​)Ti=1∑n​αi​yi​xi​−bi=1∑n​αi​yi​+i=1∑n​αi​=−21​i,j=1∑n​αi​yi​(xi​)Tαj​yj​xj​−bi=1∑n​αi​yi​+i=1∑n​αi​=−21​i,j=1∑n​αi​yi​αj​yj​xiT​xj​−bi=1∑n​αi​yi​+i=1∑n​αi​=i=1∑n​αi​−21​i,j=1∑n​αi​αj​yi​yj​xiT​xj​​(2.10)  最終的優化問題為:

min ⁡ α ∑ i = 1 n α i − 1 2 ∑ i , j = 1 n α i α j y i y j x i T x j  s.t.  α i ≥ 0 , i = 1 , … , n ∑ i = 1 n α i y i = 0 (2.15) \tag{2.15} \begin{array}{ll} \min\limits_{\boldsymbol\alpha} &\sum\limits_{i=1}^n\alpha_i-\frac{1}{2}\sum\limits_{i,j=1}^n\alpha_i\alpha_jy_iy_j\boldsymbol{x}_i^T\boldsymbol{x}_j \\ \text { s.t. } & \alpha_i\geq0,i=1,\dots,n \\ & \sum\limits_{i=1}^n\alpha_iy_i=0 \end{array} αmin​ s.t. ​i=1∑n​αi​−21​i,j=1∑n​αi​αj​yi​yj​xiT​xj​αi​≥0,i=1,…,ni=1∑n​αi​yi​=0​(2.15)

7 線性不可分的情況

  根據目前的推導,有:

w ∗ = ∑ i = 1 n α i y i x i (2.18) \tag{2.18} \boldsymbol{w}^*=\sum_{i=1}^n\alpha_iy_i\boldsymbol{x}_i w∗=i=1∑n​αi​yi​xi​(2.18)  是以分類函數為

f ( x ) = ( ∑ i = 1 n α i y i x i ) T x + b = ∑ i = 1 n α i y i ⟨ x i , x ⟩ + b (2.19) \tag{2.19} \begin{aligned} f(x)&=(\sum_{i=1}^n\alpha_iy_i\boldsymbol{x}_i)^T\boldsymbol{x}+b\\ &=\sum_{i=1}^n\alpha_iy_i\langle\boldsymbol{x}_i,\boldsymbol{x}\rangle+b \end{aligned} f(x)​=(i=1∑n​αi​yi​xi​)Tx+b=i=1∑n​αi​yi​⟨xi​,x⟩+b​(2.19)  這種形式的有趣之處在于,對于新點 x \boldsymbol{x} x的預測,隻需要計算它與訓練資料點的内積。這一點至關重要,是之後使用核函數進行非線性推廣的基本前提。

  事實上,支援向量也在這裡顯示,因為所有非支援向量所對應的 α \alpha α都是零。是以對于新點的内積計算實際上隻需要針對少量的支援向量。非支援向量的 α \alpha α均為零的原因是它們對超平面是沒有影響的。

  目前的分類器是線性不可分的。

8 核函數

  首先介紹使用原始的方法,用線性學習器學習一個非線性關系:需要選擇一個非線性特征集,并且将資料寫成新的表達形式。這等價于應用一個固定的非線性映射,将資料映射到特征空間,在特征空間中使用線性學習器。

  是以,考慮以下分類函數:

f ( x ) = ∑ i = 1 n w i ϕ i ( x ) + b (2.21) \tag{2.21} f(\boldsymbol{x})=\sum_{i=1}^nw_i\phi_i(\boldsymbol{x})+b f(x)=i=1∑n​wi​ϕi​(x)+b(2.21)其中 ϕ : X → F \phi:\mathcal{X}\to\mathcal{F} ϕ:X→F是輸入空間到特征空間的映射。

  進一步,決策規則使用測試點和訓練點的内積來表示:

f ( x ) = ∑ i = 1 n α i y i ⟨ ϕ ( x i ) , ϕ ( x ) ⟩ + b (2.22) \tag{2.22} f(\boldsymbol{x})=\sum_{i=1}^n\alpha_iy_i\langle\phi(\boldsymbol{x}_i),\phi(\boldsymbol{x})\rangle+b f(x)=i=1∑n​αi​yi​⟨ϕ(xi​),ϕ(x)⟩+b(2.22)  如果有一種方式可以在特征空間中直接計算内積 ⟨ ϕ ( x i ) , ϕ ( x ) ⟩ \langle\phi(\boldsymbol{x}_i),\phi(\boldsymbol{x})\rangle ⟨ϕ(xi​),ϕ(x)⟩,就像在原始輸入點的函數中一樣,就可以直接建立一個非線性的學習器。這樣直接計算的方法就稱為核函數方法。

  核函數是一個函數 K K K,對于所有 x , z ∈ X \boldsymbol{x},\boldsymbol{z}\in\mathcal{X} x,z∈X,滿足 K ( x , z ) = ⟨ ϕ ( x ) , ϕ ( z ) ⟩ K(\boldsymbol{x},\boldsymbol{z})=\langle\phi(\boldsymbol{x}),\phi(\boldsymbol{z})\rangle K(x,z)=⟨ϕ(x),ϕ(z)⟩。是以,這時的分類問題變為:

f ( x ) = ∑ i = 1 n α i y i K ( x i , x ) + b (2.27) \tag{2.27} f(\boldsymbol{x})=\sum_{i=1}^n\alpha_iy_iK(\boldsymbol{x}_i,\boldsymbol{x})+b f(x)=i=1∑n​αi​yi​K(xi​,x)+b(2.27)  相應的對偶問題為:

max ⁡ α ∑ i = 1 n α i − 1 2 ∑ i , j = 1 n α i α j y i y j K ( x i , x j )  s.t.  α i ≥ 0 , i = 1 , … , n ∑ i = 1 n α i y i = 0 (2.34) \tag{2.34} \begin{array}{ll} \max\limits_{\alpha} & \sum\limits_{i=1}^{n} \alpha_{i}-\frac{1}{2} \sum\limits_{i, j=1}^{n} \alpha_{i} \alpha_{j} y_{i} y_{j} K\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right) \\ \text { s.t. } & \alpha_{i} \geq 0, i=1, \ldots, n \\ & \sum_{i=1}^{n} \alpha_{i} y_{i}=0 \end{array} αmax​ s.t. ​i=1∑n​αi​−21​i,j=1∑n​αi​αj​yi​yj​K(xi​,xj​)αi​≥0,i=1,…,n∑i=1n​αi​yi​=0​(2.34)

9 使用松弛變量處理outliers

  我們将偏離正常位置很遠的點,稱之為outlier。如下圖,黑圈圈起來的藍色點就是一個outlier,它偏離了自己原本所應該在的那個半空間,如果直接忽略它,原來的分隔超平面還是挺好的。

對《支援向量機通俗導論--了解SVM 的三層境界》的了解引入1 了解線性分類器2 函數間隔和集合間隔3 最大間隔分類器4 從原始問題到對偶問題5 K.K.T.條件6 對偶問題求解7 線性不可分的情況8 核函數9 使用松弛變量處理outliers10 SMO算法

  為了處理這種情況,SVM允許資料點在一定程度上偏離一下超平面。例如上圖中,黑色實線所對應的距離就是該outlier的偏離距離。于是,考慮到outlier問題,限制條件就變為:

y i ( w T x i + b ) ≥ 1 − ξ i , i = 1 , … , n (2.36) \tag{2.36} y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)\geq1-\xi_i,\quad i=1,\dots,n yi​(wTxi​+b)≥1−ξi​,i=1,…,n(2.36)其中 ξ i \xi_i ξi​稱為松弛變量,對應于資料點 x i \boldsymbol{x}_i xi​允許便宜的量。當然,如果允許 ξ i \xi_i ξi​任意大的話,那麼任意的超平面都是符合條件的。是以,我們需要使得 ξ i \xi_i ξi​的總和最小:

min ⁡ 1 2 ∥ w ∥ 2 + C ∑ i = 1 n ξ i (2.37) \tag{2.37} \min\frac{1}{2}\|\boldsymbol{w}\|^2+C\sum_{i=1}^n\xi_i min21​∥w∥2+Ci=1∑n​ξi​(2.37)其中 C C C是用于控制目标函數中兩項的權重,需要實作确定。是以,加入松弛變量的優化問題為

min ⁡ 1 2 ∥ w ∥ 2 + C ∑ i = 1 n ξ i  s.t.  y i ( w T x i + b ) ≥ 1 − ξ i , i = 1 , … , n ξ i ≥ 0 , i = 1 , … , n (2.38) \tag{2.38} \begin{array}{cl} \min & \frac{1}{2}\|\boldsymbol{w}\|^{2}+C \sum\limits_{i=1}^{n} \xi_{i} \\ \text { s.t. } & y_{i}\left(\boldsymbol{w}^{T} \boldsymbol{x}_{i}+b\right) \geq 1-\xi_{i}, i=1, \ldots, n \\ & \xi_{i} \geq 0, i=1, \ldots, n \end{array} min s.t. ​21​∥w∥2+Ci=1∑n​ξi​yi​(wTxi​+b)≥1−ξi​,i=1,…,nξi​≥0,i=1,…,n​(2.38)  得到新的拉格朗日函數:

L ( w , b , ξ , α , r ) = 1 2 ∥ w ∥ 2 + C ∑ i = 1 n ξ i − ∑ i = 1 n α i ( y i ( w T x i + b ) − 1 + x i i ) − ∑ i = 1 n r i ξ i (2.39) \tag{2.39} \mathcal{L}(\boldsymbol{w},b,\boldsymbol\xi,\boldsymbol\alpha,\boldsymbol{r})=\frac{1}{2}\|\boldsymbol{w}\|^2+C\sum_{i=1}^n\xi_i-\sum_{i=1}^n\alpha_i(y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)-1+xi_i)-\sum_{i=1}^nr_i\xi_i L(w,b,ξ,α,r)=21​∥w∥2+Ci=1∑n​ξi​−i=1∑n​αi​(yi​(wTxi​+b)−1+xii​)−i=1∑n​ri​ξi​(2.39)  首先針對 w \boldsymbol{w} w、 b b b和 ξ \xi ξ最小化:

∂ L ∂ w = 0 ⇒ w = ∑ i = 1 n α i y i x i ∂ L ∂ b = 0 ⇒ ∑ i = 1 n α i y i = 0 ∂ L ∂ ξ i = 0 ⇒ C − α i − r i = 0 , i = 1 , … , n (2.40) \tag{2.40} \begin{aligned} \frac{\partial{L}}{\partial{\boldsymbol{w}}}&=0\Rightarrow\boldsymbol{w}=\sum_{i=1}^n\alpha_iy_i\boldsymbol{x}_i\\ \frac{\partial L}{\partial b}&=0\Rightarrow\sum_{i=1}^n\alpha_iy_i=0\\ \frac{\partial L}{\partial{\xi_i}}&=0\Rightarrow C-\alpha_i-r_i=0,\quad i=1,\dots,n \end{aligned} ∂w∂L​∂b∂L​∂ξi​∂L​​=0⇒w=i=1∑n​αi​yi​xi​=0⇒i=1∑n​αi​yi​=0=0⇒C−αi​−ri​=0,i=1,…,n​(2.40)  代入 L \mathcal{L} L,擷取和原來一阿姨那個的目标函數:

max ⁡ α ∑ i = 1 n α i − 1 2 ∑ i , j = 1 n α i α j y i y j x i T x j (2.43) \tag{2.43} \max_\boldsymbol\alpha\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i,j=1}^n\alpha_i\alpha_jy_iy_j\boldsymbol{x}_i^T\boldsymbol{x}_j αmax​i=1∑n​αi​−21​i,j=1∑n​αi​αj​yi​yj​xiT​xj​(2.43)  由于 C − α i − r i = 0 C-\alpha_i-ri=0 C−αi​−ri=0且 r i ≥ 0 r_i\geq0 ri​≥0,則有 α i ≤ C \alpha_i\leq C αi​≤C,是以:

max ⁡ α ∑ i = 1 n α i − 1 2 ∑ i , j = 1 n α i α j y i y j x i T x j  s.t.  0 ≤ α i ≤ C , i = 1 , … , n ∑ i = 1 n α i y i = 0 (2.44) \tag{2.44} \begin{array}{ll} \max \limits_{\boldsymbol\alpha} & \sum\limits_{i=1}^{n} \alpha_{i}-\frac{1}{2} \sum\limits_{i, j=1}^{n} \alpha_{i} \alpha_{j} y_{i} y_{j} \boldsymbol{x}_{i}^{T} \boldsymbol{x}_{j} \\ \text { s.t. } & 0 \leq \alpha_{i} \leq C, i=1, \ldots, n \\ & \sum_{i=1}^{n} \alpha_{i} y_{i}=0 \end{array} αmax​ s.t. ​i=1∑n​αi​−21​i,j=1∑n​αi​αj​yi​yj​xiT​xj​0≤αi​≤C,i=1,…,n∑i=1n​αi​yi​=0​(2.44)

10 SMO算法

  首先定義特征到結果的輸出函數:

u = ⟨ w , x ⟩ − b (3.24) \tag{3.24} u=\langle\boldsymbol{w},\boldsymbol{x}\rangle-b u=⟨w,x⟩−b(3.24)  重新定義優化目标為:

min ⁡ w , b 1 2 ∥ w ∥ 2 s . j . y i ( ⟨ w , x i ⟩ − b ) ≥ 1 , ∀ i (3.25) \tag{3.25} \min_{\boldsymbol{w},b}\frac{1}{2}\|\boldsymbol{w}\|^2\quad s.j.\quad y_i(\langle\boldsymbol{w},\boldsymbol{x}_i\rangle-b)\geq1,\forall_i w,bmin​21​∥w∥2s.j.yi​(⟨w,xi​⟩−b)≥1,∀i​(3.25)  求導有:

w = ∑ i = 1 n y i α i x i , b = ⟨ w , x k ) − y k , for some  α k > 0 \boldsymbol{w}=\sum_{i=1}^ny_i\alpha_i\boldsymbol{x}_i,\quad b=\langle\boldsymbol{w},\boldsymbol{x}_k)-y_k,\text{for some }\alpha_k>0 w=i=1∑n​yi​αi​xi​,b=⟨w,xk​)−yk​,for some αk​>0  得到 u = ∑ j = 1 n y j α j K ( x j , x ) − b u=\sum_{j=1}^ny_j\alpha_jK(\boldsymbol{x}_j,\boldsymbol{x})-b u=∑j=1n​yj​αj​K(xj​,x)−b。

  轉換為對偶問題并加入松弛變量:

min ⁡ α Ψ ( α ) = min ⁡ α 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j K ( x i , x j ) − ∑ i = 1 n α i  s.t.  0 ≤ α i ≤ C , i = 1 , … , n ∑ i = 1 n α i y i = 0 (3.29) \tag{3.29} \begin{aligned} \min _{\boldsymbol\alpha} \Psi(\boldsymbol{\alpha})=& \min _{\boldsymbol\alpha} \frac{1}{2} \sum_{i=1}^{n} \sum_{j=1}^{n} \alpha_{i} \alpha_{j}y_{i} y_{j} K\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right) -\sum_{i=1}^{n} \alpha_{i} \\ \text { s.t. } & 0 \leq \alpha_{i} \leq C, i=1, \ldots, n \\ & \sum_{i=1}^{n} \alpha_{i} y_{i}=0 \end{aligned} αmin​Ψ(α)= s.t. ​αmin​21​i=1∑n​j=1∑n​αi​αj​yi​yj​K(xi​,xj​)−i=1∑n​αi​0≤αi​≤C,i=1,…,ni=1∑n​αi​yi​=0​(3.29)  接下來要解決的問題是:在 α i ∈ { α 1 , … , α n } \alpha_i\in\{\alpha_1,\dots,\alpha_n\} αi​∈{α1​,…,αn​}求上述目标函數的最小值。為求解這些乘子,每次從中任意抽取兩個乘子 α i \alpha_i αi​和 α j \alpha_j αj​,然後固定餘下乘子,使得目标函數隻是關于 α i \alpha_i αi​和 α j \alpha_j αj​的函數。這樣,不斷的從一堆乘子中任意抽取兩個求解,不斷地疊代求解子問題,最終達到求解原問題的目的。

  而原對偶問題的子問題的目标函數可以表達為:

Φ = 1 2 K i j α i 2 + 1 2 K j j α j 2 + K i j α i α j − α i − α j + Φ c o n s t a n t (3.30) \tag{3.30} \Phi=\frac{1}{2}K_{ij}\alpha_i^2+\frac{1}{2}K_{jj}\alpha_j^2+K_{ij}\alpha_i\alpha_j-\alpha_i-\alpha_j+\Phi_{constant} Φ=21​Kij​αi2​+21​Kjj​αj2​+Kij​αi​αj​−αi​−αj​+Φconstant​(3.30)

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

繼續閱讀