6.支持向量机
6.1间隔与支持向量
对于给定的训练集D={(x1,y1),(x2,y2),…,(xm,ym)},yi∈{-1,+1},分类学习的初衷就是基于训练集在样本空间中找到一个可以有效划分样本的超平面。可能存在很多可将样本分开的超平面,选择分类结果最鲁棒、泛化能力最强的超平面便是支持向量机模型的重点。
通过二维样本点分布的图示看,最直观上,找到两类样本正中间的超平面是最佳的。如此,在样本空间中,划分超平面通过线性方程描述为:wTx+b=0,其中,w={w1;w2;…;wd}为法向量,决定了超平面的方向;d为位移项,决定了超平面与原点之间的距离。
6.2对偶问题
对于其上定义的支持向量机数学原型,要得到最大间隔划分超平面f(x)= wTx+b,就要训练出模型参数w和b;而SVM模型本身是一个凸二次规划(convexquadratic programming)问题,可以直接用优化计算得出,如内点法、有效集法、共轭梯度法等,此处用更为高效的拉格朗日乘子法并得到其对偶问题(dual problem)。6.3核函数
对于训练样本是线性可分的,存在一个超平面能将训练样本正确划分,但在现实任务中,原始样本空间是线性不可分的,就可能不存在一个可正确划分的超平面。对于线性不可分样本的划分问题,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。如果原始空间是有限维,即属性数目是有限,那一定存在一个高维特征空间使样本可分。
特征空间从低维映射到高维,在高维空间内寻找线性可分的超平面,这个是实在的几何抽象。从高维形态去理解其映射成低维的形态,或从低维的形态去理解其映射成高维的形态,都是相当抽象的。当然最基础还是从二维和三维来理解。推荐一个链接/p/19763358,关于傅里叶变换介绍,有助于理解时空抽象。
要将样本在特征空间内线性可分,特征空间的好坏对支持向量机的性能至关重要,选择合适的高维特征空间来映射就很重要;在不知道特征映射的形式时,也就不知道什么样的核函数是合适的,核函数也只是隐式定义了特征空间;如此,核函数的选择称为支持向量机的最核心,好的支持向量机就是选对了核函数来训练。若核函数选择不合适,则意味着将样本映射到了一个不合适的特征空间,可能导致支持向量机泛化性能不佳。
常用的核函数如下: