OMSCS-ML课程笔记06-SVM and Kernel Methods
这个系列是Gatech OMSCS 机器学习课程(CS 7641: Machine Learning)的同步课程笔记。课程内容涉及监督学习、无监督学习和强化学习三个部分,本节主要介绍监督学习中支持向量机的相关内容。
Linear SVM
支持向量机(support vector machine, SVM)是经典的二分类模型。从几何的角度上讲,二分类问题可以理解为在空间中寻找一个超平面(hyperplane)来将数据划分为两部分。在数据集是线性可分的情况下存在无数个可行的超平面将数据集正确划分,如下图中的
Maximal Margin Hyperplanes
SVM通过最大化两个类别数据到超平面的距离来求解这个的超平面。假设超平面方程为
换句话说
当且仅当
对于任意点
将支持向量带入上式可以得到正负两类样本到超平面的最小距离为:
进而得到SVM对应的约束优化问题:
由于最大化
求解得到分类超平面后对应的决策函数为:
Dual Problem
对于SVM的约束优化问题我们可以使用拉格朗日乘子法(Lagrange multiplier)进行求解。为此构造拉格朗日函数如下:
其中
我们定义拉格朗日函数的极大极小问题为极小极大问题的对偶问题(dual problem):
对于线性可分情况SVM的原始问题与对偶问题有相同的解,因此我们可以通过求解对偶问题来获得原始问题的最优解。分别对
将上述条件带入
然后对
更常见的形式是带约束的最小化问题:
此时的优化问题为关于
其中
利用原始问题的KKT条件还可以进一步证明拉格朗日乘子向量
Kernel Methods
对于线性不可分的情况使用SVM是不能得到分类超平面的。对于这样的问题常用的处理方式是构造一个到高维的映射

同样地,利用映射
不难发现此时非线性的SVM与线性SVM没有任何本质区别,只需要将低维向量
利用核函数我们可以避免计算高维向量
求解拉格朗日乘子向量
对应的决策函数为:
显然并不是任意的二元函数都可以作为核函数来使用,实际上核函数是正定核函数(positive definite kernel function),它们满足对称正定的条件即对应的Gramm矩阵
在实践中一般很少从零开始构造核函数,往往是利用一些已有的核函数并在此基础上调整相关的参数。常用的核函数包括多项式核(polynomial kernel)、高斯核(Gaussian kernel)等。
Back to Boosting
本节最后我们从margin的角度来分析boosting方法。boosting的决策函数可以表示为:
注意到上式和Ensemble Learning一节中给出的形式有所区别,这里我们多了分母项
显然对于比较容易的样本

Reference
- 第7章:支持向量机,统计学习方法(第2版)
- Wikipedia: Support-vector machine
- Wikipedia: Karush–Kuhn–Tucker conditions