六、支持向量机
6.1 间隔与支持向量
给定训练样本集 D={(x1,y1),(x2,y2),...,(xm,ym)} ,分类学习的思路是在样本空间中找到一个划分超平面,将不同类别的样本分开。在样本空间中,划分超平面可通过以下方程来描述:
其中 ω=(ω1;ω2;...;ωd) 为法向量。样本空间中任一点x到超平面的距离可写为
假定超平面可以将样本正确分类,即对于 (xi,yi)∈D ,若 yi=+1 ,则有 ωTx+b>0 ;若有 yi=−1 ,则有 ωTx+b<0 。令
如下图所示,距离超平面最近的这些训练样本使得上式的等号成立,它们被称为“支持向量”。两个异类支持向量到超平面的距离之和为
它被称为“间隔”。
支持向量与间隔
要找到具有最大间隔的超平面,需要找到符合条件的 ω 和 b 使得
当使用拉格朗日乘子法对式(6.5)进行求解后,可以得到式(6.5)的对偶问题如下:
其中 αi 是拉格朗日乘子。
解出式(6.6)可以得出支持向量机的重要性质: 训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关。
6.2 核函数
当训练样本不是线性可分的,如“异或”问题,可将样本从当前空间映射到一个更高维的特征空间,使得样本在这个空间中线性可分。如果原始空间是有限维,那么一定存在一个合适的高维特征空间使得样本可分。
令
ϕ(x)
表示将x映射后的特征向量,在特征空间中划分超平面的模型可表示为
类似式(6.5),可以得到
该式的对偶问题是
由于高维空间的维度可能很大,直接计算 ϕ(xi)Tϕ(xj) 通常是困难的。为了避开这个问题,可以设想这样一个函数
由此,式(6.9)可以进行简化,进行求解后可以得到
该式显示模型最优解可以通过训练样本的核函数展开,这个式子也被称为“支持向量展式”。只要一个对称函数所对应的核矩阵半正定,它就能作为核函数使用。核函数的选择对于支持向量机的性能非常重要,如果核函数选择不合适,很可能导致支持向量机性能不佳。
6.3 软间隔与正则化
在现实任务中,往往很难确定合适的核函数使得训练样本在特征空间中线性可分,退一步说,即使找到了核函数使得训练集线性可分,也很难断定这个结果是不是由于过拟合造成的。
缓解该问题的一个方法是允许支持向量机在一些样本上出错,即允许一部分样本不满足约束
在最大化间隔的同时,不满足约束的样本应当尽可能少,所以优化目标可以写为
其中C>0是一个常数, L0/1 是“0/1损失函数”
由于 L0/1(z) 非凸,非连续,使得式(6.14)不容易直接求解,所以通常使用其他一些函数代替 L0/1(z) ,称为“替代损失”。以下是三种替代损失函数
当我们采用hinge函数进行求解后可知,此时软间隔向量机的最终模型仅与支持向量有关,即仍保持了稀疏性。一般地,当我们用别的函数替换0/1损失函数时,可以得到一个通用的目标公式
其中 Ω(f) 称为“结构风险”,用来描述划分超平面的“间隔”大小。第二项称为“经验风险”,描述训练集的误差。
6.4 支持向量回归
给定训练样本
D={(x1,y1),(x2,y2),...(xm,ym)}
。对样本
(x,y)
,支持向量回归(SVR)能够容忍
f(x)
与y之间最多有
ε
的偏差,即仅当
f(x)
与y之间的差别绝对值大于
ε
时才计算损失。这相当于以f(x)为中心,构建一个宽度为
2ε
的隔离带。若样本落入此隔离带内,则被认为是预测正确的。
于是,SVR问题可化为
其中C为正则化常数, Lε 为 ε -不敏感损失函数
引入拉格朗日乘子法可解得SVR的支持向量是落在 ε 隔离带之外的样本,因此它的解具有稀疏性。SVR可表示为
其中 κ(xi,xj)=ϕ(xi)Tϕ(xj) 为核函数。