支持向量机是一种二分类模型,目的是寻找一个超平面对样本进行划分,其基本模型定义为特征空间上的间隔最大的线性分类器。
一、线性支持向量机的直观理解
给定训练样本集 , ,模型旨在能基于训练集在样本空间中找到一个合适的划分超平面。
在下图的二维平面中,希望有一个超平面即一条线可以将正负样本很好分开:
由上图直观的感受,可以将样本分开的划分超平面可能会有很多,但一般会选择中间那条黑色加粗的线。毕竟训练集从某种程度上来说只是近似于样本分布,因此更希望能找到一个划分超平面对分类结果具有很好的鲁棒性,即具有对训练集中没有包含的某些样本具有很好的泛化效果。而中间的这条线对分类的结果有着更好的“容忍性”
二、线性超平面
在样本空间中,划分超平面定义成:
根据线性代数的知识,参数 决定了超平面的方向,又被称作法向量,参数 决定了超平面与远点之间的距离。这与逻辑回归中假设函数十分的相像。不同之处在于,逻辑回归中通过激活函数将函数值映射到 区间上。但实质上决定分类结果的还是参数 ,
类似地,假设超平面 能将训练样本正确分类,则满足:
由之前的逻辑回归可以知道,当点能满足:
也能分类样本,但这种情况下当 同时放大或缩小,结果不受影响。超平面还是那个超平面,即多个满足一定规则的 ,其可能对应同一个超平面。
三、支持向量
上图中,距离超平面最近的几个训练样本点使得下式成立
则这些点又被称作支持向量,两个异类支持向量到超平面的距离 称作间隔。
由高中数学,这个间隔等于两个异类支持向量的差在 上的投影。因此:
联立(1)(2)式,得到:
整个问题现在归类到最大间隔 ,最小化 ,由此列出约束方程:
这就是支持向量机的基本型式。
四、求解向量机基本型式
问题转化成如何求解(3)式,由于这是一个凸二次规划问题,我们使用拉格朗日乘子法将问题转化成对偶问题(拉格朗日原理请参照拉格朗日乘子法和KTT条件)。对每个约束条件添加拉格朗日乘子 ,去掉约束条件,目标函数写成:
然后固定 ,如果要让 关于 最小化,对 分别求偏导:
将(5)(6)代入(4)中,得到对偶式:
求解上式用到了SMO算法:
算法思路是首先固定 之外的所有参数,再求 的极值。约束项 保证了能通过其他的变量导出。于是SMO算法每次选择两个变量 ,固定其他参数,迭代至收敛。
主要的步骤是:
- 选取一对需要更新的变量
- 固定 以外的参数,求解(7)式获得更新后的
求解过程中,在仅考虑 的情况下,约束条件(8)可以重写为:
代入到(7)式中,消去 ,得到一个关于 的单变量二次规划问题。
求出 的值后,由(5)式求解参数 :
这里的 指得是极值情况下的 值,对应于边界的支持向量,再求参数 :
即:
那么极值情况下的 :
成功求解参数 后,划分超平面也就确立下来。
1.支持向量机通俗导论(理解SVM的三层境界) - Mac Track - CSDN博客
3.深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
4.周志华. 机器学习[M]. 清华大学出版社, 2016