支持向量机(support vector machines,SVM)是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;支持向量机还包括核技巧,这使它成为实质上的非线性分类器。

支持向量机于 1995 年正式发表[Cortes and Vapnik, 1995],由于在文本分类任务中显示出卓越性能,很快成为机器学习的主流技术,并直接掀起了“统计学习”在 2000 年前后的高潮。但实际上,支持向量的概念早在二十世纪六十年代就已出现,统计学习理论在七十年代就已成型,对核函数的研究更早, Mercer 定理可追溯到 1909 年,RKHS 则在四十年代就已被研究,但在统计学习兴起后,核技巧才真正成为机器学习的通用基本技术。

下面我们就来看一下什么是支持向量机。 


要将下图的苹果和梨进行分类,我们除了使用KNN之外,还可以使用什么算法呢?圆圈可以,那直线就不能拥有姓名吗。所以这篇文章我们就讲怎么用线进行划分

SVM 支持向量机_统计学习

现在我们已经用一条线将二者划分了,如果出现新样本,它落在线的上边就是苹果,落在线的下边它就是梨。

SVM 支持向量机_数据_02

我们刚才画出来的这条线就是支持向量机(support vector machine,SVM)。

SVM 支持向量机_数据_03

那现在问题又来了。我们可以用多条线都能够将苹果和梨区分开来,那我们到底选用哪条线呢。所以现在我们将问题转化为如何寻找一条合适的线来进行区分。


SVM 支持向量机_数据_04

其实除了找到那条线之外,样本与直线之间的距离也具有其意义。以苹果这一侧为例,距离样本最远的这个苹果它的分类可信度越高,与样本最近的这个苹果证明它分类可信度越低,现在出现一个新样本,越远离分类的线,证明它越有可能是苹果,越接近分离线,它就有可能不是苹果。而SVM中的任务就是要找到让所有样本分类可信度最高的那条线。

SVM 支持向量机_支持向量机_05

因此我们不必计算所有的距离,只要找到线附近的样本,用它们来进行计算即可。

  • 线两边的样本中间的这条黄色的条条我们称之为分类间隔(classification margin)。
  • 而我们找到的线附近的这些 计算线走向的 样本被称为支持向量(support vector)。

从这里我们可以知道这是支持向量机名字的由来,并且我们还可以得知,支持向量机的分类不需要用到所有的样本,仅需要部分样本即可决定如何分类。

SVM 支持向量机_支持向量机_06

支持向量机学习方法包含:

  • 线性可分支持向量机(linearsupport vector machine in linearly separable case)当训练数据线性可分时,通过硬间隔最大化(hard marginmaximization),学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机
  • 线性支持向量机(linear support vector machine)当训练数据近似线性可分时,通过软间隔最大化(soft marginmaximization),也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机
  • 非线性支持向量机(non-linearsupport vector machine)当训练数据线性不可分时,通过使用核技巧(kernel trick)及软间隔最大化,学习非线性支持向量机。


刚才我们上面提到的例子就是线性可分的数据,所以我们可以直接学习到一个硬间隔支持向量机。而下图我们可以看到,当数据线性不可分的时候,那我们需要找到一条线,让这些不可分的样本尽量的接近于这条线,通过引入松弛变量或者惩罚因子获得一个软间隔支持向量机。

SVM 支持向量机_数据_07

而当数据过分离散的时候,我们可以引入一个转化的函数,将数据投射到其他的维度,使其变为可分数据。这些我们之后再详细介绍。

SVM 支持向量机_数据_08



声明!本文配图大部分来自科普博主KnowledgeAI小姐姐的视频,如果有的她没画,我就按照她的画风仿制一下,做到全文画风一致。