支持向量机(SVM)通俗理解

听了冯老师在七月在线上讲的【纯白版手推SVM】一节,感觉很顺畅,没有那么么多的数学名词,直接进入本质,不经意间就得出了结果,也下定决心整理一下自己对SVM的认识。下面是自己对SVM的t通俗理解!具体的理论数学推导,可以参考支持向量机通俗导论(理解SVM的三层境界)这篇文章。


SVM和DeepLearning:SVM在解决中小规模样本(相对少)、非线性(惩罚变量)、高维(核函数)模式识别方面具有较大的优势。DP处理的对象主要为图像和声音,优势在于对原始特征的表示,但是神经网络相当于一个黑匣子模型,如果在一些关键的应用场合,出于风险的原因,用户可能会拒绝,但是如果已经提取到了较好对图像进行表示的特征,SVM是有理论推导过程的,有较好的可解释性。


SVM—线性可分

传统的监督学习,比如说0-1分类:我们需要学习一个决策边界g(x),不同的分类器(比如说决策树、神经网络,逻辑回归)会给出不同的分类边界。而这些都是在找一个“好的”的决策边界。那么如何量化一个决策边界好的程度呢?

不同的决策边界

首先看一下SVM的关键假设:对于线性可分的情况下,决策边界有很多个,SVM关键的问题是在这么多决策边界中选一个最好的:决策边界两边最近的样本到决策边界的间隔最大。这样具有比较高的鲁棒性(比如说有一个噪点的扰动不会导致决策边界的变动)。

如下图,H就是决策边界,H1、H2是平行于H且过离H最近的两类样本的直线,我们将H1到H2之间的距离成为“街宽”,我们希望“街宽”越宽越好。当给定了样本点后,如何找出决策边界使得间隔最大呢?我们定义和决策边界垂直的向量w,现在有一个样本向量u。决策规则(Decision Rule):如果这个u在w的投影大于一个值,就是正样本,反之负样本。(公式1),这是对于所有样本而言。

公式1

在训练集中,需要正样本离街的距离大于等于1,反之亦然(最大间隔假设),伸缩W就可以让间隔无限大,这里为了计算方便令距离大于等于1(公式2)。

最大间隔假设

对于训练样本,标签都是已知的,正样本标签为1,负样本标签为-1,现在做一个转换,对公式2两边同时乘以标签yi,我们就可以将两个式子合并为一个公式(公式3),在训练集中所有样本都需要满足这个公式。

公式3

街宽就等于X+和X-的差在w上的投影(距离的定义是在单位向量上的投影),同时对于街边的点要求Yi(wx+b)=1,对公式进行整理可以得到我们的优化目标(公式4)。

街宽求解示意图


街宽推导过程

我们的目标是街宽最大,同时在街边的点满足等号。要求等于1,街边的点也就是所谓的支持向量的候选集,因此我们的问题可以转化为下式:求出了优化的目标:t因此我们的优化目标就是:

带约束的最小值问题

这是带约束的最小值问题,很自然我们想到了拉格朗日乘子法,我们可以写出下面的表达式,分别对w和b求偏导,令其等于0,可以看到w是街边x的线性组合。这里只需要等式约束。

拉格朗日约束求最小值

再将对w和b求偏导的结果带入L中,可以看到L只取决于训练样本中两个向量之间两两的点乘。其中alpha是拉格朗日乘子,如果我们求得了alpha,我们就知道了w.

代入结果

上式中朗格朗日乘子只有很少的一部分部位0,不等于0的乘子所对应的样本点就叫做支持向量,也就是在街边的那些点。通过对凸优化问题(KKT、SMO)的求解就可以求得alpha了,w也就求出了,b也很容易求得。这时决策边界g(x)也就知道了,我们就可以对待分类的样本进行分类了。

对待分类样本金兴预测

SVM—线性不可分—核函数

对于线性可分的情况下,根据上述公式的推导,只需要求得待分类样本与所有训练样本的内积,但是只有支持向量的朗格朗日乘子是不等于零的,因此只需要就算待分类样本与支持向量的内积即可。

上面都是对于线性可分的情况,那么如果样本时线性不可分呢?那就将样本向高维空间转化,使其线性可分(网上有很多关于这方面的例子),那么关键就来了,如何将低维空间的小转化为高维空间的y呢?我们需要找到这个映射,但是这个映射并没有系统的方法,但是我们关系的事高维空间里样本的内积的值,并不是如何映射!核函数的基本作用就是接受两个低维空间的响亮,能够计算出经过某个变换后在高维空间里两个向量的内积值,因此这里我们可以借助核函数实现低维到高维的映射。

核函数

SVM—线性不可分—松弛变量

当我们使用了核函数后向高维空间映射后,问题仍然线性不可分,那么我们就需要松弛变量时的问题可分。

松弛变量

SVM—惩罚因子

惩罚因子

推荐阅读更多精彩内容