原理

手撕SVM——硬间隔

上面这幅图,存在两类线性可分的数据,在两个数据集之间存在无数个可进行分割的超平面,而SVM的目的是找到几何间隔最大的超平面,且这个超平面是唯一存在的。如上图的超平面WTX + b = 0,就是上图数据集的几何间隔最大超平面。

推导过程

假设给定一个特征空间上的训练数据集T = {(x1,y1),(x2,y2),…(xn,yn)}。
其中xi\inRn,yi\in{-1,+1}。
设超平面为ω\omegaTx + b = 0 ,则yi = ω\omega×\timesxi+ b
yi={+1yi>01yi<0 y_i =\begin{cases} +1 &y_i > 0 \\ -1 & y_i < 0 \\ \end{cases}

所有样本点到超平面的距离叫做几何间隔γ\gammai,令最小的γ\gammai = γ\gamma
γ\gammai = ω×xi+bω\frac{|ω×x_i+b |}{ ||ω|| } = yi(ω×xi+b)ω\frac{y_i(ω×x_i+b )}{ ||ω|| }

γ\gamma = mini=1,2...n\min_{i = 1,2...n}{γ\gammai} = minxi\min_{x_i} yi(ω×xi+b)ω\frac{y_i(ω×x_i+b )}{ ||ω|| }
所以可得:
γ\gammai = yi(w×xi+b)ω\frac{y_i(w×x_i+b )}{ ||ω|| } \geq γ\gamma \Rightarrow yi(w×xi+b)ωγ\frac{y_i(w×x_i+b )}{ ||ω||γ } \geq 1
令ω = ωωγ\frac{ ω }{ ||ω||γ },可得
yi×\timesxi+b ) \geq 1

根据以上定义可得最初的约束条件:
={maxω,bγyi(ω×xi+b)1 原始约束=\begin{cases} \max_{ω,b} \gamma \\ y_i(ω×x_i+b )≥1 \end{cases}

又因为最大化γ\gamma,相当于要最大化1ω\frac{ 1 }{ ||ω|| },即最小化12\frac{ 1 }{2 }||ω||2。此时约束条件进行下面的改变:
={minω,b12ω2yi(ω×xi+b)1(1) 不等式约束=\begin{cases} min_{ω,b} \frac{ 1 }{2 }||ω||^2 \\ y_i(ω×x_i+b )≥1 \end{cases}\tag{1}

根据式子(1),通过拉格朗日乘子法可得:

L(w,b,α\alpha) = 12\frac{ 1 }{2 }||ω||2 - i=0n\sum_{i=0}^nα\alphai( yi×\timesxi + b ) -1 )
因为要满足KKT条件,所以yi×\timesxi + b ) -1 \geq 0、α\alphai( yi×\timesxi + b ) -1 ) = 0、其中α\alphai为拉格朗日乘子,且α\alphai ≥ 0.
所以约束条件变为:
={minω,bmaxαL(w,b,α)=12ω2i=0nαiyiω×xi+b1αi0.yiω×xi+b0αi(yi(ω×xi+b)1)=0(2) 对偶问题=\begin{cases} \min_{ω,b} \max_{\alpha} L(w,b,\alpha) = \frac{ 1 }{2 }||ω||^2 -\sum_{i=0}^n\alpha_i(y_i(ω \times x_i + b)- 1)\\ \alpha_i ≥ 0.\\ y_i(ω \times x_i + b)≥ 0\\ \alpha_i( y_i (ω \times x_i + b ) -1 ) = 0 \end{cases}\tag{2}

因为满足KKT条件的凸二次规划问题,所以满足强对偶关系,即
minω,bmaxαL(ω,b,α)=maxαminω,bL(ω,b,α)(3) \min_{ω,b} \max_{\alpha} L(ω,b,\alpha) = \max_{\alpha} \min_{ω,b} L(ω,b,\alpha) \tag{3}

下面对L的ω求偏导:
Lω=ωi=0nαiyixi=0(4) \frac{\partial L}{\partial ω} = ω - \sum_{i=0}^n \alpha_i y_i x_i = 0 \tag{4}
下面再对L的b求偏导:
Lb=(i=0nαiyi)=0(5) \frac{\partial L}{\partial b} = -( \sum_{i=0}^n \alpha_i y_i) = 0 \tag{5}

将公式(4)(5)带入 minω,bmin_{ω,b} L(ω,b,α\alpha)可得:

minω,bmin_{ω,b} L(ω,b,α\alpha) = 12\frac{ 1 }{2 } i=0n\sum_{i=0}^n j=0n\sum_{j=0}^n α\alphaiα\alphaj yi yj xiTxj + i=0n\sum_{i=0}^n α\alphai - i=0n\sum_{i=0}^n j=0n\sum_{j=0}^n α\alphaiα\alphaj yi yj xiTxj = -12\frac{ 1 }{2 } i=0n\sum_{i=0}^n j=0n\sum_{j=0}^n α\alphaiα\alphaj yi yj xiTxj + i=0n\sum_{i=0}^n α\alphai
即:
minω,bL(ω,b,α)=12i=0nj=0nαiαjyiyjxiTxj+i=0nαi(6) min_{ω,b} L(ω,b,\alpha) = -\frac{ 1 }{2 } \sum_{i=0}^n \sum_{j=0}^n \alpha_i \alpha_j y_i y_j x_i^Tx_j + \sum_{i=0}^n\alpha_i \tag{6}

由式(6)可知:
maxα\max_{\alpha} minω,bL(ω,b,α)min_{ω,b} L(ω,b,\alpha) = maxα\max_{\alpha} (-12\frac{ 1 }{2 } i=0n\sum_{i=0}^n j=0n\sum_{j=0}^n α\alphaiα\alphaj yi yj xiTxj + i=0n\sum_{i=0}^n α\alphai )
通过添加负号,可将maxα\max_{\alpha}转为minα\min_{\alpha},即:
minα\min_{\alpha} P(α\alpha) = 12\frac{ 1 }{2 } i=0n\sum_{i=0}^n j=0n\sum_{j=0}^n α\alphaiα\alphaj yi yj xiTxj - i=0n\sum_{i=0}^n α\alphai

然后通过序列最小优化(SMO)算法可求出使得P最小的α\alpha,记为α\alpha*。(这里先省略推导过程,以后再写)

由式(4)可得最优解
ω=i=0nαiyixi(7) ω* = \sum_{i=0}^n \alpha^*_i y_i x_i \tag{7}

\exists(xk,yk) ,使得 1 - ykTxk + b) = 0,

b=ykωTxk=yki=0nαiyixiTxk(8) b* = y_k - ω*^Tx_k = y_k - \sum_{i=0}^n \alpha^*_i y_i x_i^Tx_k \tag{8}

所以,最后的超平面是ω*T x + b* = 0

相关文章: