直线机

SVM分类器原来这么简单

发布时间:2022/8/30 19:35:31   

SVM,英文全称为SupportVectorMachine,中文名为支持向量机,由数学家Vapnik等人早在年提出。在深度学习兴起之前,SVM一度风光无限,是机器学习近几十年来最为经典的,也是 的分类方法之一。

1SVM与“ ”

不少人在初识SVM时会感觉到高深难懂。现在,就从你我熟知的“ ”来走进SVM的思想内涵。

回忆下小时候,同桌同学经常会用粉笔或是小刀在课桌中间划一条“ ”将课桌一分为二。大家约定好每个人只能在自己的那半课桌领域活动,谁也不能越界,越界是小猪、小狗。

同桌“ ”

这样的“ ”就可以看作二维空间中SVM的形象解释,它传递出了以下几点重要的信息:

1.是一条直线(线性函数);

2.能将桌面分为两个部分,分别属于你和我(具有分类功能,是一种二值分类);

3.位于课桌正中间,不偏向任何一方(注重公平原则,才能保证双方利益 化)。

以上三点也正是SVM分类器的中心思想所在。

这是因为:SVM本质模型是特征空间中 化间隔的线性分类器,是一种二分类模型。

首先,线性分类器指的就是线性函数;其次, 化间隔离不开公平原则;再者,其解决的是二值分类问题(分两类);而特征空间则表明了其学习分类的对象是样本的特征数据。接下来,我们将会一一了解到这些SVM的本质精髓。

2为何叫支持向量机?

通过回忆“ ”的故事,我们已经清楚了SVM的几个中心思想。下面我们再来了解支持向量机这一名称的渊源。

之所以叫支持向量机,因为其核心理念是:支持向量样本会对识别的问题起关键性作用。那什么是支持向量(Supportvector)呢?支持向量也就是离分类超平面(Hyperplane)最近的样本点。

如下图所示,有两类样本数据(橙色和蓝色的小圆点),中间的红线是分类超平面,两条虚线上的点(橙色圆点3个和蓝色圆点2个)是距离超平面最近的点,这些点即为支持向量。简单地说,作为支持向量的样本点非常非常重要,以至于其他的样本点可以视而不见。而这个分类超平面正是SVM分类器,通过这个分类超平面实现对样本数据一分为二。

支持向量与分类超平面示例

3什么是线性分类器?

SVM是一种线性分类器,分类的对象要求是线性可分。因此我们首先要了解什么是线性可分与线性不可分。

假如在课桌“ ”的两旁分别放了一堆苹果和一堆荔枝,通过“ ”这样一条直线就能把苹果和荔枝这两种类别的水果分开了(如左下图),这种情况就是线性可分的。但是如果苹果和荔枝的放置位置是苹果包围荔枝的局面(如右下图),就无法通过一条直线将它们分开(即这样的直线是不存在的),这种情况则是线性不可分的情形。当然,这里举例的对象是苹果、荔枝等具体实物。在机器学习上,学习分类的对象则转化为一系列的样本特征数据(比如苹果、荔枝的相关特征数据,形状、颜色等)。

线性可分

线性不可分

因此,只有当样本数据是线性可分的,才能找到一条线性分割线或分割面等,SVM分类才能成立。假如样本特征数据是线性不可分的,则这样的线性分割线或分割面是根本不存在的,SVM分类也就无法实现。

在二维的平面课桌上,一条直线就足以将桌面一分为二。但如果扩展到三维空间中,则需要一个平面(比如一面墙、一扇屏风等)才能将立体空间区域一分为二。而对于高维空间(我们无法用图画出),能将其一分为二的则称为超平面。

墙体分割三维空间

屏风分割三维空间

图片来源网络

因此,对于不同维度空间,SVM的形式特点也不同,具体表现如下:

课桌是一个水平面,属于二维空间,因此,中间的“ ”就可以简单看做SVM的一种形象解释。如果沿“ ”的竖直方向放置一块挡板,那这块挡板就可形象看作三维空间的SVM。而对机器学习来说,涉及的多是高维空间(多维度)的数据分类,高维空间的SVM,即为超平面。机器学习的最终目的就是要找到最合适的(也即 的)一个分类超平面(Hyperplane),从而应用这个 分类超平面将特征数据很好地区分为两类。

我们已经清楚SVM是一种线性分类器,无论是二维空间的直线,还是三维空间的平面,以及多维空间的超平面,它们的数学表现形式都有着相同的特性,那就是都属于线性函数。线性函数的特点是计算简单,易于求解。

对于我们熟悉的二维空间(平面坐标),直线的函数表达式为:

y=ax+b

如下图所示,我们只要通过平面上两个坐标点A、B的数值代入上述方程,即可求出系数a,b。从而得到直线方程的表达式。

直线方程示意图

在高维空间中,超平面的函数表达式为:

上述方程式中,求出W、b,就得到了超平面的函数方程式。机器学习训练过程就是要求出最合适的W、b,亦即找到了最合适的分类超平面。

4致力间隔 化

如何找到最合适的分类超平面?依据的原则就是间隔 化。

所谓间隔 化,说的是分类超平面跟两类数据的间隔要尽可能大(即远离两边数据),这就要提到我们前面说到的公平原则。“ ”要划在课桌正中间,不偏向任何一方,才能保证双方利益 化。对于分类超平面来说,也就是要位于两类数据的正中间,不偏向任何一类,才能保证离两边数据都尽可能远,从而实现间隔 化。

如左下图所示,有两类样本数据(分别用橙色和蓝色的小圆圈表示),我们可通过红色或蓝色两条直线(L1或L2)将这两类样本数据分开。事实上,我们还可以画出很多条直线将两类样本分开,也就是说,存在有多个可行的线性分类器能将两类样本分类。SVM的最终目标是:以间隔 化为原则找到最合适的那个分类器。

间隔示意图

从直观上看,图中蓝线L2偏向了橙色数据一方,有失公平原则,因而不是我们要找的理想的分类器。红线L1则较注重公平,不偏向任何一类数据,从而能较好地确保离两类数据都尽可能远,实现间隔 化,这样的分类超平面具有更好的泛化性能,分类更加准确,正是我们要找的最合适的分类器。

我们注意到,图中两条虚线(S1和S2)上的圆点数据即为支持向量(Supportvector),它们距离分类超平面最近。现在我们仅保留这些支持向量数据点进行分析(右上图),可以看出两条虚线之间的间隔距离为r。依据公平原则,支持向量到分类超平面的距离则为r/2,这个值即为分类间隔。间隔 化,就是 化这个值(r/2)。

由此可以看出,分类间隔值(r/2)只与支持向量数据点有关,与其他非支持向量数据点无关。这也正好诠释了我们在文中开头说到的:SVM的核心理念是支持向量样本会对识别的问题起关键性作用。也就是说,分类超平面的确定仅取决于支持向量。

对于给定的训练样本,首先要找到距离分类超平面最近的点(支持向量),再通过 化这些点之间的间隔来求解。

函数间隔与几何间隔

要使分类间隔值(r/2) ,该如何求解?我们首先来了解函数间隔与几何间隔。

假设最合适的分类超平面已找到,如前所述,分类超平面的方程即为:

也就是说超平面上的点都符合该方程式。

为便于计算,位于分类超平面两侧的数据计算的数值分别取1或-1,以将数据分两类,这两类数据通常也称为正、负样本数据(如下图所示)。

超平面与分类数据函数值示例

两类数据的函数方程式即为:

也就是说任何属于正样本类的数据(x)带入方程式得到的结果(y)计算取值都为1,即y=1;任何属于负样本类的数据(x)带入方程式得到的结果(y)计算取值都为-1,即y=-1。

函数间隔的定义为:

几何间隔则为:

因此,几何间隔是直观上的点到超平面的距离。

如果令函数间隔γ等于1,则有:

因此,间隔 化,就是 化

这个值,取 值的表达式即为

几何间隔如下图所示:

几何间隔值示例

因此可知:

则:

如何处理线性不可分?

在前面苹果和荔枝的例子当中,我们已经了解到SVM要求样本数据是线性可分的,这样才会存在分类超平面。而如果样本数据是非线性的情况,那将如何处理呢?SVM的解决办法就是先将数据变成线性可分的,再构造出 分类超平面。

SVM通过选择一个核函数K,将低维非线性数据映射到高维空间中。原始空间中的非线性数据经过核函数映射转换后,在高维空间中变成线性可分的数据,从而可以构造出 分类超平面。

如下图所示:原始样本数据在二维空间里无法线性分割,经过核函数映射到三维空间中则可构造出分类超平面进行二类划分。

核函数映射示例

接下来,我们来

转载请注明:http://www.aideyishus.com/lkgx/1428.html

------分隔线----------------------------