线性SVM和软间隔SVM

参考:

1, 西瓜书

2,https://www.cnblogs.com/massquantity/p/10920043.html

 

1,给定训练样本集D = {(x_{1}, y_{1}), (x_{2}, y_{2}), ... (x_{m}, y_{m})},  y_{i} \in {-1, +1}, i = 1, 2, ..., m

现在要找一个超平面y = w^{T}x + b,使得对于任意的(x_{i}, y_{i}\in D,有:

\left\{\begin{matrix} w^Tx_{i} + b \geqslant +1,y_{i} = +1 \\ \\ w^Tx_{i} + b \leqslant -1, y_{i} = -1 \\ \end{matrix}\right.

 

2,支持向量

使得等式w^{T}x + b = 1或者w^{T}x + b = -1成立的向量(一个样本)称为支持向量;

也就是在超平面w^{T}x + b = 1w^{T}x + b = -1上的向量称为支持向量;

如下图红色箭头所指,共有三个支持向量

3,间隔

超平面w^{T}x + b = 1 到超平面w^{T}x + b = -1的距离称为间隔。

也可以看成是超平面w^{T}x + b = -1上的一点x'到w^{T}x + b = 1的距离,由点到超平面的距离公式,间隔为:

\frac{\left | w^Tx' + b -1 \right |}{\left \| w \right \|}

w^Tx' + b = -1

则间隔为\frac{2}{\left \| w \right \|}

 

4,基本型问题

基本型问题的想法是“使得间隔最大化”,也就是“使得间隔倒数最小化”,有优化问题:

\mathop{min}\limits_{w, b}\frac{1}{2}\left \| w \right \|^2\\ \ s.t.\ y_{i}(w^Tx_{i} + b)\geqslant 1,i = 1, 2,...,m

这就是svm的基本型问题;

 

5,将基本型问题的转换为对偶问题

转换的原因:基本型问题带不等式约束,难以求解,转换为不带约束的对偶问题,比较好求解;

v =\begin{bmatrix} w \\ b \end{bmatrix}

f(v) = \frac{1}{2}\left \| w \right \|^2

则Lagrange函数为:

L(v,\alpha) = f(v) - \sum_{i}^{m}\alpha_{i}g_{i}(v)\\ =\frac{1}{2}\left \| w \right \|^2 - \sum_{i}^{m}\alpha_{i}(y_{i}(w^Tx_{i} + b) - 1)

 

则其对偶问题为:

max_{ \alpha}min_{v}L(v, \lambda)\\ s.t.\,\alpha_{i}\geqslant 0

也就是:

max_{ \alpha}min_{w,b}(\frac{1}{2}\left \| w \right \|^2 - \sum_{i}^{m}\alpha_{i}(y_{i}(w^Tx_{i} + b) - 1))\\ s.t.\,\alpha_{i}\geqslant 0

 

由优化理论,如果原问题为:

min\ f(v) \\ s.t.\ g_{i}(v)\geqslant 0 , i = 1, 2, ...,m

则其对偶问题为:

\begin{matrix} max\ \theta (\alpha ) \\ s.t.\ \alpha \geqslant 0 \end{matrix}

其中,\alpha = [\alpha_{1}\ \alpha_{2}... \ \alpha_{m}]^{T}

\theta (\alpha ) = inf( f(v) - \sum ^{m}_{i = 1}\alpha_{i}g_{i}(v))

则原问题:

min\ f(v) \\ s.t.\ g_{i}(v)\geqslant 0 , i = 1, 2, ...,m

的对偶问题为:

\mathop{max}\limits_{\alpha}\mathop{inf}\limits_{w, b}(\frac{1}{2}\left \| w \right \|^2 - \sum ^{m}_{i = 1}\alpha_{i}\begin{bmatrix} y_{i}(w^Tx_{i} + b) - 1 \end{bmatrix})\\ \\ s.t.\ \alpha \geqslant 0

inf是下确界的意思,可以直接写成min,于是对偶问题改写为:

\mathop{max}\limits_{\alpha}\mathop{min}\limits_{w, b}(\frac{1}{2}\left \| w \right \|^2 - \sum ^{m}_{i = 1}\alpha_{i}\begin{bmatrix} y_{i}(w^Tx_{i} + b) - 1 \end{bmatrix})\\ \\ s.t.\ \alpha \geqslant 0                                                            

 

上式内层对 (w,b) 的优化属于无约束优化问题,则令偏导等于零:

\frac{\partial L}{\partial w} = 0\frac{\partial L}{\partial b} = 0

即有:

w = \sum ^{m}_{i = 1}\alpha_{i} y_{i}x_{i}

0 = \sum ^{m}_{i = 1}\alpha_{i} y_{i}

将上两式代入:

\mathop{max}\limits_{\alpha}\mathop{min}\limits_{w, b}(\frac{1}{2}\left \| w \right \|^2 - \sum ^{m}_{i = 1}\alpha_{i}\begin{bmatrix} y_{i}(w^Tx_{i} + b) - 1 \end{bmatrix})

消去了w,b,最终得到了无约束的对偶问题:

\mathop{max}\limits_{\alpha}\sum_{i = 1}^{m}\alpha _{i} -\frac{1}{2}\sum_{i = 1}^{m}\sum_{j= 1}^{m}\alpha _{i}\alpha _{j}y_{i}y_{j}x_{i}^Tx_{j}\\ \\ \alpha _{i} \geqslant 0, i = 1, 2,...,m

 

6,w的求解

解出{\alpha}后,利用前面w和alpha的关系,得到:

w = \sum ^{m}_{i = 1}\alpha_{i} y_{i}x_{i}

w仅与支持向量有关:

由KKT条件中的互补松弛条件可以知道

\alpha_{i}\begin{bmatrix} y_{i}(w^Tx_{i} + b) - 1 \end{bmatrix} = 0

\alpha_{i}= 0,对应的样本不会在模型w = \sum ^{m}_{i = 1}\alpha_{i} y_{i}x_{i}起任何作用,该样本可以是支持向量,也可以不是支持向量;

\alpha_{i}> 0时,y_{i}(w^Tx_{i} + b) = 1,说明这些样本x_{i}为支持向量,于是:

w = \sum^{m}_{i = 1}\alpha_{i} y_{i}x_{i} = \sum_{i\in SV}\alpha_{i} y_{i}x_{i}

其中SV是所有支持向量下标的集合;

 

7,b的求法

b = \frac{1}{\left | SV \right |}\sum_{s\in SV}(y_{s} - \sum_{i\in SV}\alpha_{i} y_{i}x_{i}^{T}x_{s})

 

8,预测

f(x) = sign(w^{T}(x) + b) = sign(\sum^{m}_{i = 1}\alpha_{i}y_{i}x_{i}^{T}x\ + b)

9,猜测

原问题转换为对偶问题后,再加上KKT条件(与对偶问题中的\alpha有关)的约束,发现模型只与支持向量有关。即使用对偶问题+KKT,解出支持向量,就可以得到模型,这大概是将原问题转换为对偶问题的原因。

 

软间隔与正则化

10,提出问题

训练集在样本空间或者特征空间中往往线性不可分;

精心设计一个核函数使训练集在特征空间中线性可分,很可能导致过拟合;

 

11,缓解的办法

允许支持向量在一些样本上出错,引入“软间隔”。

 

12,软间隔支持向量机的原问题

\parindent=19pt \mathop{min}\limits_{w, b,\xi_{i}}\frac{1}{2}\left \| w \right \|^2 + C\sum_{i = 1}^{m}\xi_{i}\\ s.t.\ y_{i}(w^Tx_{i} + b)\geqslant 1 - \xi_{i}\\ \xi_{i}\geqslant 0 ,i = 1, 2,...,m

13,转换为对偶问题 + KKT条件

a)写出拉格朗日函数

L(w,b,\alpha,\xi,\mu) =\frac{1}{2}\left \| w \right \|^2 + C\sum_{i = 1}^{m}\xi_{i} + \sum_{i=1}^{m}\alpha_{i}(1 - \xi_{i} - y_{i}(w^Tx_{i} + b) ) - \sum_{i=1}^{m}\mu_{i}\xi_{i}

b)写出对偶问题

\mathop{max}\limits_{\alpha,\mu}\mathop{min}\limits_{w, b,\xi}L(w,b,\alpha,\xi,\mu)\\ =\mathop{max}\limits_{\alpha,\mu}\mathop{min}\limits_{w, b,\xi}\frac{1}{2}\left \| w \right \|^2 + C\sum_{i = 1}^{m}\xi_{i} + \sum_{i=1}^{m}\alpha_{i}(1 - \xi_{i} - y_{i}(w^Tx_{i} + b) ) - \sum_{i=1}^{m}\mu_{i}\xi_{i}\\ \\ s.t. \\\,\alpha _{i}\geqslant 0\\ \mu _{i}\geqslant 0 ,i = 1, 2,...,m

c)化掉内层

上面内层是无约束问题,L(w,b,\alpha,\xi,\mu)w,b,\xi_{i}的偏导为0,则可得:

w = \sum ^{m}_{i = 1}\alpha_{i} y_{i}x_{i}

0 = \sum ^{m}_{i = 1}\alpha_{i} y_{i}

C = \alpha_{i} + \mu_{i}

上面3个式子代入b,对偶问题化简为:

\mathop{max}\limits_{\alpha}\sum_{i = 1}^{m}\alpha _{i} -\frac{1}{2}\sum_{i = 1}^{m}\sum_{j= 1}^{m}\alpha _{i}\alpha _{j}y_{i}y_{j}x_{i}^Tx_{j}\\ s.t. \sum_{i = 1}^{m}\alpha _{i}y_{i} = 0\\ 0\leqslant \alpha _{i} \leqslant C, i = 1, 2,...,m

 

且必须满足KKT条件:

互补松弛:

\alpha_{i}(y_{i}f(x_{i}) - 1 + \xi_{i}) = 0\\ \mu_{i}\xi_{i} = 0

原始问题可行性:

\\ y_{i}f(x_{i}) - 1 + \xi_{i} \geqslant 0,\\ \xi_{i}\geqslant 0

对偶问题可行性:\alpha_{i}\geqslant 0, \mu_{i}\geqslant 0

拉格朗日平稳性:\alpha_{i}(y_{i}f(x_{i}) - 1 + \xi_{i}) = 0

 

14,对\alpha_{i}进行分析,求w和b

a) \alpha_{i} = 0

对应的样本不会在模型w = \sum ^{m}_{i = 1}\alpha_{i} y_{i}x_{i}起任何作用,该样本可以是支持向量,也可以不是支持向量;

 

b)0 < \alpha_{i} < C

C = \alpha_{i} + \mu_{i},可知\mu_{i} > 0,再由KKT中的\mu_{i}\xi_{i} = 0,可知\xi_{i} = 0

再由KKT条件中的互补松弛条件

\alpha_{i}(y_{i}f(x_{i}) - 1 + \xi_{i}) = 0

可知

y_{i}f(x_{i}) - 1= 0 即 y_{i}(w^{T}x_{i} + b)= 1,该样本在分类间隔边界上:

 

c) \alpha_{i} = C

C = \alpha_{i} + \mu_{i},可知\mu_{i} = 0,再由KKT中的\mu_{i}\xi_{i} = 0\xi_{i}任意大小;

\xi_{i} = 0,由\alpha_{i}(y_{i}f(x_{i}) - 1 + \xi_{i}) = 0,得 y_{i}(w^{T}x_{i} + b)= 1

0 < \xi_{i} < 1 ,y_{i}(w^{T}x_{i} + b)= 1 - \xi_{i} \in (0, 1)

\xi_{i} = 1 ,y_{i}(w^{T}x_{i} + b)= 0

 

\xi_{i} > 1 ,y_{i}(w^{T}x_{i} + b) < 0

 

 

最终,w只与支持向量有关:

w = \sum ^{m}_{i = 1}\alpha_{i} y_{i}x_{i}

b的求法:

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值