机器学习-DUAL+Kernel SVM-2020-01-13

RECAP:

在hard-SVM里介绍,SVM的目标是:

DUAL-SVM的初衷:

这里介绍的是Hard-SVM,hard的意思就是线性可分,linear。但是并不是所有的资料都是线性可分,因此这里需要进行维度转换。将X换成,转换到多维空间去。

一方面,使用SVM,采取了margin的方法,只有在边界上的点才是SV Candidate,才可以Shatter。这种方法降低了复杂度,dvc=d+1;而另一方面,进行多维的装换,则是增加函数的复杂度和d的维度。因此,是否有一种方法,可以让转换和复杂度无关!

构造拉格朗日函数

原有:

转换1:max->min;转换2:x->z

转换为:

引入拉格朗日因子:

把条件加上。。把条件藏在函数中。固定w,b,那么是变量。需要找到一个最大的,使得L最小。

如果这些Z的点落在边界margin之内,那么

L则无最大值

只有那些Z的点落在margin上或者margin外的点,才能使

L存在最大值。最大值就是当 ,

可以发现条件有已经藏在了公式当中。

对偶问题

原有问题:

那么当任意一个来讲,maxany

选择一个,那么不同的样本集,选择最好的,也只能使得,选择=

这里发现,Min和max发生了对调。把min和max发生对调的行为,叫做对偶。实践证明,当满足一下条件时,使得,变成=。强对偶关系。

这时,公式就简化成为:

对b和w分别求偏导,并带入原有SVM中,可以发现,对于b和w都已经消除,因此现在只需要求解

原有max的问题,转化为min问题:

变化:从dvc=d+1个变量,转化成为N个变量,与维度无关;限制条件,从N变成N+1。几乎无变化

维度虽然从表面上消失了,但是却被藏在。

KKT条件

这里的KKT条件,就是之前提到过的强对偶关系的条件:

1. 首先保证:yn(1-(wz+b)

2. 引入拉格朗日函数:

3. 对偶的条件,求偏导:

4. 互补松弛性条件(complementary slackness):

由于,那么只能有:

而改上式=0的条件,就是这些点在margin的边界上。

变化:之前在hard-SVM的时候,讲落在margin边界上的点,使得,这些点是SV candidates。那么在dual-SVM的时候,讲当时,在的点,落在margin的边界上。这些点才是SV.

那么:当求得最佳解时,

可以得到W:

可以得到b:(由于),在margin的边界上找一个点即可算出b

因此对偶问题,只完成了将简化hard-SVM的第一步。将b,w的依存消失,只与以及有关。那么由于是维度变换后到更高空间维度,需要将z一步步展开么?NO。这里用到Kernel。

Kernel-SVM

在对偶问题中,进步的地方在于,由3个维度的变化,w,b,,从以dvc=d+1以高维度转换,变化成为只求一个,并且将维度的问题从明处藏在了中。

的难度在于高维度转换+高维度转换后再做乘积。

简化

对于2维的Z空间

可以看到,最后也只有d+1的维度,和转换到高维无关。

将Kernel命名:

将一组在margin边界上的SV点带入,利用之前偏导的结果:

可以求得b:

至此,如果样本点在原有维度无法线性可分,那么可以进行高维转换。Kernel的结果与高维无关,只有dvc=d+1。至此,原有的疑点以及解决:

一方面,使用SVM,采取了margin的方法,只有在边界上的点才是SV Candidate,才可以Shatter。这种方法降低了复杂度,dvc=d+1;而另一方面,进行多维的装换,则是增加函数的复杂度和d的维度--Kernel只与原有维度的dvc=d+1有关。

普通多项式的2维转换:

对选择不同的数值,就意味着Kernel不一样。Kernel不一样,就意味着w,b不一样。w,b不一样,就意味着不一样,margin也不一样。margin不一样,就意味着SV也不一样。

因此不同的kernel=>不同的margin definition

在推广一下:对常数项和x进行放缩,那么

在推广一下:在Q维进行维度变换,那么

在1维空间的话,

高斯Kernel

在上面poly-Kernel可以看到,的乘积,并不用全部展开,并且也不用在Z空间计算dvc。非常简化。这时,是否可以想象,如果Z空间的多项式是无限多的时候,是否也可以是一个简单的X空间dvc呢?

当Z空间是无限多维时,Kernel仍然是一个多项式。这就是高斯kernel

高斯Kernel是一个正态分布函数: 

xn是某一个SV,是高度。因此当越大时,峰值越高。容易出现overfitting。因此在高斯kernel中对也要谨慎选择

小结:

二项式-Kernel:

优点:可以进行高维转换,进而高阶线性可分。高阶也只和X维度有关。

缺点:当时,K趋近无穷大

当时,K趋近于0

有3个参数可以调整

因此,当进行选择时,尽量选择比较小的Q

高斯Kernel

优点:可以进行无限多维的转换,比较power。只有一个参数可以调整

缺点:不太好解释,没有W。容易overfitting

你可能感兴趣的:(机器学习-DUAL+Kernel SVM-2020-01-13)