支持向量机基本原理的直观理解
支持向量机(SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机。此外,借助核函数也可以实现非线性分类器的功能。今天,我们先来介绍一下SVM的基本原理。
一、支持向量机基本原理
我们知道在logistic回归中,给定一个x,当w'x≥0时,y'=1;当w'x<0时,y'=0。在支持向量机中,为了增加分类的确信度,当w'x≥1时,y'=1;当w'x≤-1时,y'=0。因此根据logistic的代价函数(带正则项),可以写出SVM的代价函数如下:
其中cost1(z)表示y=1时的代价函数,cost0(z)表示y=0时的代价函数,大致图像如下图所示:
训练SVM的过程就是最小化代价函数的过程,根据上面定义的代价函数可进一步推出:
为了求得最小的代价函数,可以将上式转化成求解凸二次规划问题。上式等价于:
2. 最大间隔直观理解
间隔最大化的直观解释是:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。也就是说,不仅将正负实例分开,而且对难分的实例点(离超平面最近的点)也有足够大的确信度将它们分开。这样超平面应该对未知的新实例有很好的分类预测能力。
假设有一二维特征的训练样例,以下两个超平面都可以将其正确分类。但是右边的超平面要比左边的超平面好,因为其最大间隔更大一些。
那么通过最小化之前定义的代价函数,是否能够找到最大间隔的超平面呢?答案是肯定的。下面我们来简单分析一下通过最小化代价函数是如何选择右边的超平面而不是左边的超平面。我们先分别绘制出这两个超平面的法向量,即w。然后以某个样例为例来分析这两个超平面的不同之处。
为了把x1成功划分为正类,左右两边的超平面都需要满足w'x≥1,而w'x可以转换成|p|*|w|(其中p为x1在w上的投影)。对于左边的超平面而言,x1在w上的投影长度小,但是又要达到w'x≥1的条件,因此|w|就要大一些;对于右边的超平面而言,x1在w上的投影长度大,要达到w'x≥1的条件,|w|就可以小一些。从而最小化代价函数最终给出的选择是右边的超平面。