機器學習基礎專題:支援向量機SVM

野營者007發表於2020-10-18

支援向量機

全稱Support Vector Machine (SVM)。可以分為硬間隔(hard margin SVM),軟間隔(soft margin SVM),和核支援向量機(kernel margin SVM)。

原理

輸入

訓練集資料 D = ( x 1 , y 1 ) . . . ( x M , y M ) D = {(x_1,y_1) ... (x_M,y_M)} D=(x1,y1)...(xM,yM) x i ∈ X ⊆ R p x_i \in \mathcal{X} \subseteq R^p xiXRp y i ∈ R y_i \in R yiR

X = ( x 1   x 2   . . .   x M ) T ∈ R M ∗ p X = (x_1\ x_2\ ...\ x_M)^T \in R^{M*p} X=(x1 x2 ... xM)TRMp

f ( x ) = s i g n ( w T x + b ) f(x) = sign(w^Tx+b) f(x)=sign(wTx+b)

正則化引數 λ 1 \lambda_1 λ1 λ 2 \lambda_2 λ2

輸出

線性迴歸模型 f ^ ( x ) \hat f(x) f^(x)

損失函式

硬間隔SVM也稱為最大間隔分類器。

m a r g i n ( w , b ) = m i n   d i s t a n c e ( w , b , x i ) margin(w, b) = min\ distance(w, b, x_i) margin(w,b)=min distance(w,b,xi)

為了簡化運算,我們指定最小的margin為1(可以通過縮放實現)。我們希望達成以下目標。

m a x   m a r g i n ( w , b )   s . t .   y i ( w T x i + b ) > 0   ∀   i = 1 ∼ M max\ margin(w, b)\ s.t.\ y_i(w^Tx_i+b) > 0 \ \forall \ i =1 \sim M max margin(w,b) s.t. yi(wTxi+b)>0  i=1M

進行數學推導,
m a x   m a r g i n ( w , b ) = m a x w , b m i n x i 1 ∣ ∣ w ∣ ∣ y i ( w T x i + b ) = m a x w , b 1 ∣ ∣ w ∣ ∣ m i n x i y i ( w T x i + b ) max\ margin(w, b) = max_{w, b} min_{x_i} \frac{1} {||w||} y_i(w^T x_i + b) \\\\ = max_{w, b} \frac{1} {||w||} min_{x_i} y_i(w^T x_i + b) \\\\ max margin(w,b)=maxw,bminxiw1yi(wTxi+b)=maxw,bw1minxiyi(wTxi+b)
可以簡化成
m a x   m a r g i n ( w , b ) = m a x w , b 1 ∣ ∣ w ∣ ∣ s . t .   y i ( w T x i + b ) > = 1   ∀   i = 1 ∼ M max \ margin(w, b) = max_{w, b} \frac{1} {||w||} \\\\ s.t. \ y_i(w^Tx_i + b) >= 1 \ \forall \ i =1 \sim M max margin(w,b)=maxw,bw1s.t. yi(wTxi+b)>=1  i=1M
或者
m a x   m a r g i n ( w , b ) = m i n w , b ∣ ∣ w ∣ ∣ s . t .   y i ( w T x i + b ) > = 1   ∀   i = 1 ∼ M max \ margin(w, b) = min_{w, b} {||w||} \\\\ s.t. \ y_i(w^Tx_i + b) >= 1 \ \forall \ i =1 \sim M max margin(w,b)=minw,bws.t. yi(wTxi+b)>=1  i=1M
從而我們很容易得到損失函式( λ ≥ 0 \lambda \ge 0 λ0),
L ( w , b , λ ) = 1 2 w T w + ∑ i = 1 M λ i ( 1 − y i ( w T x i + b ) ) m i n w , b   m a x λ L ( w , b , λ )   s . t .   λ i ≥ 0 L(w, b, \lambda) = \frac 1 2 w^Tw + \sum_{i=1}^M \lambda_i(1 - y_i(w^Tx_i+b)) \\\\ min_{w, b} \ max_{\lambda} L(w,b,\lambda) \ s.t. \ \lambda_i \ge 0 L(w,b,λ)=21wTw+i=1Mλi(1yi(wTxi+b))minw,b maxλL(w,b,λ) s.t. λi0
y i ( w T x i + b ) > 0 y_i(w^Tx_i+b) > 0 yi(wTxi+b)>0時,很容易證明 L L L的最大值是正無窮。當 y i ( w T x i + b ) ≤ 0 y_i(w^Tx_i+b) \le 0 yi(wTxi+b)0時, L L L的最大值是在 λ \lambda λ取0時,整體等於$\frac 1 2 w^Tw $。

我們可以證明 m i n   m a x   L = m a x   m i n   L min \ max \ L = max \ min \ L min max L=max min L,此處省略。這個被稱為強對偶關係。

我們將上面的原問題轉化成對偶問題如下,
m a x λ   m i n w , b   L ( w , b , λ )   s . t .   λ i ≥ 0 max_{\lambda}\ min_{w, b} \ L(w,b,\lambda) \ s.t. \ \lambda_i \ge 0 maxλ minw,b L(w,b,λ) s.t. λi0
進行求導,
m i n w , b   L ( w , b , λ ) ∂ L ∂ b = ∂ [ ∑ i = 1 M λ i − ∑ i = 1 M λ i y i ( w T x i + b ) ] ∂ b = 0 解 得 ∑ i = 1 M λ i y i = 0 將 其 代 入 L L ( w , b , λ ) = 1 2 w T w + ∑ i = 1 M λ i − ∑ i = 1 M λ i y i w T x i ∂ L ∂ w = 0 w ∗ = ∑ i = 1 M λ i y i w T x i 將 其 代 入 L L ( w , b , λ ) = 1 2 ( ∑ j = 1 M λ j y j w T x j ) T ( ∑ j = 1 M λ j y j w T x j ) + ∑ i = 1 M λ i − ∑ i = 1 M λ i y i ( ∑ j = 1 M λ j y j w T x j ) T x i = − 1 2 ( ∑ i = 1 M ∑ j = 1 M λ i λ j y i y j x i x j ) + ∑ i = 1 M λ i min_{w, b} \ L(w,b,\lambda) \\\\ \frac{\partial L} {\partial b} = \frac{\partial [\sum_{i=1}^M \lambda_i - \sum_{i=1}^M \lambda_i y_i(w^Tx_i+b)]} {\partial b} = 0\\\\ 解得\sum_{i=1}^M \lambda_i y_i= 0 \\\\ 將其代入 L \\\\ L(w, b, \lambda) = \frac 1 2 w^Tw + \sum_{i=1}^M \lambda_i - \sum_{i=1}^M \lambda_i y_i w^T x_i \\\\ \frac{\partial L} {\partial w} = 0 \\\\ w^* = \sum_{i=1}^M \lambda_i y_i w^T x_i \\\\ 將其代入 L \\\\ L(w, b, \lambda) \\\\ = \frac 1 2 (\sum_{j=1}^M \lambda_j y_j w^T x_j)^T(\sum_{j=1}^M \lambda_j y_j w^T x_j) + \sum_{i=1}^M \lambda_i - \sum_{i=1}^M \lambda_i y_i (\sum_{j=1}^M \lambda_j y_j w^T x_j)^T x_i \\\\ = -\frac 1 2 (\sum_{i=1}^M \sum_{j=1}^M \lambda_i \lambda_j y_i y_j x_i x_j) + \sum_{i=1}^M \lambda_i minw,b L(w,b,λ)bL=b[i=1Mλii=1Mλiyi(wTxi+b)]=0i=1Mλiyi=0LL(w,b,λ)=21wTw+i=1Mλii=1MλiyiwTxiwL=0w=i=1MλiyiwTxiLL(w,b,λ)=21(j=1MλjyjwTxj)T(j=1MλjyjwTxj)+i=1Mλii=1Mλiyi(j=1MλjyjwTxj)Txi=21(i=1Mj=1Mλiλjyiyjxixj)+i=1Mλi

從而,我們將問題再次進行了轉換,我的目標是
m i n λ   1 2 ( ∑ i = 1 M ∑ j = 1 M λ i λ j y i y j x i x j ) − ∑ i = 1 M λ i λ i ≥ 0 ∑ i = 1 M λ i y i = 0 min_{\lambda} \ \frac 1 2 (\sum_{i=1}^M \sum_{j=1}^M \lambda_i \lambda_j y_i y_j x_i x_j) - \sum_{i=1}^M \lambda_i \\\\ \lambda_i \ge 0 \\\\ \sum_{i=1}^M \lambda_i y_i = 0 minλ 21(i=1Mj=1Mλiλjyiyjxixj)i=1Mλiλi0i=1Mλiyi=0
因為我們的原問題和對偶問題具有強對偶關係,我們通過KKT條件
∂ L ∂ w = 0 ∂ L ∂ b = 0 ∂ L ∂ λ = 0 λ i ( 1 − y i ( w T x i + b ) ) = 0 λ i ≥ 0 1 − y i ( w T x i + b ) ≤ 0 \frac {\partial L} {\partial w} = 0 \\\\ \frac {\partial L} {\partial b} = 0 \\\\ \frac {\partial L} {\partial \lambda} = 0 \\\\ \lambda_i(1-y_i(w^Tx_i+b)) = 0 \\\\ \lambda_i \ge 0 \\\\ 1-y_i(w^Tx_i+b) \le 0 wL=0bL=0λL=0λi(1yi(wTxi+b))=0λi01yi(wTxi+b)0
可以得到最優解,

w ∗ = ∑ i = 1 M λ i y i x i w^* = \sum_{i=1}^M \lambda_i y_i x_i w=i=1Mλiyixi

我們還需要代入一個處於邊界上的點 ( x k , y k ) (x_k, y_k) (xk,yk)滿足$ 1-y_k(w^Tx_k+b) = 0$,再求解偏置
1 − y k ( w T x k + b ) = 0 y k ( w T x k + b ) = 1 y k 2 ( w T x k + b ) = y k ( w T x k + b ) = y k b ∗ = y k − w T x k b ∗ = y k − ∑ i = 1 M λ i y i x i T x k 1 - y_k(w^Tx_k+b) = 0 \\\\ y_k(w^Tx_k+b) = 1 \\\\ y_k^2(w^Tx_k+b) = y_k \\\\ (w^Tx_k+b) = y_k \\\\ b^* = y_k - w^Tx_k \\\\ b^* = y_k - \sum_{i=1}^M \lambda_i y_i x_i^T x_k 1yk(wTxk+b)=0yk(wTxk+b)=1yk2(wTxk+b)=yk(wTxk+b)=ykb=ykwTxkb=yki=1MλiyixiTxk
軟間隔SVM允許少量錯誤。

L ( w , b ) = m i n 1 2 w T w + l o s s L(w, b) = min \frac 1 2 w^Tw + loss L(w,b)=min21wTw+loss

我們可以將後面額外的損失定義為0-1 loss,更常用的是hinge loss。

那麼,我們可以重新定義損失函式為
L ( w , b ) = m i n w , b 1 2 w T w + C ∗ ∑ i = 1 M m a x ( 0 , 1 − y i ( w T x i + b ) ) 1 − y i ( w T x i + b ) ≤ 0 L(w,b) = min_{w,b} \frac 1 2 w^Tw + C*\sum_{i=1}^M max(0, 1-y_i(w^Tx_i+b)) \\\\ 1-y_i(w^Tx_i+b) \le 0 L(w,b)=minw,b21wTw+Ci=1Mmax(0,1yi(wTxi+b))1yi(wTxi+b)0
C C C起到了一個正則化的作用。

適用場景

普遍適用。

優點

  1. 邊界只由少數的支援向量所決定,避免維度災難
  2. 可解釋性好
  3. 對離群資料敏感度較小,魯棒性高

缺點

  1. 對大規模訓練樣本而言,消耗大量記憶體和運算時間
  2. 解決多分類問題時,需要多組SVM模型

核方法

對應英文是Kernel Method。核方法用於解決有資料集類別之間的邊界壓根不是線性的。對於原始的輸入空間 X \mathcal X X,使用 ϕ ( x ) \phi(x) ϕ(x)進行非線性轉換成為特徵空間 Z \mathcal Z Z,從而達到線性可分的狀態。理論基礎是Cover Theorem,即高維空間比低維空間更易線性可分。

ϕ ( x ) \phi(x) ϕ(x)維度非常高的情況下,求 ϕ ( x i ) \phi(x_i) ϕ(xi)非常困難。我們發現有一種核技巧(kernel trick),可以在不需要單獨計算 ϕ ( x i ) \phi(x_i) ϕ(xi) ϕ ( x j ) \phi(x_j) ϕ(xj)的前提下得到 ϕ ( x i ) T ϕ ( x j ) \phi(x_i)^T\phi(x_j) ϕ(xi)Tϕ(xj)。畢竟後者才是我們 L L L中需要得到的值。

K ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) K(x_i, x_j) = \phi(x_i)^T\phi(x_j) K(xi,xj)=ϕ(xi)Tϕ(xj)

一般情況下,我們的核函式 K K K指的是正定核函式。有函式 K K K可以做到從 X ∗ X \mathcal X * \mathcal X XX R R R的對映, ∃ Φ ∈ H \exist \Phi \in \mathcal H ΦH,使得 K ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) K(x_i, x_j) = \phi(x_i)^T\phi(x_j) K(xi,xj)=ϕ(xi)Tϕ(xj),那麼稱 K K K為正定核函式。我們再介紹一下希爾伯特空間 H \mathcal H H。它是完備的(對極限是封閉的),可能是無限維的,被賦予內積運算的一個線性空間。

正定核函式性質

  1. 對稱性,即 K ( x i , x j ) = K ( x j , x i ) K(x_i, x_j) = K(x_j, x_i) K(xi,xj)=K(xj,xi)
  2. 正定性,即任取 X \mathcal X X中的M個元素,從 x 1 x_1 x1 x M x_M xM,對應的Gram matrix是半正定的

我們來證明正定核函式的性質。先證明必要性。

已知 K ( x i , x j ) = < ϕ ( x i ) , ϕ ( x j ) > K(x_i, x_j) = <\phi(x_i),\phi(x_j)> K(xi,xj)=<ϕ(xi),ϕ(xj)>,要證明其對稱性和正定性。

對稱性可以由內積的對稱性證明。我們現在想要證明對應的Gram matrix是半正定的。令Gram matrix是 G = [ K ( x i , x j ) ] G = [K(x_i, x_j)] G=[K(xi,xj)]。所以需要證明對於任意 α ∈ R M \alpha \in R^M αRM,有 α T G α ≥ 0 \alpha^T G \alpha \ge 0 αTGα0
α T G α = ∑ i = 1 M ∑ j = 1 M α i α j K ( x i , x j ) = ∑ i = 1 M ∑ j = 1 M α i α j ϕ ( x i ) T ϕ ( x j ) = ∑ i = 1 M α i ϕ ( x i ) T ∑ j = 1 M α j ϕ ( x j ) = [ ∑ i = 1 M α i ϕ ( x i ) ] T [ ∑ j = 1 M α j ϕ ( x j ) ] = ∣ ∣ ∑ i = 1 M α i ϕ ( x i ) ∣ ∣ 2 ≥ 0 \alpha^T G \alpha \\\\ = \sum_{i=1}^M \sum_{j=1}^M \alpha_i \alpha_j K(x_i, x_j) \\\\ = \sum_{i=1}^M \sum_{j=1}^M \alpha_i \alpha_j \phi(x_i)^T\phi(x_j) \\\\ = \sum_{i=1}^M \alpha_i \phi(x_i)^T \sum_{j=1}^M \alpha_j \phi(x_j) \\\\ = [\sum_{i=1}^M \alpha_i \phi(x_i)]^T [\sum_{j=1}^M \alpha_j \phi(x_j)] \\\\ = ||\sum_{i=1}^M \alpha_i \phi(x_i)||^2 \ge 0 αTGα=i=1Mj=1MαiαjK(xi,xj)=i=1Mj=1Mαiαjϕ(xi)Tϕ(xj)=i=1Mαiϕ(xi)Tj=1Mαjϕ(xj)=[i=1Mαiϕ(xi)]T[j=1Mαjϕ(xj)]=i=1Mαiϕ(xi)20
我們就證明了Gram Matrix是半正定的。

約束優化

我們定義原問題的最優解為 d ∗ d^* d,對偶問題的最優解是 p ∗ p^* p

定義原問題 m i n x f ( x ) min_x f(x) minxf(x),有N個不等式約束, n i ( x ) ≤ 0 n_i(x) \le 0 ni(x)0,有M個等式約束, m i ( x ) = 0 m_i(x) = 0 mi(x)=0

轉換後的原問題的無約束形式為 m i n x   m a x λ , η = L ( x , λ , η ) min_x \ max_{\lambda, \eta} = L(x, \lambda, \eta) minx maxλ,η=L(x,λ,η) λ i ≥ 0 \lambda_i \ge 0 λi0

下面是轉換的說明。

拉格朗日函式:

L ( x , λ , η ) = f ( x ) + ∑ j = 1 N λ j n j + ∑ i = 1 M m i η i L(x, \lambda, \eta) = f(x) + \sum_{j=1}^N \lambda_j n_j + \sum_{i=1}^M m_i \eta_i L(x,λ,η)=f(x)+j=1Nλjnj+i=1Mmiηi

如果 x x x違反了不等式約束,那麼 m a x λ L max_\lambda L maxλL一定會趨近於正無窮。所以在其前面加上一個 m i n min min相當於進行了一次過濾,將所有不滿足不等式約束的 x x x都過濾掉了。

弱對偶

我們接著證明原問題和對偶問題是相等的。對偶問題是 m a x x   m i n λ , η = L ( x , λ , η ) max_x \ min_{\lambda, \eta} = L(x, \lambda, \eta) maxx minλ,η=L(x,λ,η) λ i ≥ 0 \lambda_i \ge 0 λi0

我們先證明弱對偶性,原問題的值會大於等於對偶問題,即 m i n   m a x   L ≥ m a x   m i n   L min \ max \ L \ge max \ min \ L min max Lmax min L
m i n x   L ( x , λ , η ) ≤ L ( x , λ , η ) ≤ m a x λ , η   L ( x , λ , η ) A ( λ , η ) ≤ B ( x ) A ( λ , η ) ≤ m i n   B ( x ) m a x   A ( λ , η ) ≤ m i n   B ( x ) min_x \ L(x, \lambda, \eta) \le L(x, \lambda, \eta) \le max_{\lambda, \eta} \ L(x, \lambda, \eta) \\\\ A(\lambda, \eta) \le B(x) \\\\ A(\lambda, \eta) \le min \ B(x) \\\\ max \ A(\lambda, \eta) \le min \ B(x) \\\\ minx L(x,λ,η)L(x,λ,η)maxλ,η L(x,λ,η)A(λ,η)B(x)A(λ,η)min B(x)max A(λ,η)min B(x)

Slater Condition

存在一點 x ∈ r e l i n t   D x \in relint \ D xrelint D,使得對於所有的 n i ( x ) < 0 n_i(x) < 0 ni(x)<0。relint代表相對內部。

對於大多數凸優化問題,slater條件成立。

放鬆的slater條件是指,如果N中有K個仿射函式,那麼只需要校驗其餘的函式滿足slater條件即可。

通過弱對偶和Slater Condition可以推出強對偶關係。強對偶關係是下面的KKT條件的充要條件。

庫恩塔克條件

通常被稱為KKT條件。

可行條件

有N個不等式約束, n i ( x ∗ ) ≤ 0 n_i(x^*) \le 0 ni(x)0,有M個等式約束, m i ( x ∗ ) = 0 m_i(x^*) = 0 mi(x)=0 λ ∗ = 0 \lambda^* = 0 λ=0

互補鬆弛條件

λ j ∗ n j = 0 \lambda_j^* n_j = 0 λjnj=0
d ∗ = m a x λ , η g ( λ , η ) = g ( λ ∗ , η ∗ ) = m i n x L ( x , λ ∗ , η ∗ ) = L ( x ∗ , λ ∗ , η ∗ ) = f ( x ∗ ) + ∑ j = 1 N λ j ∗ n j + ∑ i = 1 M m i ∗ η i = f ( x ∗ ) + ∑ j = 1 N λ j ∗ n j = f ( x ∗ ) = p ∗ d^* = max_{\lambda, \eta} g(\lambda, \eta) \\\\ = g(\lambda^*, \eta^*) \\\\ = min_x L(x, \lambda^*, \eta^*) \\\\ = L(x^*, \lambda^*, \eta^*) \\\\ = f(x^*) + \sum_{j=1}^N \lambda_j^* n_j + \sum_{i=1}^M m_i^* \eta_i \\\\ = f(x^*) + \sum_{j=1}^N \lambda_j^* n_j \\\\ = f(x^*) \\\\ = p^* d=maxλ,ηg(λ,η)=g(λ,η)=minxL(x,λ,η)=L(x,λ,η)=f(x)+j=1Nλjnj+i=1Mmiηi=f(x)+j=1Nλjnj=f(x)=p

梯度為0

m i n x L ( x , λ ∗ , η ∗ ) = L ( x ∗ , λ ∗ , η ∗ ) min_x L(x, \lambda^*, \eta^*) \\\\ = L(x^*, \lambda^*, \eta^*) \\\\ minxL(x,λ,η)=L(x,λ,η)

Reference

相關文章