点击蓝字关注我们
应用之道
存乎一心



本文作为《探索支持向量机》系列推文的最后一篇幅,主要介绍核函数和非线性支持向量机。本文由于篇幅限制无法细致展开,如需了解详细推导,请参照李航老师的《统计学习方法(第二版)》。
01
核函数
我们已经在《探索支持向量机(二)》中了解了如何实现线性数据集的分类问题,但是现实生活中我们遇到的数据集经常是非线性的。此时,我们就需要用到核技巧(Kernel Trick)将线性支持向量机推广到非线性支持向量机。需要注意的是,核技巧不仅应用于支持向量机,很多线性模型也都可以利用核技巧推广到非线性模型。
用线性分类方法求解非线性分类问题,处理方法可以分为以下两步骤:
使用一个变换将原空间的数据映射到新空间。
然后在新空间里用线性方法从训练数据中学习分类模型。
核技巧就属于这样的方法。
核技巧应用于支持向量机,其基本思想就是通过一个非线性变换将输入空间(欧氏空间 Rn)对应于一个特征空间(希尔伯特空间 H),使得在输入空间 Rn 中的超曲面模型对应于特征空间 H 中的超平面模型(支持向量机)。这样分类问题的学习任务通过在特征空间中求解线性支持向量机就可以完成。

上述过程的动态效果如下:

我们来看看核函数的定义:

核技巧的思想:通常直接计算 K(x, z) 比较容易,而通过 ϕ(x) 和 ϕ(z) 计算 K(x, z) 并不容易。幸运的是,在线性支持向量机的对偶问题中,无论是目标函数还是决策函数都只涉及到输入样本与样本之间的內积。因此,我们不需要显式地定义映射 ϕ(x) 是什么,而只需事先定义核函数 K(x,z)。也就是说,在核函数 K(x,z) 给定的情况下,可以利用解线性问题的方法求解非线性问题的支持向量机,此过程是隐式地在特征空间中进行的。
样例一:通俗理解核技巧
计算 (1 + 2 X 3 + 4 X 5)^2 可以用以下两种方法:
方法 1 拆项相乘后求和。

方法 2 先求和后平方。

相比于方法一的按部就班,方法二更加灵活,这就相当于核技巧。
02
正定核
充要条件
由上文的介绍可知,我们只需要定义核函数,但如何不通过映射 ϕ(x) 怎么去判断给定的一个函数 K(x, z) 是不是核函数,或者说 K(x, z) 需要满足什么条件才是一个核函数?
通常所说的核函数就是正定核函数,下面不加证明的给出正定核的充要条件,具体证明略显复杂,有兴趣的读者可以参考李航老师的《统计学习方法(第二版)》。

常用核函数
多项式核函数(Polynomial Kernel Function)

高斯核函数(Guassian Kernel Function)

03
非线性 SVM
如前文所述,利用核技巧可以很简单地把线性支持向量机扩展成为非线性支持向量机。我们只需将线性支持向量机中的內积换成核函数即可,下面简述非线性支持向量机的定义:

相应的,非线性支持向量机学习算法如下:

04
SVM 总结
优点
支持向量机是一个凸优化问题,所以求得的解一定是全局最优而不是局部最优。
利用核技巧,支持向量机不仅适用于求解线性问题还适用于非线性问题。
对于拥有高维样本空间的数据,它们也能运用支持向量机,这是因为数据集的复杂度只取决于支持向量而不是数据集的维度,这在某种意义上避免了“维数灾难”。
相较于神经网络这类黑盒,支持向量机的理论基础更加完善。
缺点
二次规划问题求解将涉及到 m 阶矩阵的计算(m为样本个数), 因此支持向量机并不适用于超大数据集,但使用序列最小最优化算法(Sequential Minimal Optimization,SMO)可以缓解这个问题。
支持向量机只适用于二分类问题,但也可以通过多个支持向量机的的组合来解决多分类问题。
至此,本系列推文已经完整介绍了支持向量机相关概念,但仍然还有其它知识点需要读者自行阅读资料,比如)。想要进一步了解支持向量机的读者可以查阅《探索支持向量机(一)》开头的参考文献。感谢大家的支持,我们下期再见!
应用之道
END
存乎一心
本文作者:Bingunner
一位头发浓郁的信息安全工程师
爱摄影/爱数码/爱跑步的经济学人死忠粉





