码迷,mamicode.com
首页 > 其他好文 > 详细

SVM(未完待续)

时间:2014-10-09 02:00:07      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   ar   strong   sp   2014   

1.间隔(Margins)

考虑逻辑回归,概率值bubuko.com,布布扣是由模型bubuko.com,布布扣预测出来的,给定bubuko.com,布布扣,如果bubuko.com,布布扣,则bubuko.com,布布扣,预测最终类别就为1.

对于一个正类样本bubuko.com,布布扣bubuko.com,布布扣越大,bubuko.com,布布扣也就越大,我们也就更大程度上确定该样本属于类别1.也就是说如果bubuko.com,布布扣,那么预测bubuko.com,布布扣就非常可信,类似地,如果bubuko.com,布布扣,我们就能很自信bubuko.com,布布扣是正确的预测.换种角度,对于给定的训练集,如果我们拟合出合适的参数bubuko.com,布布扣,对于任何一正类样本bubuko.com,布布扣,使得bubuko.com,布布扣,对于任何负类样本(bubuko.com,布布扣),使得bubuko.com,布布扣,那么就可以说拟合出了很好的参数,因为这个参数对应的分类器可以将样本很“自信”地区分开来,如果拟合出侧参数使得 bubuko.com,布布扣= 0,这就使得bubuko.com,布布扣=0,也就是说很难确定到底是哪一类,也就是参数使得bubuko.com,布布扣的值距离0越远越好,这样就越加容易确定出给定特征所属类别。

考虑下面的图:

 bubuko.com,布布扣

 

上面的直线就是决策边界(也叫分割超平面)根据所得A,B,C是三个已经被分出类的点。注意到,点A距离决策边界很远,如果被问对于A的bubuko.com,布布扣值得预测是多少,我们可以很大胆且自信的说bubuko.com,布布扣.反观点C,距离决策边界很近,虽然我们根据当前的决策边界也预测bubuko.com,布布扣,但是当决策边界作出很小的改变,就很容易使得bubuko.com,布布扣,因此我们对A的预测比对C的预测更加自信,也就是说如果某点距离决策边界越远,那么根据此决策边界对该点作出的预测就更加可信。

2.符号标记

为了使得讨论SVM更加清晰,首先来介绍一些符号标记。我们将用bubuko.com,布布扣来表示正负类,用bubuko.com,布布扣来表示参数,我们要学习出的分类器模型如下:

bubuko.com,布布扣

 其中,如果bubuko.com,布布扣bubuko.com,布布扣,否则bubuko.com,布布扣

3.函数间隔和几何间隔(Functional and geometric margins)

给定某一训练样本bubuko.com,布布扣,我们定义的关于参数bubuko.com,布布扣函数间隔:

bubuko.com,布布扣.

如果bubuko.com,布布扣,为了让函数间隔较大(正如前面讨论,为了预测更加可信和正确),需要bubuko.com,布布扣是一个很大的正值,当bubuko.com,布布扣,

同样为了让函数间隔较大,就需要bubuko.com,布布扣是一个绝对值很大的负值。简单来说,当bubuko.com,布布扣是一个很大的正值时,我们对样本的预测的正确性就会相当大,因此一个较大的函数间隔就意味着更加可信和正确的预测。然而增大bubuko.com,布布扣绝对值得方法其实很简单,用bubuko.com,布布扣代替bubuko.com,布布扣就很容易达到目的,但这样做真的可行或者有意义吗?考虑下面的讨论。

对于一个线性分类器,我们选择上面提到的函数bubuko.com,布布扣(只能取1或者-1),如果我们用bubuko.com,布布扣代替bubuko.com,布布扣,显然有bubuko.com,布布扣,也就是说bubuko.com,布布扣的值就没变,即bubuko.com,布布扣只取决于bubuko.com,布布扣的符号,而不是bubuko.com,布布扣值的大小。但是,用bubuko.com,布布扣代替bubuko.com,布布扣后,导致上面提到的函数间隔bubuko.com,布布扣也变为原来的两倍。但是,如果原来预测bubuko.com,布布扣=0.5,就是bubuko.com,布布扣=0.5,意味着是1或者-1类的几率是一样的,很难确定到底是哪一类,即使代替后函数间隔变为原来的2倍,由于bubuko.com,布布扣没变,所以还是很难确定,所以增大函数间隔后并没有提高预测的可信度和准确性,那么之前说的“一个较大的函数间隔就意味着更加可信和正确的预测”是不是有问题呢?显然是有问题的,所以为了解决这个问题,我们得从函数间隔的定义入手:采取一种归一化手段,令bubuko.com,布布扣,用bubuko.com,布布扣代替bubuko.com,布布扣。后面会继续讨论这个问题。

给定训练集bubuko.com,布布扣,前面bubuko.com,布布扣是代表训练集中某一个样本的函数间隔,我们定义训练集的函数间隔是训练集中所有样本的函数间隔中最小的那个,用bubuko.com,布布扣表示训练集的函数间隔,则根据定义:

 bubuko.com,布布扣

 

下面讨论几何间隔,考虑下面图片:

 bubuko.com,布布扣

 

在参数还是bubuko.com,布布扣的情况下决策边界如上面直线所示。因为决策边界的方程是bubuko.com,布布扣=0,根据几何知识可以知道,决策边界是与向量bubuko.com,布布扣垂直的。考虑点A代表着某个训练样本bubuko.com,布布扣被标记为1类,点A到决策边界的距离就是线段AB的长度,用bubuko.com,布布扣表示,注意区别于bubuko.com,布布扣

如何计算出A的bubuko.com,布布扣值呢?可以看出bubuko.com,布布扣是与bubuko.com,布布扣同向的单位向量,A代表bubuko.com,布布扣,因此点B就可以表示为bubuko.com,布布扣

但是点B是决策边界上的一点,根据决策边界的方程bubuko.com,布布扣=0可以得到:

bubuko.com,布布扣

解出bubuko.com,布布扣

 bubuko.com,布布扣

 

然而这只是位于决策边界上方的正样本的,更加一般地,我们定义出任意训练集中的样本的bubuko.com,布布扣

bubuko.com,布布扣

这就是任意样本的几何间隔(geometric margin).

bubuko.com,布布扣,函数间隔就和几何间隔相等,这就将两种不同间隔联系了起来。

但是,当我们bubuko.com,布布扣用代替bubuko.com,布布扣,函数间隔会变为原来的2倍,而几何间隔却不会变(这个在后面性质会很有用),

这就解释了为什么前面用bubuko.com,布布扣代替bubuko.com,布布扣,函数间隔变大,而分类准确度和可信度没有变化,因为函数间隔虽然变大,但是反映到实际的图形中,我们可以看到该点到分类边界的距离 bubuko.com,布布扣(几何间隔)并没有变化,分类准确度和可信度当然不会提高,所以函数间隔存在局限性,而几何间隔就不存在这种问题,只要几何间隔变大,在图形中很显然就可以反映出分类可信度的提高。

最后定义出训练集bubuko.com,布布扣的几何间隔,就是所有样本个体的几何间隔最小的间隔:

bubuko.com,布布扣

4.最佳间隔分类器

根据之前的讨论,在给定训练集的情况下,最重要是找到一个决策边界最大化该训练集的几何间隔,最终的分类结果就是,几何间隔就像一条河沟一样,一边是正类,另一边是负类。

现在假设给定的训练集是线性可分的,即可以用超平面将样本分成正负类。那么如何得到最大几何间隔呢?于是自然我们想到优化下面的问题:

bubuko.com,布布扣

 

第一个约束保证所有函数间隔都至少为bubuko.com,布布扣 ,bubuko.com,布布扣进一步保证函数间隔和几何间隔相等(为了解决上面讨论过的函数间隔的局限性),这样就保证了所有几何间隔都至少为bubuko.com,布布扣.优化这个问题,我们就可以得到最大几何间隔时的参数bubuko.com,布布扣.

由于bubuko.com,布布扣的限制,使得上述优化的问题,变成了一个非凸的问题,就很用常规的解析的方法去优化,于是把问题转换一下,由前面讨论可知,函数间隔和几何间隔有如下关系: 

bubuko.com,布布扣=bubuko.com,布布扣

 

于是优化问题可以转换为:

bubuko.com,布布扣

 

然而, bubuko.com,布布扣仍然是一个非凸目标,下面继续

回想我们之前说过,对bubuko.com,布布扣随意扩大或者缩小任意倍数对最终分类的性能是没有什么影响的,下面就要利用这一点。

我们限制含有参数bubuko.com,布布扣的函数间隔必须为1:

bubuko.com,布布扣

 

于是bubuko.com,布布扣 ,而最大化bubuko.com,布布扣和最小化bubuko.com,布布扣是等价的,

于是问题进一步转化:

bubuko.com,布布扣

 

成功转化非凸目标到一个可解析的凸目标,而且只有一个线性约束,它的解就是最佳间隔分类器。

传统的二次规划就可以解决这个问题。但是当问题维数是在高维的时候,二次规划的效率就成了一个问题,为了解决这个问题,引入拉格朗日对偶(Lagrange duality)

5.拉格朗日对偶(Lagrange duality)

下面讨论注重思想,不要在意公式。

考虑下面问题:

bubuko.com,布布扣

 

转化为无约束问题求解:定义拉格朗日算子:

bubuko.com,布布扣

 

这里bubuko.com,布布扣是拉格朗日乘子,对拉格朗日算子求偏导并让导数为0:

bubuko.com,布布扣

 

解出bubuko.com,布布扣bubuko.com,布布扣.

上面的问题只有一个等式约束,下面讨论更为一般的既含有等数约束,又含有不等式约束。

定义一个原问题:

bubuko.com,布布扣

 

类似与上面问题的求解方式,定义一个拉格朗日算子:

bubuko.com,布布扣

 

这里bubuko.com,布布扣bubuko.com,布布扣都是拉格朗日乘子.

考虑下面数值:

bubuko.com,布布扣

 

假如给定bubuko.com,布布扣,假如bubuko.com,布布扣不满足原约束条件,即bubuko.com,布布扣

那么:

bubuko.com,布布扣

 

相反,如果bubuko.com,布布扣满足原约束条件,那么:

bubuko.com,布布扣

由此可见,在bubuko.com,布布扣满足原约束条件下,bubuko.com,布布扣和我们所要解决的问题目标有着相同的值,如bubuko.com,布布扣不满足原约束条件,

bubuko.com,布布扣就趋向正无穷.于是我们发现下面等式成立:

bubuko.com,布布扣

 

 

于是定义bubuko.com,布布扣,称为原问题的目标值.

现在来讨论一个稍微有些不同问题:

bubuko.com,布布扣

 

注意bubuko.com,布布扣是最大化给定bubuko.com,布布扣的目标,而这问题是最小化给定bubuko.com,布布扣的目标.

由此得到如问题,称为对偶问题:

bubuko.com,布布扣

回头看看原问题:bubuko.com,布布扣,可以发现,原问题和对偶问题除了“max”和“min”

交换了位置之外,其余的完全一样.

同样,我们定义对偶问题的目标值:bubuko.com,布布扣.

于是,可以得出对偶问题和原问题的关系:

bubuko.com,布布扣(函数极小值的极大值肯定小于极大值的极小值)

但是,在一定条件下有:

bubuko.com,布布扣

 

所以,在这个条件成立的时候,有时为了方便,我们可以解原问题的对偶问题而不去直接解原问题。下面讨论原问题和对偶问题目标值相等的条件。

将最初的问题再写出来:

bubuko.com,布布扣

假设函数bubuko.com,布布扣和约束条件bubuko.com,布布扣都是凸函数,约束条件bubuko.com,布布扣是线性函数(即存在bubuko.com,布布扣使得bubuko.com,布布扣成立),进一步假设

bubuko.com,布布扣是严格可行,对于所有bubuko.com,布布扣即至少存在一个bubuko.com,布布扣使得bubuko.com,布布扣.

在上述假设条件下,一定存在bubuko.com,布布扣,使得bubuko.com,布布扣是原问题bubuko.com,布布扣的解,bubuko.com,布布扣是对偶问题bubuko.com,布布扣的解,并且bubuko.com,布布扣.此外,bubuko.com,布布扣满足KKT条件(Karush-Kuhn-Tucker conditions):

bubuko.com,布布扣

总的来说,如果bubuko.com,布布扣满足KKT条件,原问题的解就和对偶问题的解相等.

特别注意条件(5)是对偶互补条件,它意味着如果bubuko.com,布布扣,则bubuko.com,布布扣=0,这将会成为后面讨论的一个关键.

6.最佳间隔分类器(续4)

在第4部分,为了找到最佳间隔分类器,采取优化下面的问题(原问题):

bubuko.com,布布扣

为和第5部分讨论的优化问题形式上统一,可以把这个优化问题的约束条件写为:

bubuko.com,布布扣

 

由KKT对偶互补条件可知:αigi(ω)=0,又由KKT条件可知bubuko.com,布布扣,这里就是αi≥0.如果αi>0,则gi(ω)=0,即

bubuko.com,布布扣 = 0,于是bubuko.com,布布扣=1,而bubuko.com,布布扣就是样本bubuko.com,布布扣的函数间隔.由此可知,只有当样本函数间隔为1时,才有bubuko.com,布布扣.

考虑下面的示意图:

bubuko.com,布布扣

 

实线代表最大间隔分割超平面.最靠近决策边界的点的间隔最小,有三个点(两个正样本和一个负样本)正好位于与决策边界平行的虚线上。由于在原问题的约束中规定了间隔为1,所以间隔为1的点只有3个,由前面讨论可知使得αi>0的点只有这三个,那么这三个点就是这个问题的支持向量(support vectors).可以看出支持向量的数目要远比训练样本数目小.

下面我们试图用对偶的方法解这个问题,构造原问题的拉格朗日算子:

bubuko.com,布布扣

 

根据KKT条件:

bubuko.com,布布扣

 

于是得到:bubuko.com,布布扣

于是拉格朗日算子可以写为:

bubuko.com,布布扣

 

同样有KKT条件:

bubuko.com,布布扣

 

进一步简化:

bubuko.com,布布扣

 

于是得到对偶问题:

bubuko.com,布布扣

bubuko.com,布布扣表示:bubuko.com,布布扣

如何解这个对偶问题暂时不谈,假如已经解出了这对偶问题,得到了最优的α,那么根据上面的bubuko.com,布布扣

就可以得到最佳的bubuko.com,布布扣,即找到了bubuko.com,布布扣,然后由下面的等式:

bubuko.com,布布扣

 

得到最优的b,即bubuko.com,布布扣.

假设根据训练集现在已经拟合出了各个参数,对于新来的输入点bubuko.com,布布扣,我们通过计算bubuko.com,布布扣,当且仅当这个值大于0时,给出预测bubuko.com,布布扣,而根据bubuko.com,布布扣

bubuko.com,布布扣

因此,如果已经拟合出α,为了计算这个值只需要计算训练集中的点和bubuko.com,布布扣的内积即可.由上面的讨论可知,除了支持向量对应的几个点对应的α不为0,其余情况下α均为0.所以累加的许多项都为0,我们只需计算出支持向量(往往数量很少)和bubuko.com,布布扣的内积即可.

 

SVM(未完待续)

标签:style   blog   http   color   io   ar   strong   sp   2014   

原文地址:http://www.cnblogs.com/90zeng/p/SVM.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!