第六章 支持向量机
6.1 间隔与支持向量
在样本空间中,可通过划分超平面来进行分类学习。划分超平面可通过如下线性方程来描述:
其中w=(w1;w2;...;wd)为法向量,决定了超平面的方向,b为位移项,决定了超平面与原点之间的距离。
距离超平面最近的几个样本点被称为“支持向量”(support vector),两个异类支持向量到超平面的距离之和被称为“间隔”(margin)r:
找到具有最大间隔的超平面就是使下式成立:
这就是支持向量机(SVM)的基本型。
支持向量机的一个重要性质:训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关。
6.2 对偶问题
为求解SVM基本型,使用拉格朗日乘子法可得到其“对偶问题”(dual problem),即对SVM基本型的每条约束添加拉格朗日乘子ai>=0,则该问题的拉格朗日函数可写成:
其中a=(a1;a2;...am),令L(w,b,a)对w和b的偏导为零可得
将上两式代入朗格朗日函数L(w,b,a),则可得到SVM基本型的对偶问题:
其中ai为拉格朗日乘子。
为求解此对偶问题,常用的高效算法是SMO(Sequential Minimal Optimization)。SMO的基本思路是先固定ai之外的所有参数,然后求ai上的极值。由于存在约束,若固定ai之外的其他变量,则ai可由其他变量导出,于是,SMO每次选择两个变量ai和aj,并固定其他参数,这样,在参数初始化后,SMO不断执行如下两个步骤直至收敛:
- 选取一对需要更新的变量ai和aj;
- 固定ai和aj以外的参数,求解对偶问题获得更新后的ai和aj。
最后,偏移项b的求解可通过所有支持向量的如下平均值:
其中,S是所有支持向量的下标集合。
6.3 核函数
由于原始样本空间可能并不存在一个能正确划分两类样本的超平面,可以将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。通常,如果原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使样本可分。
令表示将x映射后的特征向量,在特征空间中划分超平面所对应的模型可表示为:
类似SVM基本型,有
其对偶问题:
在上面对偶问题中,为求取,定义如下核函数(kernel function):
即xi与xj在特征空间的内积等于它们在原始空间中通过函数k(.,.)计算的结果。将核函数代入对偶问题,求解可得超平面所对应的模型:
核函数定理:令X为输入空间,k(.,.)是定义在X*X上的对称函数,则k是核函数当且仅当对于任意数据D={x1,x2,…,xm},“核矩阵”(kernel matrix)K总是半正定的:
核函数定理表明,只要一个对称函数所对应的核矩阵半正定,它就能作为核函数使用。事实上,对于一个半正定的核矩阵,总能找到一个与之对应的映射即任何一个核函数都隐含地定义了一个称为“再生核希尔伯特空间”(Reproducing Kernel Hilbert Space,RKHS)的特征空间。
核函数的选择成为支持向量机的最大变数,若核函数选择不佳,则意味着将样本映射到一个不合适的特征空间,很可能导致性能不佳。几种常用的核函数有:
而且,还可以通过函数组合得到核函数,例如若k1和k2为核函数,则:
- 对于任意正数r1和r2,其线性组合
也是核函数
- 核函数直积
也是核函数
- 对任意函数g(x),
也是核函数
6.4 软间隔与正则化
在现实任务中很难确定合适的核函数使得训练样本在特征空间中线性可分,而且有时即使找到这样一个核函数,也不能断定是不是过拟合。为此,要引入“软间隔”(soft margin)概念,即允许支持向量机在一些样本上出错,即软间隔允许某些样本不满足约束:
于是,SVM基本型的优化目标可写成:
其中,C>0是一个常数,是“0/1损失函数”
当C取有限值时,优化目标式允许一些样本不满足约束。
由于的数学性质不好,为方便求解,通常用一些函数来替代
,称为“替代损失”(surrogate loss)函数,常用的替代损失函数有:
用不同的替代损失函数得到不同的学习模型,这些学习模型具有一个共性:优化目标中的第一项用来描述划分超平面的“间隔”大小,另一项用来表述训练集上的误差,即:
其中称为“结构风险”(structural risk),用于描述模型f的某些性质,第二项
称为“经验风险”(empirical risk),用于描述模型与训练数据的契合程度,参数C用于对二者进行折中。上式也被称为“正则化”(regularization)问题,
称为正则化项,C为正则化常数。
范数(norm)是常用的正则化项,其中L2范数
倾向于w的分量取值尽量均衡,即非零分量个数尽量稠密,而L0范数
和L1范数
则倾向于w的分量尽量稀疏,即非零分量个数尽量少。
6.5 支持向量回归
前面谈的是分类问题,对于支持向量回归问题(SVR),即给定训练样本,学习到一个形如的回归模型,使f(x)与y尽可能接近。SVR假设我们能容忍f(x)与y之间最多有
的偏差,即仅当f(x)与y之间的差别绝对值大于
时才计算损失,于是,SVR问题可形式化为:
其中,为
不敏感损失函数
引入松弛变量和
,则SVR问题可重写为:
类似6.4节替代损失函数的求解过程,得到SVR的解为:
其中为核函数,
为拉格朗日乘子。
使的样本即为SVR的支持向量,必须落在
间隔带之外,SVR的支持向量仅是训练样本的一部分,即其解仍具有稀疏性。
6.6 核方法
表示定理:令为核函数k对应的再生希尔伯特空间,
表示
空间中关于h的范数,对于任意单调递增函数
和任意非负损失函数
,优化问题
的解总可写成,即核函数的线性组合。
人们发展出一系列基于核函数的学习方法,统称为“核方法”(kernel method)。常见的是通过“核化”(即引入核函数)来将线性学习器拓展为非线性学习器,从而得到“核线性判别分析”(Kernel Linear Discriminant Analysis, KLDA)。具体KLDA方法参见书上说明。
6.7 阅读材料
支持向量机在文本分类任务中常用,支持向量机是针对二分类任务设计的,对多分类任务要进行专门的推广。核函数直接决定了支持向量机与核方法的最终性能,但核函数的选择是一个未决问题,多核学习使用多个核函数并通过学习获得其最优凸组合作为最终的核函数,这实际上式在借助集成学习机制。