超平面
定义:
对于处在超平面两侧的两个点 和
,分别有:

某样本到超平面的单位法向量为:
某样本点到超平面的距离可以表示为:
所以可以看到图中原点距离超平面的距离是
线性分类问题(Linear Classifier)
利用上述性质,y > 0 时为class A,y < 0时为class B,y = 0时,x正好在超平面上,simple and easy。
SVM的作用,是在线性分类器的基础上,找到一个合理的间隔(margin),使得样本到超平面的距离最大。
思路
我们可以在原始的超平面两侧,平行地添加两个超平面作为边界,并且要求:
对于class A中所有样本成立
对于class B中所有样本成立

在上面我们提到,原点距离原始的超平面的距离为:
那么当我们像上图一样加了两个平行线之后,可以得到:
,
于是margin就是:
观察到margin的大小是个比例关系,所以我们可以先简单地把看出,那么我们的margin的表达式就是
于是SVM的优化问题就变成了:
minize
subject to for
表示
的class label。这是一个Constrained convex optimization problem,或确切地来说,是一个quadratic programming问题。
SVM优化问题的求解
Primal problem
计算拉格朗日(拉格朗日乘数法):
求L关于
和
的偏导:
(1)
(2)
于是我们可以得到:weights是训练样本的线性组合:
(3)
Dual problem
把(2)和(3)式代回到表达式 中,可以得到拉格朗日的dual function
于是我们的问题变成了:
maximize
subject to
, for
将dual functino 改成vector的形式,这样我们就得到了一个标准的quadratic programming的形式:
是一个symmetric negative (semi-)definite matrix,约束
是线性的。
QP的解法可以用(比如)Sequential minimal optimization (SMO) 得到,由此可以得到的最优解
。
求解
和
对应的值
在primal problem中我们提到,的值是训练样本的线性组合:
对的求解,我们可以用到互补松弛条件(Complementary slackness condition)
任意选取一个使得
于是有:
因为
所以可以写成:
于是:
至此我们求解出了和
,超平面的两个参数。
支持向量机中的Support Vector是怎么得名的?
让我们回头再看一看complimentary slackness condition:
也就是说,只有当某个训练样本正好落在了边界(margin)上的时候,才会对weight vector 有贡献(只有此时
),此时才会有
这些训练样本就被称作support vector

用SVM进行二分类
对于一个待预测的样本,它的类别由
给出。
其中 通过训练得到,
为训练样本。
于是我们有:
由于最终得到的是稀疏的(大多数都是0),我们仅仅需要去记得少数几个作为support vectors的训练样本
此时它们对应的
Reference
本文的内容总结自慕尼黑工业大学由Prof. Stephan Günnemann教授的Machine Learning课程。未经允许请勿转载。