( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

本篇继续针soft-margin 软间隔SVM原理进行梳理,需要先对hard-margin SVM 有所掌握,具体见SVM系列(一)hard-margin SVM 详细原理  https://blog.csdn.net/Lee_Yu_Rui/article/details/107420870

soft-margin SVM 思想

感谢https://www.youtube.com/watch?v=ZF2QR7nSUhg&list=PLOxMGJ_8X74Z1N3OcacUaCxiXaGNHtFw2的相关推导和讲解

针对硬间隔SVM,我们的目标函数式如下形式:

                                                         ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM , s.t. ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM                     (1)  

但硬间隔中,我们假设数据是完全线性可分的,但实际上这是比较难以实现的,所以准备不那么严格,在目标函数上加一点点loss,这个loss表示每个点错分的情况,所以(1)就可以写成

( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

                                                              ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM  

                                                               s.t. ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM           ,( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM                    (2)

对(2)目标函数的理解,我们说希望加入一点的loss,回顾一下(1)中的目标函数是在( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM的前提下推导出来的,那现在这里( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM,如果( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM表明最小值不可能是1,该值越大距离1的偏离程度越远,也就是错分的样本就可能越多。目标函数中加了一个C的惩罚项,因为我们希望目标函数最小,C较大的时候,希望目标函数较小,则此时loss ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM就应该较小,也就是说对错分的要求是很高的。如果C较小,则希望目标函数较小,则此时loss ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM就可以较大,也就是说可以有一定的错分。

利用拉格朗日求解SVM

利用拉格朗日乘子法,对以下目标函数进行变形

                                                           ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM  

                                                           s.t. ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM           ,( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM                                        (2)

可以发现

                                                             ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

                                                             ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

                                                             ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

可得到拉格朗日函数(这部分看不懂就去看系列一的讲解):

                                     ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM (3)

                                      s.t.               ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM   ,( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

需要经历对偶问题的转换得到如下(强烈建议把  SVM系列(一)hard-margin SVM 详细原理  公式(12)下面的关于为什么加min和max的解释在这里走一遍,因为下一篇的SMO算法里会用到)

                                                   ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

然后就是对,w,b的求导,结果和hard-margin一致;另外增加了对 loss的求导

                                           ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM           ==> ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

                                                   ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM      

                                                  ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM         ==>( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM                (4)

因为要求    ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM   ,( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

所以可以合并成  ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM   ,( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM,因为(4)中其他的条件都没有改变,所以最终样子和以前一样:C哪去了?自己带入以下就知道了。都抵消了

                                                         ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

                                                           s.t. ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM        and   ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM                                            (5)

总结KKT条件,在整个过程中的限制条件:

                                                 ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM,

                                                ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

                                                          ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM,( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

                                                            ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

                                                           ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM, ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM                                                                   (6)

kernel SVM

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

( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

无论是hard 还是soft ,最终得到的都是这个式子,就是KKT条件不太一样,

                                                                ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

这个式子在整理下

                                                                ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM这中间的每一个x都是一个带有特征的数据,特征可能有很多,所以每一个都可能是高维度的数据,两个相乘就相当于向量的内积操作;上图对于线性不可分的操作经过一个( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM的操作,增加一个维度,使得数据变得线性可分;但是这个是因为左面的形式看起来比较容易得到( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM,但实际上,我们很难得到一个高维度的( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM。而且大量求内积也是非常困难的、

                                                            ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

所以从聪明的人就想,能不能找到一个函数可以直接求得( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM的结果,而不需要求( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM,这就是kernel函数

                                                                            ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

常用的kernel有线性的,多项式的,高斯的,还有一个radial 选择哪一种,以及里面的参数都怎么选择,我想就是交叉验证了吧。

hard-margin 求解实例

到目前为止,三种SVM的原理都已经阐述明白。可能你发现,好像还没有算出来呢?先以一个简单的低维度数据为例看一下整个的求解过程,

                                                          ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

                                                           s.t. ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM        and   ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM                                            (7)

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

                                                                          ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM,( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

                                                                            ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

                                                                            ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

                                                                            ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM                                                              (8)

求出满足KKT条件的u,然后就可以得到w,b,若存在(xk,yk)满足( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

                                                                           ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

                                                                          ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM                                            (9)

则最终的分类决策函数

                                                                        ( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM                                            (10)

题就是,求下图的最大间隔分离超平面,求解过程下面都给了,最后要计算b的地方简单提一下,就是将在直线( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM中的点带入即可,任何一个都行,就是u不等于零的哪一个都可以

( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM

最后的结果是右边的红色和黄色部分,与我们最开始的直观看见的直线方程一致

( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM