原文博客传送门:核函数与支持向量机入门。
理解支持向量机(Support Vector Machine, SVM)的角度很多。从分类问题入手,由最小化训练错误导出限制条件下的凸优化问题的解,进而由线性可分的硬边界泛化为利用松弛变量放宽限制条件的软边界问题;从一般性的损失函数出发,由线性回归的0-1损失函数换成hinge损失函数,进而加上针对模型复杂度的L2惩罚项;亦或是从支持向量的角度,由核函数的一般应用到稀疏核的支持向量,进而分析SVM的核技巧。后者学习曲线相对来说比较大,却有助于深入理解SVM。
(不知是从哪来的先入为主,以前提到SVM,脑中总是出现一些非常confusing的概念,什么最大边际,Lagrange对偶性,最小最大化一系列公式,本来打印好好的论文,没看到优化目标函数呢,就放之一旁等着毕业卖废纸了。山人也觉得没得治了。好吧,从此篇开始就自称山人了: (,但当山人看到下面关于一个SVM的段子时,对它的热情又从新燃起了。)

关于这个同学举牌子的典故我知道,我也是CMU的。这是在2009年在Pittsburgh举行的G20峰会现场外面。很多反对G20的,支持G20的都来凑热闹。我们这位同学也来了,鱼目混珠的高举Support Vector Machine的牌子。很多老美就晕了,你说你支持加强控制二氧化碳排放我懂,你支持的的这个Vector Machine是个什么东西啊?然后这个同学搞笑的目的就达到了。
I- 非线性变换
很多算法在处理输入空间的样本时,会把输入空间的生数据样本转换成特征空间的样本表达。有时这是一种显式的的特征选择,如去噪或提取更高层表达能力的特征。有时这是为了解决样本在生输入空间不可分,而进行的高维空间变换,从而把原本不可分的数据变换成在高纬可分的特征点。而这个映射便是通过非线性变换来实现的。一个直观的例子:
如上图所示,原始的二维平面上是遍布生数据的输入点,其类别标签用红点和蓝点来区分。由左图中平面上点的分布来看,在输入的二维空间是线性不可分的。但我们可以通过一个寻找一个特征映射函数 ϕ(.) 来把输入空间的点 x ,映射为三维特征空间中的点 ϕ(x) ,于是这个三维空间中的点便可以通过左图中一个粉红色的超平面来分隔。但即使在三维特征空间可分,我们怎么把这个三维特征空间的分隔超平面映射回二维输入空间去呢?很简单,我们可以直接把超平面与特征空间圆锥体的截平面直接投影到二维空间里去,所形成的椭圆曲线就是二维空间的分隔线。如上面右图中的白色所示。
II- 核方法
核方法便是基于非线性特征映射,定义如下: