推荐阅读: 核技巧;惩罚因子C
关键词:核技巧;软间隔;惩罚因子C;松弛变量
6.3核函数
关键词:核函数;核技巧
上一节讲到,SVM寻找的是使得间隔最大的那一个超平面作为分类器,这还是一个线性分类器,然而很多情况下是非线性可分的,SVM是如何解决这个问题的呢?SVM是将样本从原始空间映射到一个更高维度的特征空间,使得样本在特征空间中线性可分。例如简单的异或问题在二维空间中线性不可分,但是映射到三维空间就线性可分,如图:
所以当任务是线性不可分(绝大多数任务都是线性不可分的)时,SVM就将样本从原始空间映射到特征空间(高维空间),在特征空间中分类器(划分超平面)还是一个线性模型,在特征空间该超平面可表示为:
上一节也说过,求原问题不如求其对偶问题来得方便,那我们来看看其对偶问题是什么:
对比上一节的对偶问题,可以发现,唯一的变化就是 线性可分时,要计算的是原始空间当中输入样本的内积
,即
一句话总结:核技巧就是通过核函数去避免高维空间中的内积计算。
常用的核函数有:
6.4 软间隔与正则化
关键词:软间隔;惩罚因子C;松弛变量
上一小节讲了SVM通过空间变换(原始空间变换到高维空间)把线性不可分问题转换成线性可分,并且是完美的线性可分(所有训练样本不允许出错)。通常来说,找到这么完美的映射是很难的,即使找到了,也很难说这个貌似线性可分的结果不是由于过拟合(overfitting)造成的。
缓解这一问题的一个办法就是允许支持向量机在一些样本上出错,如下图当中,红色圈圈的那些样本,就是错误分类的样本,在这里,总共有5个样本错误分类。
之前所讨论的,要求所有样本均满足约束条件(
那这个软间隔如何体现到目标方程当中呢?原目标方程是要最小化
,其中惩罚因子C是用来权衡模型复杂度(
若采用hinge损失,我们的目标方程就是:
,max后面那一堆看着岂不是很烦? 引入一个名为松弛变量(slack variables)的东西
那么目标方程就很简洁了:
这个形式就是软间隔支持向量机了。
在这里讨论一下惩罚因子C,当C无穷大的时候,会发生什么呢?C无穷大的时候,还要最小化