线性支持向量机

有一个线性可分的数据集 其中 为特征向量, 为类别标签。

目标是找到一个超平面 使得

  • 时,
  • 时, 并且希望这个超平面距离样本点的间隔最大。

定义函数间隔:

注意到当我们将 等比例放大时,超平面不变,但函数间隔会变大,因此需要先做一个归一化,定义几何间隔: 则目标是

由于函数间隔可以任意缩放,不妨设 因此目标是

又等价于

定义拉格朗日函数

其中

当满足约束条件时,

因此原问题等价于

该问题满足强对偶性,可以交换 min 和 max 的顺序,求解其对偶问题:

代入得

则问题变成

这是一个标准的凸优化问题,可以直接求出最优解

直观理解

从直观上理解, 决定了一个点的重要性。 优化目标式分为两部分:

  • 惩罚项,如果两个点内积很大,说明他们离的很近,如果是同类,则只需要一个当支持向量就行, 变小;如果是异类,说明它们是分界点非常重要,因此 变大
  • 激励项:如果只有第一项,那么直接取所有 为 0 即可,因此需要加入激励,这一项希望找到的 越大越好
  • 最终结果就是绝大多数的点的 会被压到 0,只剩少部分支持向量的 大于 0

约束条件可以理解为类似受力平衡,正负类的总“权重”应该相等

根据 KKT 条件,最优解必须满足约束 对应的样本 就是支持向量

求出 后可计算 选择一个支持向量 ,有 ,而 ,因此

  • 直观上讲, 是超平面的法向量,设正负类加权得到的向量分别是 ,则 ,即正类中心指向负类中心
  • 所有支持向量都严格地位于间隔边界

最后,决策函数为

软间隔

实际情况中,样本可能并不是完全线性可分,某些点不满足函数间隔大于等于 1 的条件。因此引入松弛变量 为了使 尽可能小,优化目标增加惩罚项: 其中 是惩罚参数,C 越大对误分类的惩罚越高

通过类似的对偶变换,有对偶问题为 求得最优解 ,然后同样方法计算 ,计算 时要找 的点。

趋于无穷时,条件 变为 ,和无软间隔时相同。 此处可以将 理解为限制噪点的重要性,如果没有这个限制,一个在异类中的离群点的 趋于无穷大时优化目标会不断减小,导致无法优化。

  • ,则 在间隔边界上
  • ,则分类正确, 在间隔边界和分离超平面之间
  • ,则 在超平面上
  • ,则 被误分类, 时恰好位于对立类的间隔边界上, 时跨越了对立类的间隔边界

线性不可分

解决方法:使用非线性映射,在高维空间构造线性分类面

定义一个非线性映射 映射到高维空间中。但是这会导致维度爆炸,当映射到更高次幂时,维度数成指数级上升。

然而,注意到最终的对偶问题中需要的是高维向量的内积,因此可以直接定义一个在低维空间中可以计算的核函数使它的输出正好等于高维空间中的内积。

问题转化为 求得最优解 ,计算

此处虽然 中包含 ,但是在实际应用决策函数时会被抵消成

  • 多项式核函数:
  • 高斯核函数:,由泰勒展开可以证明,等价于两个无限维向量的内积
  • 树形核函数:

多分类问题

有几种方法:

  • 一对多:某类为正例,其余为负例
  • 一对一:任意两类构造一个 SVM,分类时投票决定类别
  • 层次法:所有类组合成树状结构