SVM 之线性支持向量机

支持向量机是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解。

模型包括以下几类:

1. 基本概念

   如果数据集不是线性可分的,比如二维空间中,就是找不到一条直线能刚好把正负例分开,此时忽略掉一些异常点,就可以用一个分离超平面把正负例给分开。

   这样的话也就不是硬间隔了,而是软间隔。

   对每个样本点引入一个松弛变量 $xi_{i} geq 0$,并引入一个惩罚系数 $C > 0$,$C$ 越大表示对特异点的惩罚越大,此时最优化问题变为:

$$min ;; frac{1}{2}||w||^{2} + Csum_{i=1}^{n}xi_{i}\
s.t. ;;; y_{i}left ( w^{T}x_{i} + b ight ) 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} + Csum_{i=1}^{n}xi_{i} + sum_{i=1}^{n}alpha_{i}left [ 1 - xi _{i} - y_{i}left ( w^{T}x_{i} + b ight ) ight ] - sum_{i = 1}^{n}mu_{i}xi_{i} \
= frac{1}{2}||w||^{2} + Csum_{i=1}^{n}xi_{i} - sum_{i=1}^{n}alpha_{i}y_{i}left ( w^{T}x_{i} + b ight ) + sum_{i=1}^{n}alpha_{i}left ( 1 - xi_{i} ight ) - sum_{i = 1}^{n}mu_{i}xi_{i}, ;; alpha_{i} geq 0, mu_{i} geq 0$$

   求解此不等式约束问题的 KKT 条件为

$$left{egin{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 ight ) - 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 ight ) - 1 + xi_{i} ight ] = 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} ight. ; Rightarrow ;
left{egin{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} ight.$$

   若存在一个 $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$$

原文地址:https://www.cnblogs.com/yanghh/p/13806618.html