346 words
2 minutes

Machine Learning : Support Vector Machine

Intro#

  • 尋找最大Margin的超平面 : fatness(w)=minn=1,...,Ndistance(xn,w)\text{fatness}(\mathbf{w}) = \min_{n=1,...,N} \text{distance}(\mathbf{x}_n, \mathbf{w})
  • 標準型式 : Hard-Margin SVM

Distance#

  • 先做投影 : distance(x,b,w)=wT(xx)w\text{distance}(\mathbf{x}, b, \mathbf{w}) = \frac{|\mathbf{w}^T (\mathbf{x} - \mathbf{x}')|}{\|\mathbf{w}\|}
  • 化簡完之後 : =wTx+bw= \frac{|\mathbf{w}^T \mathbf{x} + b|}{\|\mathbf{w}\|}

分離條件#

  • 對於所有點 nn 須滿足 : yn(wTxn+b)>0y_n(\mathbf{w}^T \mathbf{x}_n + b) > 0 (正確分類)
  • 距離 : yn(wTxn+b)w\frac{y_n(\mathbf{w}^T \mathbf{x}_n + b)}{\|\|\mathbf{w}\|\|}

因為有縮放不變,可以設條件 yn(wTxn+b)=1y_n(\mathbf{w}^T \mathbf{x}_n + b) = 1 ,這樣margin就變成 1w\frac{1}{\|\|\mathbf{w}\|\|}

  • 最終的目標為最小化 w\|\|\mathbf{w}\|\|

SVM with QP Solver#

  • SVM :
Optimal (b,w)=?minb,w12wTwsubject to yn(wTxn+b)1,for n=1,2,...,N\begin{aligned} \text{Optimal } (b, \mathbf{w}) &= ? \\ \min_{b, \mathbf{w}} & \frac{1}{2} \mathbf{w}^T \mathbf{w} \\ \text{subject to } & y_n (\mathbf{w}^T \mathbf{x}_n + b) \ge 1, \quad \text{for } n = 1, 2, ..., N \end{aligned}
  • 重寫成二次規劃 :
Optimal uQP(Q,p,A,c)minu12uTQu+pTusubject to amTucm,for m=1,2,...,M\begin{aligned} \text{Optimal } \mathbf{u} &\leftarrow \text{QP}(Q, \mathbf{p}, A, \mathbf{c}) \\ \min_{\mathbf{u}} & \frac{1}{2} \mathbf{u}^T Q \mathbf{u} + \mathbf{p}^T \mathbf{u} \\ \text{subject to } & \mathbf{a}_m^T \mathbf{u} \ge c_m, \quad \text{for } m = 1, 2, ..., M \end{aligned}

二次規劃 : 解出向量 u\mathbf{u},使目標函數 12uTQu+pTu\frac{1}{2} \mathbf{u}^T Q \mathbf{u} + \mathbf{p}^T \mathbf{u} 在滿足約束 AucA \mathbf{u} \ge \mathbf{c} 的情況下達到最小

  • 變數對應 :
    • 向量 u\mathbf{u} : u=[bw]\mathbf{u} = \begin{bmatrix} b \\ \mathbf{w} \end{bmatrix} ,維度 = d+1d+1
    • QQ 矩陣 : 左上角=0, 右上角和左下角是 1×d1 \times dd×1d \times 1 的零向量, 右下角為單位矩陣
    • pp 向量 : 零向量 (沒有 bbw\mathbf{w} 的一次項)
    • AA 矩陣和 c\mathbf{c} 向量 : SVM約束
    • aiTa_i^T 向量 : yi[1,xiT]y_i [1, \mathbf{x}_i^T]
    • ci=1c_i=1

呼叫 QP Solver : u=QP(Q,p,A,c)\mathbf{u}^* = \text{QP}(Q, \mathbf{p}, A, \mathbf{c}), 取得 u\*\mathbf{u}^{\*} 就是 [bw]\begin{bmatrix} b^* \\ \mathbf{w}^* \end{bmatrix} ,可以用來定義分類超平面

Machine Learning : Support Vector Machine
https://blog.cyberangel.work/posts/machine-learning-support-vector-machine/
Author
Ethan
Published at
2025-06-01
License
CC BY-NC-SA 4.0
Last updated on 2025-06-01,186 days ago

Some content may be outdated

Table of Contents