下面讲解核技巧、线性不可分,这里我引用李宏毅机器学习里的图片进行讲解
首先看下面两张图
可以看到左边是可以线性可分的,右边明显不行,这是我们如果对其样本数据进行升维处理,则就可以得到下图,
可以看到,在对其升维至3维后,明显能够线性区分。当然这个第三维度根据实际情况设置。
现在我们假设原式X样本线性不可分,经过升维后变为,则对应求解最优式变为:
也就是说要求解原式最优值,必须完成支持向量升维后的点积,这个在高维空间中计算量非常之大,那么有没有什么好的办法,能够减小计算量呢?
有,还真有,那就是非常纳斯的核技巧
现在我们假设我们有一个核函数,通过求解
就可以的得出
的点积。也就说核技巧并不会去一个一个的算
的点积,他通过取巧来算出j
点积的值,类似于一个 “黑盒子”。具体操作如下,
假设现在有原维度下线性不可分的数据,如图中,现在我们给其增加一维度
,即将第一维度、二维度值的点积结果作为第三维度的值。
可以看到,通过变形验算升维后的结果等于原维度下两数据点先做内积,再做平方。也就是说此时核函数的表达式为。
当维度为
维时,我们可以归纳一下,
显而易见,如果我们此时还是采取“将其中两维度值的点积结果作为下一维度的值”方式升维的话,升维后的维度将为维,这个计算量大到离谱,而此时如若采用核技巧,你就会深深感受到其魅力,即
,即对
维度下的点积平方即可,极大的减少计算量。
当然核函数有很多形式,感兴趣的同学可以自行上网查阅。这里介绍一个特别牛逼的核函数---径向基核函数,径向基函数 RBF 是沿径向对称的标量函数,通常定义为空间中任一点 X 到某一中心 Xc 之间距离的单调函数,可记为 K ( || X – X c || ),当 X 远离 Xc 时函数取值很小。
最常用的径向基函数是高斯核函数 ,形式为 k(||x-xc||)=exp{- ||x-xc||^2/(2*σ)^2) } 其中xc为核函数中心,σ为函数的宽度参数 , 控制了函数的径向作用范围。
通过化简,最终可以得到
可以看到径向基核函数直接可以将原样本的维度上升为无穷维。
在我们再将核技巧加入svm软间隔中,即n个样本 ,
:
现在我们再回头看,就能理解很多时候对偶问题求解起来更方便,并且能表现出一些非常有用的特征。对偶问题除了从表达式和约束条件上更加简洁以外,更主要的原因是因为对偶问题有一个非常好的特征,也就是最优解仅根据支持向量的点积结果所决定,也可以理解为仅由支持向量的空间相似度所决定,这也就为Kernel Trick铺平了道路,既然我们只需要得到空间相似度结果,而这直接就可以通过核函数求得,那为什么还需要绕一圈去寻找维度转化函数。
下来我们继续求解,svm保姆级教程---(五)终极求解 smo算法(完结篇)。