支持向量机SVM

来源:互联网 发布:淘宝pc端访客怎么推广 编辑:程序博客网 时间:2024/06/13 16:37

支持向量机

在之前的一些学习中,我们已经了解到,可以使用感知机对数据进行分类。同时我们还了解到了一个重要的结论:通过训练感知机而得到的分类超平面有无数个。
那么,有没有一种算法可以找出分类效果最好的,即最优分类超平面呢?
这就是我们本节要解决的问题,如何找出对某个数据集来说的,最优的分类超平面。

1. 线性可分支持向量机

这里,我们先从最简单的情况开始考虑,也就是数据集D中的数据全都是线性可分的,如下图所示:


线性可分就是可以找到一个分离超平面将数据集中的所有样本都正确分类。我们的分类超平面可以用式子表示出来:

wx+b=0

式中,w我们训练出来的向量,x是输入的特征向量,b是一个偏置值。
下面我们就会看到,求解这个问题实际上是在求解一个最优化问题,在求解之前,先来了解几个概念。

1.1 函数间隔和几何间隔

如果我们将特征向量x带入|wx+b|中运算,得到的结果是这个特征向量指向的点,到分类超平面的距离。因为w是该分类超平面的法向量,wx表示特征向量在超平面的法向量上的投影。
而对于分类问题来说y的取值不是+1,就是-1,因此有这样一个等式|wx+b|=y|wx+b|。因此自然而然的我们就可以给出函数间隔的定义:

γ^i=yi(wx+b)

从上式中我们可以发现γ^i的正负表示分类的结果,其绝对值的大小表示分类的确信度。绝对值越大表示对分类结果的信心越大。
然后我们再定义一个变量γ^
γ^=mini=1,,Nγ^i

我们称数据集D的函数间隔为γ^,即数据集D中与分类超平面离得最近的那个样本的距离。
但是很容易发现函数距离的一些缺陷,当我们把wb同时增k倍的时候,平面并没有发生变化,而函数间隔却增大了k倍,这显然是不好的,函数间隔增大表示对分类结果的可信度增加了,但实际上系统并没有发生变化,这就是不好的地方。
于是,我们给w加一些约束条件,比如||w||=1。于是,我们又得到了另一种间隔,几何间隔:
γi=yi(w||w||.xi+b||w||)

这样就不会出现上边说的那种情况了。我们定义数据集D的几何间隔为:
γ=mini=1,,Ngammai

可以发现,函数间隔和几何间隔有如下的关系:
γ=γ^||w||

到这里,就可以导出要求解的优化方程了,如下:

maxw,b     γ

s.t.     yiw||w||.xi+b||w||γ,   i=1,2,,N

通过一系列转化,将该优化问题转化为:

minw,b     γ^||w||

s.t.     yi(w.xi+b)1γ,   i=1,2,,N

其中的转化思想《统计学习方法》都写的很详细了,这里我想解释一下两个点:1.为什么可以设γ^=1?因为如果将w,b都同时增大或减小λ倍,γ^相应的也增大缩小λ倍,而对于目标函数γ^||w||来说大小并没有变化,因此我们就将这三个参数全部归一化就好了,后面的计算也方便。2.为什么对1||w||进行优化和对12||w||2进行优化效果是一样的?因为将函数图像画出来可以发现,1||w||的极大值点就是12||w||2的极小值点。

《统计学习方法》第101页证明了通过求解上面的方程,得到的解是唯一的,即线性可分类问题中,最优的超平面只可能有一个,此处就不再重复证明了。
同时,在数据集D中还有一些样本的函数间隔为1,即这些样本落在wx+b=±1这个平面上。于是将这两个平面定义为:间隔边界

这里引入拉格朗日乘子法,将上面的求解极小值的优化问题转化为拉格朗日方程的极小极大问题:

minw,bmaxαL(w,b,α)=12||w||2i=1Nαiyi(wx+b)+i=1Nαi

下面将讲解一个求解凸二次规划问题的重要技巧:将原问题的求解转化为对其对偶问题进行求解!
但是原问题的解和对偶问题的解是一样的么?数学家已经证明,当该凸二次优化问题满足KKT条件时,原问题和其对偶问题拥有相同的解。因此,上面那个优化问题的对偶问题如下所示:

maxαminw,bL(w,b,α)=12||w||2i=1Nαiyi(wx+b)+i=1Nαi

于是我们只要求解对偶问题的解,其实也就相当于完成了对原始问题的求解。推导过程书上写的很清楚,此处不再赘述。

2. 线性支持向量机

3. 核技巧

4. 核技巧及核函数

原创粉丝点击