支持向量機的原理和案例解析
- 一、支持向量機的核心目標:間隔最大化
- 步驟1:定義分離超平面
- 步驟2:定義樣本到超平面的距離(間隔)
- 步驟3:間隔最大化的目標
- 步驟4:簡化目標函數
- 二、通過拉格朗日乘子法求解優化問題
- 步驟5:構建拉格朗日函數
- 步驟6:求解對偶問題(KKT條件)
- 步驟7:求導化簡(核心推導)
- 步驟8:對偶問題的目標函數
- 步驟9:求解超平面參數
- 步驟10:分類決策函數
- 三、數學案例:線性可分數據的SVM求解
- 步驟1:直觀分析
- 步驟2:代入對偶問題約束
- 步驟3:計算對偶目標函數
- 步驟4:最大化對偶函數
- 步驟5:計算 w\boldsymbol{w}w 和 bbb
- 步驟6:驗證超平面
- 總結
一、支持向量機的核心目標:間隔最大化
支持向量機的核心思想是在兩類數據中找到一個最優分離超平面,使得兩類數據到超平面的“間隔”最大。我們從線性可分情況開始推導(非線性情況可通過核函數擴展)。
步驟1:定義分離超平面
在n維空間中,線性分離超平面的方程為:
w?x+b=0(1)\boldsymbol{w} \cdot \boldsymbol{x} + b = 0 \tag{1}w?x+b=0(1)
- w=(w1,w2,...,wn)T\boldsymbol{w} = (w_1, w_2, ..., w_n)^Tw=(w1?,w2?,...,wn?)T 是超平面的法向量(決定超平面方向);
- bbb 是偏置項(決定超平面位置);
- x=(x1,x2,...,xn)T\boldsymbol{x} = (x_1, x_2, ..., x_n)^Tx=(x1?,x2?,...,xn?)T 是樣本點的特征向量。
對于二分類問題,假設樣本標簽為 y∈{+1,?1}y \in \{+1, -1\}y∈{+1,?1}(分別代表正、負類),則超平面需滿足:
- 正類樣本:w?x+b>0\boldsymbol{w} \cdot \boldsymbol{x} + b > 0w?x+b>0(即 y=+1y=+1y=+1);
- 負類樣本:w?x+b<0\boldsymbol{w} \cdot \boldsymbol{x} + b < 0w?x+b<0(即 y=?1y=-1y=?1)。
步驟2:定義樣本到超平面的距離(間隔)
為衡量超平面的“分離能力”,需定義樣本到超平面的距離。
-
函數間隔:對于樣本 (xi,yi)(\boldsymbol{x}_i, y_i)(xi?,yi?),函數間隔為 yi(w?xi+b)y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i + b)yi?(w?xi?+b)。
- 意義:若值為正,說明分類正確(yiy_iyi? 與 w?xi+b\boldsymbol{w} \cdot \boldsymbol{x}_i + bw?xi?+b 同號);絕對值越大,分類可信度越高。
-
幾何間隔:函數間隔受 w\boldsymbol{w}w 和 bbb 縮放影響(例如 w→2w,b→2b\boldsymbol{w} \to 2\boldsymbol{w}, b \to 2bw→2w,b→2b 時超平面不變,但函數間隔翻倍),因此需歸一化:
γi=yi(w?xi+b)∥w∥(2)\gamma_i = \frac{y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i + b)}{\|\boldsymbol{w}\|} \tag{2}γi?=∥w∥yi?(w?xi?+b)?(2)
其中 ∥w∥=w?w\|\boldsymbol{w}\| = \sqrt{\boldsymbol{w} \cdot \boldsymbol{w}}∥w∥=w?w? 是 w\boldsymbol{w}w 的L2范數,幾何間隔即樣本到超平面的實際歐氏距離。
步驟3:間隔最大化的目標
最優超平面需滿足:所有樣本的幾何間隔中最小的那個(即“最小間隔”)盡可能大。
設數據集的最小幾何間隔為 γ=min?iγi\gamma = \min_i \gamma_iγ=mini?γi?,目標是最大化 γ\gammaγ:
max?w,bγs.t.yi(w?xi+b)∥w∥≥γ(?i)(3)\max_{\boldsymbol{w}, b} \gamma \quad \text{s.t.} \quad \frac{y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i + b)}{\|\boldsymbol{w}\|} \geq \gamma \quad (\forall i) \tag{3}w,bmax?γs.t.∥w∥yi?(w?xi?+b)?≥γ(?i)(3)
步驟4:簡化目標函數
由于超平面 (w,b)(\boldsymbol{w}, b)(w,b) 與 (kw,kb)(k\boldsymbol{w}, kb)(kw,kb)(k>0k>0k>0)表示同一平面,可通過縮放將最小函數間隔歸一化為1(即 yi(w?xi+b)≥1y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i + b) \geq 1yi?(w?xi?+b)≥1),此時最小幾何間隔 γ=1∥w∥\gamma = \frac{1}{\|\boldsymbol{w}\|}γ=∥w∥1?。
因此,最大化 γ\gammaγ 等價于最小化 ∥w∥\|\boldsymbol{w}\|∥w∥(或 12∥w∥2\frac{1}{2}\|\boldsymbol{w}\|^221?∥w∥2,便于求導),目標函數簡化為:
min?w,b12∥w∥2s.t.yi(w?xi+b)≥1(?i)(4)\min_{\boldsymbol{w}, b} \frac{1}{2}\|\boldsymbol{w}\|^2 \quad \text{s.t.} \quad y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i + b) \geq 1 \quad (\forall i) \tag{4}w,bmin?21?∥w∥2s.t.yi?(w?xi?+b)≥1(?i)(4)
二、通過拉格朗日乘子法求解優化問題
式(4)是帶不等式約束的凸優化問題,可通過拉格朗日乘子法轉化為對偶問題求解。
步驟5:構建拉格朗日函數
引入拉格朗日乘子 αi≥0\alpha_i \geq 0αi?≥0(對應每個約束條件),拉格朗日函數為:
L(w,b,α)=12∥w∥2?∑i=1Nαi[yi(w?xi+b)?1](5)\mathcal{L}(\boldsymbol{w}, b, \boldsymbol{\alpha}) = \frac{1}{2}\|\boldsymbol{w}\|^2 - \sum_{i=1}^N \alpha_i \left[ y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i + b) - 1 \right] \ (5)L(w,b,α)=21?∥w∥2?i=1∑N?αi?[yi?(w?xi?+b)?1]?(5)
- 第一項是原目標函數;
- 第二項是約束條件的懲罰項(αi≥0\alpha_i \geq 0αi?≥0 確保約束被滿足)。
步驟6:求解對偶問題(KKT條件)
凸優化的對偶問題需滿足KKT(Karush-Kuhn-Tucker)條件,即:
- 原始可行性:yi(w?xi+b)≥1y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i + b) \geq 1yi?(w?xi?+b)≥1;
- 對偶可行性:αi≥0\alpha_i \geq 0αi?≥0;
- 互補松弛:αi[yi(w?xi+b)?1]=0\alpha_i \left[ y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i + b) - 1 \right] = 0αi?[yi?(w?xi?+b)?1]=0(若 αi>0\alpha_i > 0αi?>0,則約束取等號,即 yi(w?xi+b)=1y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i + b) = 1yi?(w?xi?+b)=1);
- 梯度為零:?wL=0\nabla_{\boldsymbol{w}} \mathcal{L} = 0?w?L=0,?bL=0\nabla_b \mathcal{L} = 0?b?L=0。
步驟7:求導化簡(核心推導)
對 w\boldsymbol{w}w 和 bbb 求偏導并令其為0:
-
對 w\boldsymbol{w}w 求導:
?wL=w?∑i=1Nαiyixi=0?w=∑i=1Nαiyixi(6)\nabla_{\boldsymbol{w}} \mathcal{L} = \boldsymbol{w} - \sum_{i=1}^N \alpha_i y_i \boldsymbol{x}_i = 0 \implies \boldsymbol{w} = \sum_{i=1}^N \alpha_i y_i \boldsymbol{x}_i \ (6)?w?L=w?i=1∑N?αi?yi?xi?=0?w=i=1∑N?αi?yi?xi??(6)
(w\boldsymbol{w}w 可由樣本的線性組合表示,系數為 αiyi\alpha_i y_iαi?yi?) -
對 bbb 求導:
?bL=?∑i=1Nαiyi=0?∑i=1Nαiyi=0(7)\nabla_b \mathcal{L} = -\sum_{i=1}^N \alpha_i y_i = 0 \implies \sum_{i=1}^N \alpha_i y_i = 0 \ (7)?b?L=?i=1∑N?αi?yi?=0?i=1∑N?αi?yi?=0?(7)
步驟8:對偶問題的目標函數
將式(6)代入拉格朗日函數(5),化簡對偶問題:
-
展開 12∥w∥2\frac{1}{2}\|\boldsymbol{w}\|^221?∥w∥2:
12∥w∥2=12(∑i=1Nαiyixi)?(∑j=1Nαjyjxj)=12∑i=1N∑j=1Nαiαjyiyj(xi?xj)\frac{1}{2}\|\boldsymbol{w}\|^2 = \frac{1}{2} \left( \sum_{i=1}^N \alpha_i y_i \boldsymbol{x}_i \right) \cdot \left( \sum_{j=1}^N \alpha_j y_j \boldsymbol{x}_j \right) = \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (\boldsymbol{x}_i \cdot \boldsymbol{x}_j)21?∥w∥2=21?(i=1∑N?αi?yi?xi?)?(j=1∑N?αj?yj?xj?)=21?i=1∑N?j=1∑N?αi?αj?yi?yj?(xi??xj?) -
展開懲罰項:
∑i=1Nαi[yi(w?xi+b)?1]=∑i=1Nαiyi(w?xi)+∑i=1Nαiyib?∑i=1Nαi\sum_{i=1}^N \alpha_i \left[ y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i + b) - 1 \right] = \sum_{i=1}^N \alpha_i y_i (\boldsymbol{w} \cdot \boldsymbol{x}_i) + \sum_{i=1}^N \alpha_i y_i b - \sum_{i=1}^N \alpha_ii=1∑N?αi?[yi?(w?xi?+b)?1]=i=1∑N?αi?yi?(w?xi?)+i=1∑N?αi?yi?b?i=1∑N?αi?
由式(6)和(7),第二項 ∑αiyib=b?0=0\sum \alpha_i y_i b = b \cdot 0 = 0∑αi?yi?b=b?0=0,第一項:
∑i=1Nαiyi(w?xi)=∑i=1Nαiyi(∑j=1Nαjyjxj?xi)=∑i=1N∑j=1Nαiαjyiyj(xi?xj)\sum_{i=1}^N \alpha_i y_i (\boldsymbol{w} \cdot \boldsymbol{x}_i) = \sum_{i=1}^N \alpha_i y_i \left( \sum_{j=1}^N \alpha_j y_j \boldsymbol{x}_j \cdot \boldsymbol{x}_i \right) = \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (\boldsymbol{x}_i \cdot \boldsymbol{x}_j)i=1∑N?αi?yi?(w?xi?)=i=1∑N?αi?yi?(j=1∑N?αj?yj?xj??xi?)=i=1∑N?j=1∑N?αi?αj?yi?yj?(xi??xj?) -
合并化簡拉格朗日函數:
L=12∑i,jαiαjyiyj(xi?xj)?[∑i,jαiαjyiyj(xi?xj)?∑iαi]\mathcal{L} = \frac{1}{2} \sum_{i,j} \alpha_i \alpha_j y_i y_j (\boldsymbol{x}_i \cdot \boldsymbol{x}_j) - \left[ \sum_{i,j} \alpha_i \alpha_j y_i y_j (\boldsymbol{x}_i \cdot \boldsymbol{x}_j) - \sum_i \alpha_i \right]L=21?i,j∑?αi?αj?yi?yj?(xi??xj?)?[i,j∑?αi?αj?yi?yj?(xi??xj?)?i∑?αi?]
=?12∑i,jαiαjyiyj(xi?xj)+∑iαi= -\frac{1}{2} \sum_{i,j} \alpha_i \alpha_j y_i y_j (\boldsymbol{x}_i \cdot \boldsymbol{x}_j) + \sum_i \alpha_i=?21?i,j∑?αi?αj?yi?yj?(xi??xj?)+i∑?αi?
因此,對偶問題轉化為最大化以下函數( subject to 約束 αi≥0\alpha_i \geq 0αi?≥0 和 ∑αiyi=0\sum \alpha_i y_i = 0∑αi?yi?=0):
max?α(∑i=1Nαi?12∑i=1N∑j=1Nαiαjyiyj(xi?xj))(8)\max_{\boldsymbol{\alpha}} \left( \sum_{i=1}^N \alpha_i - \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (\boldsymbol{x}_i \cdot \boldsymbol{x}_j) \right) \tag{8}αmax?(i=1∑N?αi??21?i=1∑N?j=1∑N?αi?αj?yi?yj?(xi??xj?))(8)
步驟9:求解超平面參數
通過對偶問題求出 α\boldsymbol{\alpha}α 后,可計算:
- w\boldsymbol{w}w:由式(6),w=∑αiyixi\boldsymbol{w} = \sum \alpha_i y_i \boldsymbol{x}_iw=∑αi?yi?xi?;
- bbb:由互補松弛條件,對 αi>0\alpha_i > 0αi?>0 的樣本(即支持向量),yi(w?xi+b)=1y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i + b) = 1yi?(w?xi?+b)=1,解得:
b=yi?w?xi=yi?∑j=1Nαjyj(xj?xi)(9)b = y_i - \boldsymbol{w} \cdot \boldsymbol{x}_i = y_i - \sum_{j=1}^N \alpha_j y_j (\boldsymbol{x}_j \cdot \boldsymbol{x}_i) \tag{9}b=yi??w?xi?=yi??j=1∑N?αj?yj?(xj??xi?)(9)
步驟10:分類決策函數
對新樣本 x\boldsymbol{x}x,分類結果由超平面的符號決定:
f(x)=sign(w?x+b)=sign(∑i=1Nαiyi(xi?x)+b)(10)f(\boldsymbol{x}) = \text{sign}(\boldsymbol{w} \cdot \boldsymbol{x} + b) = \text{sign}\left( \sum_{i=1}^N \alpha_i y_i (\boldsymbol{x}_i \cdot \boldsymbol{x}) + b \right) \ (10)f(x)=sign(w?x+b)=sign(i=1∑N?αi?yi?(xi??x)+b)?(10)
三、數學案例:線性可分數據的SVM求解
設二維數據集如下(線性可分):
- 正類(y=+1y=+1y=+1):x1=(3,3)T\boldsymbol{x}_1 = (3, 3)^Tx1?=(3,3)T,x2=(4,3)T\boldsymbol{x}_2 = (4, 3)^Tx2?=(4,3)T;
- 負類(y=?1y=-1y=?1):x3=(1,1)T\boldsymbol{x}_3 = (1, 1)^Tx3?=(1,1)T,x4=(2,1)T\boldsymbol{x}_4 = (2, 1)^Tx4?=(2,1)T。
步驟1:直觀分析
最優超平面應位于兩類數據中間,假設支持向量為 x1\boldsymbol{x}_1x1?(正類)和 x3\boldsymbol{x}_3x3?(負類),即 α1>0,α3>0\alpha_1 > 0, \alpha_3 > 0α1?>0,α3?>0,α2=α4=0\alpha_2 = \alpha_4 = 0α2?=α4?=0(非支持向量)。
步驟2:代入對偶問題約束
由 ∑αiyi=0\sum \alpha_i y_i = 0∑αi?yi?=0:
α1?1+α3?(?1)=0?α1=α3(11)\alpha_1 \cdot 1 + \alpha_3 \cdot (-1) = 0 \implies \alpha_1 = \alpha_3 \tag{11}α1??1+α3??(?1)=0?α1?=α3?(11)
步驟3:計算對偶目標函數
目標函數式(8)簡化為(僅保留 α1,α3\alpha_1, \alpha_3α1?,α3?):
W(α)=α1+α3?12[α12(x1?x1)+α32(x3?x3)+2α1α3y1y3(x1?x3)]W(\alpha) = \alpha_1 + \alpha_3 - \frac{1}{2} \left[ \alpha_1^2 (x_1 \cdot x_1) + \alpha_3^2 (x_3 \cdot x_3) + 2\alpha_1 \alpha_3 y_1 y_3 (x_1 \cdot x_3) \right]W(α)=α1?+α3??21?[α12?(x1??x1?)+α32?(x3??x3?)+2α1?α3?y1?y3?(x1??x3?)]
代入數據:
- x1?x1=32+32=18x_1 \cdot x_1 = 3^2 + 3^2 = 18x1??x1?=32+32=18,x3?x3=12+12=2x_3 \cdot x_3 = 1^2 + 1^2 = 2x3??x3?=12+12=2;
- x1?x3=3?1+3?1=6x_1 \cdot x_3 = 3 \cdot 1 + 3 \cdot 1 = 6x1??x3?=3?1+3?1=6,y1y3=1?(?1)=?1y_1 y_3 = 1 \cdot (-1) = -1y1?y3?=1?(?1)=?1;
- 由 α1=α3=α\alpha_1 = \alpha_3 = \alphaα1?=α3?=α,得:
W(α)=2α?12[α2?18+α2?2+2α2?(?1)?6]W(\alpha) = 2\alpha - \frac{1}{2} \left[ \alpha^2 \cdot 18 + \alpha^2 \cdot 2 + 2\alpha^2 \cdot (-1) \cdot 6 \right]W(α)=2α?21?[α2?18+α2?2+2α2?(?1)?6]
=2α?12[20α2?12α2]=2α?4α2= 2\alpha - \frac{1}{2} \left[ 20\alpha^2 - 12\alpha^2 \right] = 2\alpha - 4\alpha^2=2α?21?[20α2?12α2]=2α?4α2
步驟4:最大化對偶函數
對 W(α)W(\alpha)W(α) 求導并令其為0:
dWdα=2?8α=0?α=14\frac{dW}{d\alpha} = 2 - 8\alpha = 0 \implies \alpha = \frac{1}{4}dαdW?=2?8α=0?α=41?
因此,α1=α3=14\alpha_1 = \alpha_3 = \frac{1}{4}α1?=α3?=41?,α2=α4=0\alpha_2 = \alpha_4 = 0α2?=α4?=0。
步驟5:計算 w\boldsymbol{w}w 和 bbb
- w=α1y1x1+α3y3x3=14?1?(3,3)+14?(?1)?(1,1)=(3?14,3?14)=(0.5,0.5)\boldsymbol{w} = \alpha_1 y_1 \boldsymbol{x}_1 + \alpha_3 y_3 \boldsymbol{x}_3 = \frac{1}{4} \cdot 1 \cdot (3,3) + \frac{1}{4} \cdot (-1) \cdot (1,1) = \left( \frac{3-1}{4}, \frac{3-1}{4} \right) = (0.5, 0.5)w=α1?y1?x1?+α3?y3?x3?=41??1?(3,3)+41??(?1)?(1,1)=(43?1?,43?1?)=(0.5,0.5);
- 由支持向量 x1\boldsymbol{x}_1x1? 求 bbb:y1(w?x1+b)=1y_1(\boldsymbol{w} \cdot \boldsymbol{x}_1 + b) = 1y1?(w?x1?+b)=1
1?(0.5?3+0.5?3+b)=1?3+b=1?b=?21 \cdot (0.5 \cdot 3 + 0.5 \cdot 3 + b) = 1 \implies 3 + b = 1 \implies b = -21?(0.5?3+0.5?3+b)=1?3+b=1?b=?2
步驟6:驗證超平面
超平面方程:0.5x1+0.5x2?2=00.5x_1 + 0.5x_2 - 2 = 00.5x1?+0.5x2??2=0(即 x1+x2=4x_1 + x_2 = 4x1?+x2?=4)。
- 正類樣本 x1\boldsymbol{x}_1x1? 到超平面的距離:∣3+3?4∣0.52+0.52=2\frac{|3+3-4|}{\sqrt{0.5^2 + 0.5^2}} = \sqrt{2}0.52+0.52?∣3+3?4∣?=2?;
- 負類樣本 x3\boldsymbol{x}_3x3? 到超平面的距離:∣1+1?4∣0.52+0.52=2\frac{|1+1-4|}{\sqrt{0.5^2 + 0.5^2}} = \sqrt{2}0.52+0.52?∣1+1?4∣?=2?,滿足間隔最大化。
總結
SVM通過間隔最大化確定最優超平面,利用拉格朗日乘子法將原始問題轉化為對偶問題,最終僅通過支持向量(αi>0\alpha_i > 0αi?>0 的樣本)即可求解超平面參數。這一特性使其在高維空間中仍具高效性,且可通過核函數擴展到非線性分類場景。以下將對支持向量機(SVM)的核心公式原理進行逐步驟詳細推導,并結合數學案例說明,確保每一步的邏輯和計算過程清晰可追溯。