1. 支持向量机
1.1 支持向量机模型
给定一个线性可分数据集 D = { ( x i , y i ) ∣ x i ∈ R n , y i ∈ { − 1 , 1 } } \mathcal{D}=\{(x_i,y_i)|x_i \in \mathcal{R^n}, y_i \in \{-1,1\}\} D={(xi,yi)∣xi∈Rn,yi∈{
−1,1}},一个法向量 w ⃗ \vec{w} w 和偏置 b b b ,则记 M M M 为示例的最小几何间隔。
M = min i = 1 , … , m γ i = min i = 1 , … , m y i ( w ⃗ T ∣ ∣ w ⃗ ∣ ∣ x i ⃗ + b ∣ ∣ w ⃗ ∣ ∣ ) (1-5) M=\min_{i=1,\dots,m}\gamma_i = \min_{i=1,\dots,m}y_i(\frac{\vec{w}^T}{||\vec{w}||}\vec{x_i} + \frac{b}{||\vec{w}||}) \tag{1-5} M=i=1,…,mminγi=i=1,…,mminyi(∣∣w∣∣wTxi+∣∣w∣∣b)(1-5)
通过公式 1-2 可知,SVM 优化问题可以写成下面形式:
max w ⃗ , b M s . t . γ i ≥ M , i = 1 , ⋯ , m (1-6) \max_{\vec{w},b} M \\ s.t. \gamma_i \geq M,i=1, \cdots, m \tag{1-6} w,bmaxMs.t.γi≥M,i=1,⋯,m(1-6)
这个约束条件保证了每个样本点的几何间隔只少为 M M M,即数据集 D \mathcal{D} D 是线性可分的,具体来说:
- 正样本( y i = 1 y_i=1 yi=1):对于正样本,这个条件就变为 w ⃗ T x i ⃗ + b ≥ M ∣ ∣ w ⃗ ∣ ∣ \vec{w}^T\vec{x_i} + b \geq M||\vec{w}|| wTxi+b≥M∣∣w∣∣。这确保了正样本在超平面的正侧,并且距离超平面至少为 M M M。
- 负样本( y i = − 1 y_i=-1 yi=−1):对于负样本,这个条件就变为 w ⃗ T x i ⃗ + b ≤ − M ∣ ∣ w ⃗ ∣ ∣ \vec{w}^T\vec{x_i} + b \leq -M||\vec{w}|| wTxi+b≤−M∣∣w∣∣。这确保了负样本在超平面负侧,并且距离超平面至少为 M M M。
根据比率不变性,我们可以令 M ∣ ∣ w ⃗ ∣ ∣ = 1 M||\vec{w}|| = 1 M∣∣w∣∣=1,原优化问题的约束条件依然不变(数据线性可分),简化后的方程如下:
max w ⃗ , b 1 ∣ ∣ w ⃗ ∣ ∣ s . t . y i ( w ⃗ T x i ⃗ + b ) ≥ 1 , i = 1 , ⋯ , m \max_{\vec{w},b}\frac{1}{
{||\vec{w}||}} \\ s.t.\quad y_i(\vec{w}^T\vec{x_i} + b) \geq 1,i=1, \cdots, m w,bmax∣∣w∣∣1s.t.yi(wTxi+b)≥1,i=1,⋯,m
在运筹学中,一般将最大值优化问题转化最小值优化问题,即
min w ⃗ , b 1 2 ∣ ∣ w ⃗ ∣ ∣ 2 s . t . 1 − y i ( w ⃗ T x i ⃗ + b ) ≤ 0 , i = 1 , ⋯ , m (1-7) \min_{\vec{w},b}\frac{1}{2}||\vec{w}||^2 \\ s.t. \quad 1 - y_i(\vec{w}^T\vec{x_i} + b) \leq 0,i=1, \cdots, m \tag{1-7} w,bmin21∣∣w∣∣2s.t.1−yi(wTxi+b)≤0,i=1,⋯,m(1-7)
其中,目标函数乘以 1 2 \frac{1}{2} 21 为了简化优化过程。很显然,该优化为凸优化问题,更具体,它是一个二次优化问题 - 目标函数是二次函数,约束条件是线性函数。这个优化问题可以使用现成的二次规划(Quadratic Programming,QP)优化器进行求解。
1. 2 模型求解
1.2.1 原问题转换为Lagrange对偶问题
第一步: 固定 λ \lambda λ,让 L \mathscr{L} L 关于 w ⃗ \vec{w} w 和 b b b 最小化。
构建Lagrange函数:
L = 1 2 ∣ ∣ w ⃗ ∣ ∣ 2 + ∑ i = 1 m λ i { 1 − y i ( w ⃗ T x i ⃗ + b ) } (1-8) \mathscr{L}=\frac{1}{2}||\vec{w}||^2 + \sum_{i=1}^{m}\lambda_i\{1 - y_i(\vec{w}^T\vec{x_i} + b)\} \tag{1-8} L=21∣∣w∣∣2+i=1∑mλi{
1−yi(wTxi+b)}(1-8)
解:
L = 1 2 w ⃗ T w ⃗ + ∑ i = 1 m λ i { 1 − y i ( w ⃗ T x i ⃗ + b ) } = 1 2 w ⃗ T w ⃗ + ∑ i = 1 m λ i − ∑ i = 1 m λ i y i w ⃗ T x i ⃗ − ∑ i = 1 m λ i y i b \begin{align*} \mathscr{L}&=\frac{1}{2}\vec{w}^T\vec{w} + \sum_{i=1}^{m}\lambda_i\{1 - y_i(\vec{w}^T\vec{x_i} + b)\} \\ &= \frac{1}{2}\vec{w}^T\vec{w} + \sum_{i=1}^{m}\lambda_i - \sum_{i=1}^{m}\lambda_iy_i\vec{w}^T\vec{x_i} - \sum_{i=1}^{m}\lambda_iy_ib \end{align*} L=21wTw+i=1∑mλi{
1−yi(wTxi+b)}=21wTw+i=1∑mλi−i=1∑mλiyiwTxi−i=1∑mλiyib
对 w ⃗ , b \vec{w},b w,b求偏导,并令其等于0,可得
∂ L ∂ w ⃗ = w ⃗ − ∑ i = 1 m λ i y i x i ⃗ = 0 ∂ L ∂ b = ∑ i = 1 m λ i y i = 0 \frac{\partial{\mathscr{L}}}{\partial{\vec{w}}} = \vec{w} - \sum_{i=1}^{m}\lambda_iy_i\vec{x_i} = 0 \\ \frac{\partial{\mathscr{L}}}{\partial{b}} = \sum_{i=1}^{m}\lambda_iy_i = 0 ∂w∂L=w−i=1∑mλiyixi=0∂b∂L=i=1∑mλiyi=0
则
w ⃗ = ∑ i = 1 m λ i y i x i ⃗ ∑ i = 1 m λ i y i = 0 \vec{w} = \sum_{i=1}^{m}\lambda_iy_i\vec{x_i} \\ \sum_{i=1}^{m}\lambda_iy_i = 0 w=i=1∑mλiyixii=1∑mλiyi=0
将以上结果代回式(1-8),可得
L = 1 2 w ⃗ T w ⃗ + ∑ i = 1 m λ i − ∑ i = 1 m λ i y i w ⃗ T x i ⃗ − ∑ i = 1 m λ i y i b = 1 2 w ⃗ T ∑ i = 1 m λ i y i x i ⃗ − w ⃗ T ∑ i = 1 m λ i y i x i ⃗ + ∑ i = 1 m λ i = ∑ i = 1 m λ i − 1 2 w ⃗ T ∑ i = 1 m λ i y i x i ⃗ = ∑ i = 1 m λ i − 1 2 ( ∑ i = 1 m λ i y i x i ⃗ ) T ∑ i = 1 m λ i y i x i ⃗ = ∑ i = 1 m λ i − 1 2 ∑ i = 1 , j = 1 m λ i λ j y i x i ⃗ T y j x j ⃗ (1-9) \begin{align} \mathscr{L}&=\frac{1}{2}\vec{w}^T\vec{w} + \sum_{i=1}^{m}\lambda_i - \sum_{i=1}^{m}\lambda_iy_i\vec{w}^T\vec{x_i} - \sum_{i=1}^{m}\lambda_iy_ib \\ &=\frac{1}{2}\vec{w}^T\sum_{i=1}^{m}\lambda_iy_i\vec{x_i} - \vec{w}^T \sum_{i=1}^{m}\lambda_iy_i\vec{x_i} + \sum_{i=1}^{m}\lambda_i \\ &=\sum_{i=1}^{m}\lambda_i - \frac{1}{2}\vec{w}^T\sum_{i=1}^{m}\lambda_iy_i\vec{x_i} \\ &=\sum_{i=1}^{m}\lambda_i - \frac{1}{2}(\sum_{i=1}^{m}\lambda_iy_i\vec{x_i})^T\sum_{i=1}^{m}\lambda_iy_i\vec{x_i} \\ &=\sum_{i=1}^{m}\lambda_i - \frac{1}{2}\sum_{i=1,j=1}^{m}\lambda_i\lambda_jy_i\vec{x_i}^Ty_j\vec{x_j} \end{align} \tag{1-9} L=21wTw+i=1∑mλi−i=1∑mλiyiwTxi−i=1∑mλiyib=21wTi=1∑mλiyixi−wTi=1∑mλiyixi+i=1∑mλi=i=1∑mλi−21wTi=1∑mλiyixi=i=1∑mλi−21(i=1∑mλiyixi)T