SVM 简要推导过程

 

SVM 是一块很大的内容,网上有写得很是精彩的博客。这篇博客目的不是详细阐述每个理论和细节,而在于在不丢失重要推导步骤的条件下从宏观上把握 SVM 的思路。函数

 

1. 问题由来

SVM (支持向量机) 的主要思想是找到几何间隔最大的超平面对数据进行正确划分,与通常的线性分类器相比,这样的超平面理论上对未知的新实例具备更好的分类能力。公式表示以下:学习

 : 全部点中最小的几何间隔, 实际上就是支持向量上的点的几何间隔优化

 : 训练样本及对应标签, , 做用是将第 i 个样本点的几何间隔转化为正数spa

公式的意思是假设每一个训练样本点的几何间隔至少是 , 求  的最大值。blog

因为几何间隔(没帽子)和函数间隔(有帽子)的关系是:get

最大化  能够固定  ,求 ||w|| 的最小值或者固定 ||w||, 求  的最大值,通常选择前者: 固定函数间隔为 1, 将 \gamma = 1/||w|| 带入上式,同时为了计算方便, 目标函数等价于最小化 ||w||^2 ,约束优化问题转化为:博客

这是一个 QP 优化问题。it

 

2. 对偶问题

利用拉格朗日乘子法将约束条件融入到目标函数:io

SVM 的原始问题其实是一个极小极大问题:学习方法

这个表达式有几个变量,先从哪个着手?答案是  , 至于为何,其实是根据下面这个优化函数将原始问题的约束条件——函数间隔必须不小于 1 转化到拉格朗日乘子  向量上去的,先看函数的后面一部分:

很容易能够看出,若是样本点 xi 知足约束条件,即有 , 上式求最大,一定有 ,  alpha 与后面括号里面的式子必有一个为 0 (VI) 全部的样本点都知足约束条件,极小极大问题就转化为  , 若是有一个样本点不知足约束条件,alpha 值取无穷大,上式将取无穷大,显然是没有意义的。实际上,这段论述就说明了原始问题具备 KKT 强对偶条件,对于原始问题来讲须要知足的 KKT 条件有哪些呢?

倒数两个条件是原始问题的条件,确定成立。第一个条件是上面讨论过的条件:

  • 当样本不在支持向量上,alpha 必定等于 0, w 在不等式2的内部,这是一个松的约束,L 函数就等于 1/2||w||^2 , 取它的偏导为0就能够了。
  • 当样本点在支持向量上时, w 在不等式2的边界上,这是一个等式约束,这就和普通的拉格朗日等式约束相同,在最优势目标函数和约束条件函数的导数平行。用 wiki 的一张图来表示:

原始问题知足 KKT 条件,能够转化成一个最优解等价的对偶极大极小问题,先对极小部分求偏导:

获得对偶最优化问题:

对于一个新来的样本,将上面 w 的值带入 f(x) = w^T·x + b, 能够知道要判断新来的点,咱们只须要计算它与训练点的内积便可,这是 kernel trick 的关键:

 

3. 软间隔

软间隔问题是应对 outliers 的一种方法。软间隔问题能够创建目标函数:

与硬间隔的优化方法类似,获得的解是:

 

4. Kernel Method

 核方法是一种很巧妙的方法,既能够将特征映射到较高的维度,又能够地利用了 SVM 的内积运算避免了维度计算量的爆炸。最后的最优化问题与硬间隔优化问题类似,只要将两个样本的内积改成两个样本的核函数便可 (kernel substitution) :

固然,你也能够将两个样本的内积看作最简单的核函数。Kernel method 不只能够用在 SVM 上,还能够用在 PCA、线性分类器上等,之后再专门写一篇 kernel method 的博客。

 

参考资料:

[1] pluskid 的博客

[2] 统计学习方法, 李航 著

相关文章
相关标签/搜索