第四讲 支持向量机

Posted AmoyAI

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四讲 支持向量机相关的知识,希望对你有一定的参考价值。

支持向量机

主讲人:苏松志副教授 厦门大学智能科学与技术系

整理人:欧阳智超 计算机科学与技术系


本节主要内容:

1. 上节回顾

2. 支持向量机

    2.1 背景

    2.2 硬间隔最大化

        2.2.1 函数间隔与几何间隔

        2.2.2 间隔最大化原理

        2.2.3 线性可分SVM学习算法---最大间隔法

        2.2.4 最大间隔法具体例子

        2.2.5 线性可分SVM学习---对偶算法

        2.2.6 对偶算法具体例子

    2.3 软间隔最大化

        2.3.1 线性支持向量机

        2.3.2 学习的对偶算法第四讲 支持向量机


1.上节回顾

老师再次引入之前熟悉的函数

第四讲 支持向量机

其中,第四讲 支持向量机,表示高维空间上的一个点。

如果是线性回归问题,第四讲 支持向量机

如果是分类问题,第四讲 支持向量机

这里可以把f这个函数看作是一个规律的总结。

接下来介绍得支持向量机这节课老师上课内容非常之多,需要同学们多多手动推导公式。



2.支持向量机

2.1 背景

    支持向量机(support vector machindes,SVM)是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。


    Gortes与Vapnik提出线性支持向量机,Boser、Guyon与vapnik又引入了核技巧,提出非线性支持向量机。本节课老师介绍的是线性支持向量机。


2.2 硬间隔最大化


    给定样本集:

第四讲 支持向量机

    线性分类器基于训练样本D在二维空间中找到一个超平面来分开二类样本。当然,这样的超平面有很多。如下图给出的三个超平面,用红色的实线来表示:


第四讲 支持向量机

    我们可以直观感受到,图三这根红色线代表的超平面抗“扰动”性最好。这个超平面离直线两边的数据的间隔最大,对训练集的数据的局限性或噪声有最大的“容忍”能力。例如,由于训练集的局限性或者噪声的因素,训练集外的样本可能比图中的训练样本更接近两个类的分隔界,这将使许多划分超平面出现错误。而图三的红色超平面的影响最小,简言之,这个划分超平面所产生的结果是比较鲁棒的。


那什么是线性可分呢?


    如果一个线性函数能够将样本分开,称这些数据样本是线性可分的。那么什么是线性函数呢?其实很简单,在二维空间中就是一条直线,在三维空间中就是一个平面,以此类推,如果不考虑空间维数,这样的线性函数统称为超平面。我们看一个简单的二维空间的例子,O代表正类,X代表负类,样本是线性可分的,但是很显然不只有这一条直线可以将样本分开,而是有无数条,我们所说的线性可分支持向量机就对应着能将数据正确划分并且间隔最大的直线。


    接着我们考虑另外一个问题,为什么我们要间隔最大呢?

一般来说,一个点距离分离超平面的远近可以表示分类预测的确信度,如图中的A B两个样本点,B点被预测为正类的确信度要大于A点,所以SVM的目标是寻找一个超平面,使得离超平面较近的异类点之间能有更大的间隔,即不必考虑所有样本点,只需让求得的超平面使得离它近的点间隔最大。

第四讲 支持向量机

接下来的一小节我们引入间隔的计算方法。


2.2.1 函数间隔与几何间隔


首先我们引入一下函数间隔的定义。

给定一个训练样本第四讲 支持向量机,x是特征,y是结果标签,i表示第i个样本。定义函数间隔为: 

第四讲 支持向量机

    刚刚我们定义个函数间隔是针对某一个样本的,现在我们针对全局样本的定义的函数间隔: 

第四讲 支持向量机

    意思就是找到训练样本中函数间隔最小的那个样本,并且要让它的函数间隔最大。


    函数间隔可以表示分类预测的正确性及确信度,但是选择分离超平面时,只有函数间隔还不够。

因为只要成比例的改变w和b,例如将他们改为2w和2b,超平面并没有改变,但函数间隔却成为原来的2倍。这一事实告诉我们,可以对分离超平面的法向量w加某些约束,如规范化,第四讲 支持向量机,使得间隔是确定的。这时候函数间隔就成为了几何间隔。

接下来我们就可以引入几何间隔的概念。

几何间隔首先简单一点说就是点到直线距离。如图

第四讲 支持向量机

给出了超平面(w,b)及其法向量w。点A代表某一实例第四讲 支持向量机,其类标记为第四讲 支持向量机。点A与超平面(w,b)的距离由线段AB给出,记作第四讲 支持向量机。这样就可得到

  第四讲 支持向量机

其中,第四讲 支持向量机为w的第四讲 支持向量机范数。


    由此我们得到,对于给定的训练集T和超平面(w,b),定义超平面(w,b)关于样本第四讲 支持向量机的几何间隔为第四讲 支持向量机


定义超平面(w,b)关于训练数据集T的的几何间隔为超平面(w,b)关于T中所有样本点第四讲 支持向量机的几何间隔之最小值,即第四讲 支持向量机

    可以把几何间隔理解为函数间隔的归一化形式。

根据函数间隔和几何间隔的定义,我们可以得到他们之间的关系为

第四讲 支持向量机

    如果第四讲 支持向量机,那么函数间隔和几何间隔相等,如果超平面参数w和b成比例的改变(超平面没改变),函数间隔也按此比例改变,几何间隔不变。


2.2.2 间隔最大化原理


    间隔最大化的直观解释是:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。也就说,不仅将正负实例分开,而且对最难分的实例点(离超平面最近的点)也有足够大的确信度将它们分开。这样的超平面应该对未知的新实例又很大的分类预测能力。

下面考虑如何求的一个几何间隔最大的分离超平面。这个问题可以表示为下面的约束最优化问题:第四讲 支持向量机


    即我们希望最大化超平面(w,b)关于训练数据集的几何间隔第四讲 支持向量机。约束条件表示的是超平面(w,b)关于每个训练样本的几何间隔至少是第四讲 支持向量机


    根据几何间隔和函数间隔的关系是,可以改写为

第四讲 支持向量机

    函数间隔第四讲 支持向量机的取值并不影响最优化问题的解。这样,就可以取第四讲 支持向量机。将第四讲 支持向量机代入上面的最优化问题。注意到最大化第四讲 支持向量机和最小化第四讲 支持向量机是等价的,所以我们可以改写为


第四讲 支持向量机


    这就是一个凸二次规划问题。

    如此,就有下面一小节我们要介绍的线性可分支持向量机的学习算法---最大间隔发。


2.2.3 线性可分SVM学习算法---最大间隔法


    算法的具体步骤如下:

输入:线性可分训练数据集

    第四讲 支持向量机

其中:

    第四讲 支持向量机第四讲 支持向量机第四讲 支持向量机


输出:最大间隔分离超平面和分类决策函数。


(1)构造并求解约束最优化问题:


第四讲 支持向量机

求的最优解第四讲 支持向量机


(2)由此得到分离超平面:第四讲 支持向量机


分类决策函数:

第四讲 支持向量机

接下来,我们给出一个最大间隔法具体例子。


2.2.4 最大间隔法具体例子


    在如下坐标系中,有三个点,正类(3,3),(4,3),用蓝色表示,负类为(1,1),用红色表示。

            第四讲 支持向量机

    根据间隔最大化算法,我们把数据集构造约束最优化问题为

第四讲 支持向量机

    将上面的约束条件1+2,2+3,可得

       第四讲 支持向量机

    可以把要求的目标函数看成一个圆,和约束条件结合起来得到如下图形。

                第四讲 支持向量机

    从图中,我们发现,在坐标(0.5,0.5)时,他们相切,此时目标函数得到最小值。

    由此得到第四讲 支持向量机,继续代入原来的约束条件中,

得到: b=-2。


    于是最大间隔分离超平面为

        第四讲 支持向量机


2.2.5 线性可分SVM学习---对偶算法


    为求解线性可分支持向量机的最优化问题,将它作为原始最优化问题,应用拉格朗日的对偶性,通过求解对偶问题得到原始问题的最优解,这就是线性可分支持向量机的对偶算法。这样做的优点是,

    1)对偶问题往往更容易求解;

    2)自然引入核函数,进而推广到非线性分类问题。


原始问题:

第四讲 支持向量机

    引入拉格朗日乘子,我们就可以得到以下拉格朗日函数:

    第四讲 支持向量机

    其中,第四讲 支持向量机是拉格朗日乘子向量。

    所以,为了得到对偶问题的解,需要先求第四讲 支持向量机第四讲 支持向量机的极小,再求对第四讲 支持向量机的极大。


(1)求 第四讲 支持向量机

  将拉格朗日函数第四讲 支持向量机分别对第四讲 支持向量机求偏导数并令其等于0.

    第四讲 支持向量机

        得到:第四讲 支持向量机


    将第一个式子代入到拉格子朗日函数,并利用第二个式子,可以得到:


第四讲 支持向量机


第四讲 支持向量机


(2)接下来我们求第四讲 支持向量机第四讲 支持向量机的极大值,即对偶问题

第四讲 支持向量机


    将上面的目标函数由求极大转换成求极小,就得到下面与之等价的对偶最优化问题:

第四讲 支持向量机


    这里引入一个李航《统计学习方法》书中附录C的一个定理


第四讲 支持向量机


而我们上面提到的原始问题就满足定理C.2的条件。

对线性可分训练数据集,假设对偶最优化问题对第四讲 支持向量机的解为第四讲 支持向量机,可以由第四讲 支持向量机求得原始最优化问题对第四讲 支持向量机的解第四讲 支持向量机


 首先来证明一下这个对偶最优化问题的KTT条件是成立的。

(1)第四讲 支持向量机是凸函数

(2)第四讲 支持向量机是仿射函数

(3)第四讲 支持向量机约束严格可行


第四讲 支持向量机是原始问题和对偶问题的解的充要条件是:

满足KTT条件第四讲 支持向量机


KTT的对偶互补条件是。

因为第四讲 支持向量机,所以第四讲 支持向量机


再根据定理C.3,由此我们可以得到。

第四讲 支持向量机

所以KKT条件成立。


我们先引出一条定理:

第四讲 支持向量机是对偶最优化问题的解,则存在下标j,使得第四讲 支持向量机,并可按下式求得原始最优化问题得解第四讲 支持向量机

第四讲 支持向量机


接下来我们对这个定理进行证明:


由KTT条件成立,可得

第四讲 支持向量机

由此可得第四讲 支持向量机


其中至少有一个第四讲 支持向量机,对此j有

第四讲 支持向量机


第四讲 支持向量机代入

可得第四讲 支持向量机


因为,分离超平面可以写成

 第四讲 支持向量机


分类决策函数可以写成

第四讲 支持向量机


    也就是说,分类决策函数只依赖于输入x和训练样本输入的内积。f(x)也叫做线性可分支持向量机的对偶形式。

接下来,介绍一个对偶算法的具体例子。


2.2.6 对偶算法具体例子


训练数据和最大间隔法的例子相同。

        第四讲 支持向量机


根据所给的数据集,对偶问题可以写成

第四讲 支持向量机


求解这一最优化问题。我们将第四讲 支持向量机代入目标函数并记作第四讲 支持向量机

第四讲 支持向量机求偏导数并令其为0,可得第四讲 支持向量机在点第四讲 支持向量机取到极值,但该店不满足约束条件第四讲 支持向量机,所以最小值应在边界上取到。

最后求得当第四讲 支持向量机第四讲 支持向量机时,取到最小值。


接着算出第四讲 支持向量机


分离超平面为:

第四讲 支持向量机


分类决策函数为:

第四讲 支持向量机


2.3 软间隔最大化


2.3.1 线性支持向量机


    线性可分问题的支持向量机学习方法在对于线性部不可分的数据是不实用的,所以这就需要修改硬间隔最大化,使其成为软间隔最大化。


假设给定一个特征空间上的训练数据集:

第四讲 支持向量机其中

第四讲 支持向量机第四讲 支持向量机第四讲 支持向量机


    我们知道线性不可分意味着某些样本点(xi,yi)不在满足函数间隔大于等于1的约束条件。为了解决这个问题,可以对每个样本点(xi,yi)引进一个松弛变量ξi≥0,使函数间隔加上松弛变量大于等于1。这样约束条件变为第四讲 支持向量机


    通过上面的约束,我们依然能够找到最大间隔,只不过我们也允许SVM犯错,使得一部分样本进入到间隔内部,同时保证这样的样本最少,而对于绝大多数样本来说被这个最大间隔完美的区分开了。


    因此,可以和训练数据集线性可分时一样来考虑训练数据集线性不可分的线性支持向量机学习问题。相应于硬间隔最大化,它称为软间隔最大化。


同时,对于每一个松弛变量ξi,支付一个代价ξi,目标函数由原来的第四讲 支持向量机变成第四讲 支持向量机,C>0称为惩罚参数,C越大对误分类的惩罚增大,反之惩罚减小。


线性不可分的线性支持向量机的学习问题变成如下凸二次规划问题:

第四讲 支持向量机


最小化目标函数由两层含义,使第四讲 支持向量机尽量小即间隔尽量大,同时使五分类的个数尽量小。

对于给定的线性不可分的训练数据集,通过求解凸二次规划问题,即软间隔最大化得到的分离超平面为第四讲 支持向量机

对应的分类决策函数为

第四讲 支持向量机

这称为线性支持向量机。


2.3.2 学习的对偶算法


    同硬间隔最大化一样,软间隔最大化也有相应的对偶算法,原始最优化问题的拉格朗日函数是

第四讲 支持向量机


    对偶问题是拉格朗日函数的极大极小问题。首先求该L函数对w,b,ξ 的极小,由

第四讲 支持向量机

得:

第四讲 支持向量机

将上式带入拉格朗日函数,得:

第四讲 支持向量机

再对第四讲 支持向量机α的极大,即得对偶问题:

第四讲 支持向量机

第四讲 支持向量机


通过对约束条件进行变换,最终对偶问题是:

第四讲 支持向量机

第四讲 支持向量机是上述对偶问题的一个解,原始最优化问题的解为w*和b*。接下来求原始最优化问题的解。


原始问题是凸二次规划问题,解满足KKT条件,即得

第四讲 支持向量机


第四讲 支持向量机

第四讲 支持向量机

再由

第四讲 支持向量机

若存在α*的一个分量第四讲 支持向量机,则:


第四讲 支持向量机

那么可求得

第四讲 支持向量机

分离超平面可写为:


最终分类决策函数可写为:




以上是关于第四讲 支持向量机的主要内容,如果未能解决你的问题,请参考以下文章

机器学习之支持向量机:支持向量机的Python语言实现

机器学习之支持向量机:SMO算法

SPSS Modeler软件视频教程分类预测:支持向量机

6-11 SVM支持向量机2

机器学习之支持向量机:核函数和KKT条件的理解

机器学习第四章学习记录和心得