SVM 之线性支持向量机
支持向量机是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解。
模型包括以下几类:
-
当训练样本线性可分时,通过硬间隔最大化,学习一个线性可分支持向量机;
-
当训练样本近似线性可分时,通过软间隔最大化,学习一个线性支持向量机;
-
当训练样本线性不可分时,通过核技巧和软间隔最大化,学习一个非线性支持向量机;
- 序列最小最优化算法 $SMO$;
1. 基本概念
如果数据集不是线性可分的,比如二维空间中,就是找不到一条直线能刚好把正负例分开,此时忽略掉一些异常点,就可以用一个分离超平面把正负例给分开。
这样的话也就不是硬间隔了,而是软间隔。
对每个样本点引入一个松弛变量 $\xi_{i} \geq 0$,并引入一个惩罚系数 $C > 0$,$C$ 越大表示对特异点的惩罚越大,此时最优化问题变为:
$$min \;\; \frac{1}{2}||w||^{2} + C\sum_{i=1}^{n}\xi_{i}\\
s.t. \;\;\; y_{i}\left ( w^{T}x_{i} + b\right ) \geq 1 - \xi_{i}, \; i = 1,2,\cdots,n \\
\xi_{i} \geq 0, \; i = 1,2,\cdots,n$$
也就是说,现在所选的支撑超平面之间并不是严格“真空”的,存在一些特异点,我们允许它存在,但这样的模型得付出一点代价。
2. 学习的对偶算法
建立拉格朗日函数:
$$L(w,b,\xi,\alpha,\mu) = \frac{1}{2}||w||^{2} + C\sum_{i=1}^{n}\xi_{i} + \sum_{i=1}^{n}\alpha_{i}\left [ 1 - \xi _{i} - y_{i}\left ( w^{T}x_{i} + b\right ) \right ] - \sum_{i = 1}^{n}\mu_{i}\xi_{i} \\
= \frac{1}{2}||w||^{2} + C\sum_{i=1}^{n}\xi_{i} - \sum_{i=1}^{n}\alpha_{i}y_{i}\left ( w^{T}x_{i} + b\right ) + \sum_{i=1}^{n}\alpha_{i}\left ( 1 - \xi_{i} \right ) - \sum_{i = 1}^{n}\mu_{i}\xi_{i}, \;\; \alpha_{i} \geq 0, \mu_{i} \geq 0$$
求解此不等式约束问题的 KKT 条件为
$$\left\{\begin{matrix}
L_{w} = w - \sum_{i=1}^{n}\alpha_{i}y_{i}x_{i} = 0 \\
L_{b} = -\sum_{i=1}^{n}\alpha_{i}y_{i} = 0 \\
L_{\xi_{i}} = C - \alpha_{i} - \mu_{i} = 0, \; i = 1,2,\cdots,n \\
y_{i}\left ( w^{T}x_{i} + b\right ) - 1 + \xi_{i} \geq 0, \; i = 1,2,\cdots,n \\
\xi_{i} \geq 0, \; i = 1,2,\cdots,n \\
\alpha_{i} \left [ y_{i}\left ( w^{T}x_{i} + b\right ) - 1 + \xi_{i} \right ] = 0, \; i = 1,2,\cdots,n \\
\mu_{i}\xi_{i} = 0, \; i = 1,2,\cdots,n \\
\alpha_{i} \geq 0,\; i = 1,2,\cdots,n \\
\mu_{i} \geq 0,\; i = 1,2,\cdots,n
\end{matrix}\right. \; \Rightarrow \;
\left\{\begin{matrix}
w = \sum_{i=1}^{n}\alpha_{i}y_{i}x_{i} \\
\sum_{i=1}^{n}\alpha_{i}y_{i} = 0 \\
C - \alpha_{i} - \mu_{i} = 0, \; i = 1,2,\cdots,n \\
b = y_{j}(1 - \xi_{j}) - w^{T}x_{j} = y_{j} - \sum_{i=1}^{n}\alpha_{i}y_{i}x_{i}^{T}x_{j}, \;(0 < \alpha_{j} < C)
\end{matrix}\right.$$
若存在一个 $0 < \alpha_{j} < C$,则根据 $C - \alpha_{j} - \mu_{j} = 0$ 可知,必有 $\mu_{j} > 0$,又 $\mu_{j}\xi_{j} = 0$,所以 $\xi_{j} = 0$。
根据拉格朗日对偶转化原始问题,最终我们所要求解的最优化问题为
$$\min_{\alpha } \; \frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i}^{T}x_{j}) -\sum_{i=1}^{n}\alpha_{i} \\
s.t. \;\;\; \sum_{i=1}^{n}\alpha_{i}y_{i} = 0 \\
0 \leq \alpha_{i} \leq C, \; i = 1,2,\cdots,n$$