1.0 什么是SVM
1.1 分类中的不适定问题
简单的分类问题例子:在二维的特征平面中,已有一条决策边界将所有的数据点分两类,即蓝色圆形和黄色三角。
但实际上,可以找到多条决策边界完成相同的分类结果,这就所谓的“不适定问题”。“不适定问题”会影响模型的泛化性。比如在下图的分类中,被黄色箭头标出的点被决策边界划为蓝色圆点,但实际上它和黄色三角更近一些,这个点就是决策的“损失”。
事实上,一般分类模型都具有不适定问题,如最常用的logistics模型。为了解决或减弱不适定问题的对模型泛化能力的影响,就引出了SVM。
1.2 SVM的决策边界
SVM在寻找决策边界时,要求边界距离两个分类都尽可能的远。如下图所示:离决策边界最近的点到决策边界的距离尽可能地远。此时就可以忽略其他大部分的数据点,只关注靠近决策边界的几个特殊点即可。
1.3 SVM的定义
仍以上图为例,将最优决策边界向上和下平移,在遇到第一个点时停下来,这个点被称为支撑向量Support Vector;支撑向量到决策边界的距离是d;这两条平移后的直线的间隔(2d)被称为最大间隔Margin。
支撑向量就是支撑着两条平移边界的点,解决分类问题只需要重点研究支撑向量即可,这就是SVM名称的由来;Margin就是分界面可以移动的范围,范围越大表示容错能力越强。
所以支撑向量机的本质就是一个线性分类器,只不过这个线性分类器不仅能把样本分对,还可以最大化Margin。
2.0 SVM的目标函数
由SVM的定义可知,SVM就是要找到使得margin最大的决策边界,那么就可以将SVM转化为一个最优化问题。
2.1 Margin的函数表达
Margin是支撑向量到决策边界的距离。由空间几何知识可得在二维空间里,点到线的距离公式:
拓展到n维空间,点到 (其中为n为向量,即的系数矩阵,为截距)的距离为,
则margin的范围为 。
2.2 决策边界的函数表达
如下图所示,假设最优决策边界,下方margin边界,上方的margin边界分别为:,,。
于是得到函数方程组,该方程组的含义为:过所有点作与边界平行的直线,这些直线都应当是在margin边界之外,即所有点都要在margin之外:
进步一可得:。取临界值带入margin的函数式,简化为 ,此时求最大决策空间,就转换为求。
综上,得到SVM的最优化问题:
,
3.0 求解SVM最优化问题
SVM的最优化问题属于有约束条件的最优问题,使用拉格朗日乘数法构造目标函数:
,
SVM的目标就是求的最小值。
对分别对和求导,得:
将上面两个推导结果带入目标函数中,得到一个新的目标函数:
其中,。
和是对偶问题,在SVM的情况下,二者是等价的,对求解即可。
求解方程,得到的中,大部分都为0,少部分非0,非0的就是支撑向量的系数,因为SVM只研究支撑向量。
前面求导已经得到得到,再将带入到约束条件中,等式两边同时乘以得。由于,于是有。(从上图可以看出对于任意来说是相同的,因此选择任一点就可算出)。
4.0 SVM求解示例
假设在二维空间中有两个样本,和,则对于样本1有,;对于样本2有,。
根据约束条件得,,于是有
根据,得到:
于是
求的最大值,求导解得
将和代入,得
进一步计算。取时,;取时,,结果是相同的。
最终得到决策边界:。margin区间为