【机器学习】支持向量机

间隔与支持向量

在分类问题中,可能存在多个划分超平面将不同类别的样本分开,如图6.1所示。直观上看,应该去找位于两类训练样本“正中间”的划分超平面。
划分超平面可通过如下线性方程来描述:

其中, ω \pmb{ω} ωωω为法向量, b b b为位移项。显然,划分超平面可被这两个参数确定,我们将其记为 ( ω , b ) (\pmb{ω}, b) (ωωω,b). 样本空间中任意点 x x x到超平面 ( ω , b ) (\pmb{ω}, b) (ωωω,b)的距离可写为

这是因为点到平面的距离公式为

扩展到高维空间后可得r的表达式。

假设超平面 ( ω , b ) (\pmb{ω}, b) (ωωω,b)能将训练样本正确分类,则总存在缩放变换使下式成立:

如图6.2所示,距离超平面最近的这几个训练样本点使上式的等号成立,它们被称为“支持向量”(support vector),两个异类支持向量到超平面的距离之和为

它被称为“间隔”(margin)。
最大化间隔的优化问题可写为

写成最小化形式为

这就是支持向量机(Support Vector Machine, SVM)的基本型

对偶问题

我们希望求解上式来得到最大间隔划分超平面所对应的模型

这是一个凸二次规划(convex quadratic programming)问题,能直接用现成的优化计算包求解,但我们可以有更高效的办法。

对上式使用拉格朗日乘子法可得到其“对偶问题”(dual problem),该问题的拉格朗日函数为

L L L ω \pmb{ω} ωωω b b b的偏导为零可得

代入拉格朗日函数,可得到对偶问题

解出 α \pmb{α} ααα后,求出 ω \pmb{ω} ωωω b b b即可得到模型

注意到基本型中有不等式约束,因此上述过程需满足KKT条件,即要求

于是,对任意第 i i i个训练样本,总有 α i = 0 α_i=0 αi=0 y i f ( x i ) = 1 y_if(\mathbf{x}_i)=1 yif(xi)=1.

α i = 0 α_i=0 αi=0,则该样本将不会在模型中出现,也就不会对 f ( x ) f(\mathbf{x}) f(x)有任何影响;

α i > 0 α_i\gt0 αi>0,则必有 y i f ( x i ) = 1 y_if(\mathbf{x}_i)=1 yif(xi)=1,所对应的样本点位于最大间隔边界上,是一个支持向量。这显示出支持向量机的一个重要性质:训练完成后,大部分的训练样本都不需保留,最终模型仅与支持向量有关。

上述对偶问题是一个二次规划问题,可使用通用的二次规划算法来求解,但其规模正比于训练样本数,这会在实际任务中造成很大的开销。此处我们介绍一个高效算法——SMO(Sequential Minimal Optimization)。

SMO的基本思路是先固定 α i α_i αi之外的所有参数,然后求 α i α_i αi上的极值。由于存在约束 ∑ α i y i = 0 \sumα_iy_i=0 αiyi=0,若固定 α i α_i αi之外的其他变量,则 α i α_i αi可由其他变量导出。于是,SMO每次选择两个变量 α i α_i αi α j α_j αj,并固定其他参数。这样,在参数初始化后,SMO不断执行如下两个步骤直至收敛:

  • 选取一对需更新的变量 α i α_i αi α j α_j αj
  • 固定 α i α_i αi α j α_j αj以外的参数,求解对偶问题获得更新后的 α i α_i αi α j α_j αj

选取的 α i α_i αi α j α_j αj中只需有一个不满足KKT条件,目标函数就会在迭代后增大。直观来看,KKT条件违背的程度越大,则变量更新后可能导致的目标函数值增幅越大。于是,SMO先选取违背KKT条件程度最大的变量。对第二个变量的选择,SMO采用了一个启发式:使选取的两变量所对应样本之间的间隔最大。一种直观的解释是,这样的两个变量有很大的差别,对它们进行更新会带给目标函数值更大的变化。

具体来说,仅考虑 α i α_i αi α j α_j αj时,对偶问题的约束可重写为

其中

消去变量 α j α_j αj后,则得到一个关于 α i α_i αi的单变量二次规划问题,仅有的约束是 α i ≥ 0 α_i\ge0 αi0,这样的二次规划问题的闭式解可高效计算出来。

对于偏移项 b b b,我们注意到对任意 s s s都有

其中 S = { i ∣ α i > 0 , i = 1 , 2 , . . . , m } S=\{i|α_i\gt0,i=1,2,...,m\} S={iαi>0,i=1,2,...,m}为所有支持向量的下标集。理论上,可选取任意支持向量求解上式获得 b b b,但现实任务中常采用一种更鲁棒的做法:使用所有支持向量求解的平均值

核函数

核函数用于解决非线性可分问题,例如图6.3中的“异或”问题。函数 ϕ \phi ϕ将低维空间映射到高维空间,使样本可分。
ϕ ( x ) \phi(\mathbf{x}) ϕ(x)表示将 x \mathbf{x} x映射后的特征向量,于是,在特征空间中划分超平面所对应的模型可表示为

类似地,优化问题可写为

其对偶问题是



于是对偶问题可重写为

求解后即可得到

这里的函数 κ \kappa κ就是“核函数”(kernel function).上述式子亦称为“支持向量展式”(support vector expansion).

已经证明,

只要一个对称函数所对应的核矩阵半正定,它就能作为核函数使用。

表6.1列出了几种常用的核函数。

软间隔与正则化

在现实任务中,往往很难确定合适的核函数使得训练样本在特征空间中线性可分。缓解该问题的一个办法是允许出错。为此,要引入“软间隔”(soft margin)的概念,如图6.4所示。
前面介绍的支持向量机形式要求所有样本划分正确,这称为“硬间隔”(hard margin),而软间隔允许某些样本不满足约束。于是,优化目标可写为

其中 C > 0 C\gt0 C>0是一个常数, l 0 / 1 l_{0/1} l0/1是“0/1损失函数”

然而, l 0 / 1 l_{0/1} l0/1非凸、非连续,数学性质不太好。于是,人们常用替代损失函数,它们一般具有较好的数学性质。图6.5给出了三种常用的替代损失函数( l l o g ( z ) l_{log}(z) llog(z)的图像有点问题,它与纵轴的交点应该在0到1之间):

优化目标的一般形式可写为

加法的左右两项分别称为“结构风险”(structural risk)和“经验风险”(empirical risk);C用于对二者进行折中。上式称为“正则化”(regularization)问题, Ω ( f ) Ω(f) Ω(f)称为正则化项, C C C则称为正则化常数。

支持向量回归

待续

核方法

待续

参考文献

周志华. (2016). 机器学习. 清华大学出版社,北京

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值