( 保证能看懂系列)SVM系列(一)hard-margin SVM 详细原理

感谢youtube上的视频对SVM的详细推导

https://www.youtube.com/watch?v=ZF2QR7nSUhg&list=PLOxMGJ_8X74Z1N3OcacUaCxiXaGNHtFw2

本文先对硬间隔的SVM进行详细的理论推导,支持向量机的基本思想其实是很简单的,但这个数学过程是真的有点复杂,尤其后面的SMO,别担心,本文没有,因为我也不知道到底咋写...对这个算法还不是特别熟悉,有问题请帮忙指出。

三种形式SVM

针对不同的分类问题,有以下三种形式的SVM

(一)数据是线性可分的,采用hard margin 就是说数据可以用一条直线将以区分,如下图所以,中间的线就是我们要距离间隔最大的线,就是我们要找到的超平面

(二)数据是近似线性可分的,采用soft margin 就是说数据在一定的错误容忍度上,可以用一条直线将以区分;如下图,如果按照第一种情况,会产生两个黄色的边界,因为受到一个红色异常点的影响,这两个边界的间隔很小,如果目前有一个黑色的待分类的点,按照黄色线的分类器,就会划分为红色,但实际上它可能是绿色,因为和绿色的聚集中心是比较近的。所以为了减少异常点的影响,我们允许分类器有一点错分的情况,这就是soft margin

(三)数据是线性不可分的,利用非线性的转换,提高数据的维度,使得数据在高维度上线性可分,称为kernel SVM。下图中左编的图是无法用一条线分割的,但是如果我们通过某些中变化,可能就会使得数据在高维度线性可分,比如右图的情况,在中间产生一个平面就可以将其区分。

u

(一)hard-margin  SVM 原理

该算法就是找到一个超平面,使得离“最近的点”的距离最大。下式    

                                                           max_{w,b}min_{x_{i}} distance(w,b,x_{i})                    (0)

distance(w,b,x_{i})表示任何一点到超平面的距离,再min_{x_{i}},表示找到最近的点,max_{w,b} 离“最近的点”的距离最大的那个超平面(用w,b可以决定超平面)

我们讨论下图的二维情况,该超平面就是一条线。原来就是找到中间那条线,但也不是那么自信,所以就上下各预留了一点空间。该方法又称为最大间隔分类器。间隔指的是上下两个线之间的距离,这个距离是任何一个线到中间的线的2倍,所有可以变成让一半的距离distance最大

”任何一点xi到w^{T}x + b =0的距离要大于等于1,并且越大越好“,这里的等于1的情况就是我们设置的边界,该距离可以利用点到直线距离公式表示:

                                                          distance = \frac{\left \| w^{T}x_{i} + b \right \|}{\left \| w^{T} \right \|}                            (1)

SVM处理的二分类问题,y_{i}\in (-1,1),

如果xi是正样本yi =1,同时w^{T}x_{i} + b \geqslant 1,即 y_{i}(w^{T}x_{i} + b) \geqslant 1

如果xi是负样本yi =-1,同时w^{T}x_{i} + b \leqslant -1,即 y_{i}(w^{T}x_{i} + b) \geqslant 1

所以将(1)式上面乘yi,就可以将绝对值去掉,等式不变

                                                          distance = \frac{ y_{i}( w^{T}x_{i} + b) }{\left \| w^{T} \right \|}                           (2)

带入(0)可得:

max_{w,b}min_{x_{i}} distance(w,b,x_{i}) =max_{w,b}min_{x_{i}} \frac{ y_{i}( w^{T}x_{i} + b ) }{\left \| w^{T} \right \|} = max_{w,b}\frac{1 }{\left \| w^{T} \right \|} min_{x_{i}} y_{i}(w^{T}x_{i} + b)(3)

上式后半部门的最小值就是min_{x_{i}} y_{i}(w^{T}x_{i} + b ) = 1  

所以(3)可以同等表达为:

                                        max_{w,b}\frac{1 }{\left \| w^{T} \right \|}           s.t.   y_{i}(w^{T}x_{i} + b ) \geqslant 1                (4)

s.t.表示的是限制条件,对于优化问题,我们习惯性求最小值,并去掉绝对值:所以将(4)转变为

                                        min_{w,b} \frac{1}{2}(w^{T})^2 , s.t. y_{i}(w^{T}x_{i} + b ) \geqslant 1                     (5)    

(5)式子的目标函数是二次函数,限制条件是N个线性不等式条件,所以这是凸二次优化问题,可以用拉格朗日乘子法和KKT条件进行求解。拉格朗日乘子法可以寻找多元函数在一组约束条件下的极值,将d个变量与k个约束的最优化问题转变成d+k个变量的无约束问题。                                       

(二)拉格朗日乘子法

 

1. 等式约束

 

                                                                                                                                                                                      (6)

公式(6)描述的是这样的问题:找到x*,使得目标值f(x)最小,且满足h(x)=0,根据根据拉格朗日定理将上式转成(7)对h(x)没有约束的式子,从而求解

(7)

这里来解释一下为什么(6)和(7)等价?

下图黑色的圈是f(x)在等于不同的常数的时候的等高线,我们要找到满足h(x)=0的条件下的最小值,所以就是该值要在红线上,由此可见应该是两者相切的地方。因为在相交的时候,一定可以在左或者右找到更小的值。在相切处必定是极点位置,因为是凸函数,所以就是极小值。那么切点初的切线就是同一条,因为梯度方向是垂直切线的,所以此时\bigtriangledown f(x)\bigtriangledown h(x)是共线的,至于各自的方向还要看具体值得大小分布,因此可得\bigtriangledown f(x^{*}) + \lambda \bigtriangledown h(x^{*}) = 0,这个是根据(6)的描述推导出的结果

接下来我们看看(7),对x和λ求导

                                                                          \frac{\partial L(x,\lambda ))}{\partial x} =\bigtriangledown f(x^{*}) + \lambda \bigtriangledown h(x^{*}) = 0

                                                                             \frac{\partial L(x,\lambda ))}{\partial \lambda } = h(x^{*}) = 0

是不是很神奇!!!!  对(7)式的操作和(6)式的结果完全一样,并且自带等式特效!所以可以进行等价的求解。

2.不等式约束

                                                                        (8)

                                                                        L(x,\mu) = f(x) + \mu g(x)(9)

公式(8)描述的是这样的问题:找到x*,使得目标值f(x)最小,且满足g(x)<=0,根据根据拉格朗日定理或者说KKT条件将上式转成(9)对g(x)没有约束的式子,从而求解。

(1)g(x)有两种情况,第一种就是 g(x)<0的时候,就是图中①的位置,在这个位置,x无论在g(x)中向哪个方向移动一点,都仍然在可行域g(x)中,也就是说可以认为不存在g(x)的限制,那么就可以直接求解\bigtriangledown f(x) = 0所对应的点,那么就是相当于(9)中的 u=0;也就是\mu g(x) = 0

(2)第二种就是最小值在g(x)=0上,图中的②的位置,以下就要说明为什么λ大于等于0,请时刻记住,梯度是指向函数值增大的方向。好,那么\bigtriangledown g(x)一定指向可行域的外部,因为外面g(x)>0;对于f(x)在该点是最小值,表明f(x)在除了该点之外的可行域中的点的值都比该点大,所以\bigtriangledown f(x)指向大的地方,指向可行域内。那么也就是说\bigtriangledown f(x)\bigtriangledown g(x)是反向的!此时,因为在线上,所以也满足\mu g(x) = 0

                                                                          \bigtriangledown f(x) + \mu \bigtriangledown g(x) = 0\mu>0

联想到我们SVM的基本原理,这个不等式就是我们的边界,在边界上的点,它的u>0,除此之外所有的都=0,也就是说最后的f(x)函数的最优化问题,只和最近的点有关,这些点称为支持向量,这就是SVM的核心。

在不等式中使得拉格朗日等价的条件就是KKT条件,根据以上的分析可以KKT条件是:

                                                                            g(x)\leqslant 0

                                                                            \mu \geqslant 0

                                                                            \mu g(x) = 0                (10)

3.多个约束条件

当有多个约束条件的时候就是

                                                                                                                                                                   (10)

以及KKT条件

                                                                                                                                                                   (11)

利用拉格朗日求解SVM的原理

比较(10)和(5)

                                                                   min_{w,b} \frac{1}{2}(w^{T})^2 , s.t.  y_{i}(w^{T}x_{i} + b ) \geqslant 1                     (5)    

可以发现

                                                                 f(x) = \frac{1}{2}(w^{T})^2

                                                                 g(x)= 1-y_{i}(w^{T}x_{i} + b )

所以拉格朗日乘子就是

                                                             L(w,b,\mu) = \frac{1}{2}(w^{T})^2+\sum_{i=1}^{N} \mu_{i} (1-y_{i}(w^{T}x_{i} + b ))

所以得到和(5)等价的(12)

                                                           min_{w,b} max _{\mu}L(w,b,\mu)          s.t. \mu_{i} \geqslant 0                             (12)

这里就可能会好奇为什么会出现min 和 max ,下面就是解释

  • 如果g(x)= 1-y_{i}(w^{T}x_{i} + b )>0max _{\mu}L(w,b,\mu) =\frac{1}{2}(w^{T})^2 + \infty =\infty ,式子的意思是使得拉格朗日函数最大的时候,u可以无穷大,所以结果就是无穷,min_{w,b} max _{\mu}L(w,b,\mu)= \infty
  • 如果g(x)= 1-y_{i}(w^{T}x_{i} + b ) \leqslant 0max _{\mu}L(w,b,\mu) =\frac{1}{2}(w^{T})^2 + 0 =\frac{1}{2}(w^{T})^2,式子的意思是使得拉格朗日函数最大的时候,要想式子最大,必然u=0或者g(x)=0,反正相乘为0,min_{w,b} max _{\mu}L(w,b,\mu)= min_{w,b}\frac{1}{2}(w^{T})^2

以上两种情况合并就是   min_{w,b} max _{\mu}L(w,b,\mu)= min_{w,b}(\infty ,\frac{1}{2}(w^{T})^2)=min_{w,b}(\frac{1}{2}(w^{T})^2)  在g(x)= 1-y_{i}(w^{T}x_{i} + b ) \leqslant 0取得。这是不是就是(12)和(5)的等价

拉格朗日函数求解

                                                          L(w,b,\mu) = \frac{1}{2}(w^{T})^2+\sum_{i=1}^{N} \mu_{i} (1-y_{i}(w^{T}x_{i} + b ))

                                                           min_{w,b} max _{\mu}L(w,b,\mu)          s.t. \mu_{i} \geqslant 0                             (12)

利用对偶原则,求解上式子,因为凸二次规划问题,满足强对偶关系,就是以下式子等价

                                                 min_{w,b} max _{\mu}L(w,b,\mu) =max _{\mu}min_{w,b} L(w,b,\mu)                     (13)

对偶问题中先计算min_{w,b} L(w,b,\mu),这是一个没有约束的问题,直接对w,b求偏导即可

                                                   \frac{\partial }{\partial w} L(w,b,\mu) = w -\sum_{i=1}^{N} \mu_{i}y_{i}x_{i}=0           => w =\sum_{i=1}^{N} \mu_{i}y_{i}x_{i}

                                                   \frac{\partial }{\partial b} L(w,b,\mu) = \sum_{i=1}^{N} \mu_{i}y_{i}=0                                                   (14)         

将(14)带入(12),得到最小的值

                                                   min_{w,b} L(w,b,\mu) = -\frac{1}{2}\sum_{i=1}^{N} \mu_{i}y_{i}x_{i}^{T}\sum_{j=1}^{N} \mu_{j}y_{j}x_{j}+\sum_{i=1}^{N} \mu_{i}

(12)式就变成了

                                                          max _{\mu}-\frac{1}{2}\sum_{i=1}^{N} \mu_{i}y_{i}x_{i}^{T}\sum_{j=1}^{N} \mu_{j}y_{j}x_{j}+\sum_{i=1}^{N} \mu_{i}

                                                           s.t. \mu_{i} \geqslant 0                                                                                 (15)

同样(15)中的求最大变为求最小

                                                          min _{\mu} \frac{1}{2}\sum_{i=1}^{N} \mu_{i}y_{i}x_{i}^{T}\sum_{j=1}^{N} \mu_{j}y_{j}x_{j}-\sum_{i=1}^{N} \mu_{i}

                                                           s.t. \mu_{i} \geqslant 0        and   \sum_{i=1}^{N} \mu_{i}y_{i}=0                                            (16)

总结KKT条件,在整个过程中的限制条件:按照(11)可得

                                                                          \frac{\partial L(w,b,\mu) }{\partial w} = 0\frac{\partial L(w,b,\mu) }{\partial b} = 0,\frac{\partial L(w,b,\mu) }{\partial \mu} = 0

                                                                            g(x_{i})\leqslant 0

                                                                            \mu_{i} \geqslant 0

                                                                            \mu_{i} g(x_{i}) = 0                                                              (17)

求出满足KKT条件的u,然后就可以得到w,b,若存在(xk,yk)满足1-y_{i}(w^{T}x_{i} + b ) = 0,即在直线上

                                                                           w^{*} =\sum_{i=1}^{N} \mu_{i}y_{i}x_{i}

                                                                          b^{*} =y_{k}-\sum_{i=1}^{N} \mu_{i}y_{i}x_{i}^{T}x_{k}

则最终的分类决策函数

                                                                        f(x) = sign(w^{*}^{T}x + b^{*} )

 

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lee_Yu_Rui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值