核函数的种类和应用场景

1 核函数种类

图片.png
kernel代表的是两笔资料x和x’,特征变换后的相似性即内积。但是不能说任何计算相似性的函数都可以是kernel。有效的kernel还需满足:K是对称的;K是半正定的

  • 线性核

    Linear Kernel的优点是计算简单、快速,可以直接使用QP快速得到参数值,而且从视觉上分类效果非常直观,便于理解;缺点是如果数据不是线性可分的情况,Linear Kernel不能使用。

  • 多项式核

    Polynomial Kernel的优点是阶数Q可以灵活设置,相比linear kernel限制更少,更贴近实际样本分布;缺点是当Q很大时,K的数值范围波动很大,而且参数个数较多,难以选择合适的值。

  • 高斯核

    Gaussian Kernel的优点是边界更加复杂多样,能最准确地区分数据样本,数值计算K值波动较小,而且只有一个参数,容易选择;缺点是由于特征转换到无限维度中,w没有求解出来,计算速度要低于linear kernel,而且可能会发生过拟合。

    2 应用场景

    特征维数高选择线性核
    样本数量可观、特征少选择高斯核(非线性核)
    样本数量非常多选择线性核(避免造成庞大的计算量)

    当样本的特征很多且维数很高时可考虑用SVM的线性核函数。当样本的数量较多,特征较少时,一般手动进行特征的组合再使用SVM的线性核函数。当样本维度不高且数量较少时,且不知道该用什么核函数时一般优先使用高斯核函数,因为高斯核函数为一种局部性较强的核函数,无论对于大样本还是小样本均有较好的性能且相对于多项式核函数有较少的参数。

SVM的损失函数

线性-软间隔

SVM面试 - 图3
这个式子存在两个不足的地方。首先,最小化目标中第二项是非线性的,不满足QP的条件,所以无法使用dual或者kernel SVM来计算。然后,对于犯错误的点,有的离边界很近,即error小,而有的离边界很远,error很大,上式的条件和目标没有区分small error和large error。这种分类效果是不完美的。

为了改正这些不足,我们继续做如下修正:
SVM面试 - 图4
修正后的表达式中,我们引入了新的参数SVM面试 - 图5来表示每个点犯错误的程度值,SVM面试 - 图6。通过使用error值的大小代替是否有error,让问题变得易于求解,满足QP形式要求。

image.png线性-硬间隔

基本
图片.png
对偶
图片.png

SVM为什么使用对偶函数求解

对偶将原始问题中的约束转为了对偶问题中的等式约束,而且更加方便了核函数的引入,同时也改变了问题的复杂度,在原始问题下,求解问题的复杂度只与样本的维度有关,在对偶问题下,只与样本的数量有关。