支持向量机(二)——深入理解最优间隔分类器

1. 最优间隔分类器理论

之前我们提到在支持向量机中,我们的目标是寻找一个超平面,使得离超平面比较近的点能有更大的间距,也就是说我们不必考虑所有的点都必须远离超平面,我们关心求得的超平面能够让所有点中离它最近的点有最大间距。
因此,注意最优间隔分类器我们的任务是什么,就是使最近的点的几何间距最大。先上公式:

这里写图片描述

解释一下: Max的γ,w,b$参数,右边的γ为最优化的目标函数,其实就是几何间隔,s.t后面的两个式子表示约束条件。(注意第一个式子中的γ已经是全局的几何间隔中最近的那个样本的几何间隔)
首先我们的目标是几何间距γ 最大,但不能任意的大,因此加的第一个约束条件就是要求找到一个γ ,使所有样本的几何间隔都要大于等于γ ,但是这个γ 可能有很多个,假设为γmany ,因此我们要找到一组最大的w,b,使γγmany 中最大的那个值,这就是max里面的三个参数。
其次为什么我们可以直接设置第二个约束条件,首先加上||w||=1这个条件,第一个约束条件就可以从函数间隔变成几何间隔,而几何间隔就是我们的目标,这是一个很好的思路,其次我们记得几何间隔的优势就是同时扩大w和b,对几何间隔没有影响,所以||w||=1这个条件可以直接通过对w和b的缩放实现,但对结果又不影响。
缺点:由于我们的要求解的参数w在一个球体表面,如果想得到一个凸优化问题,必须保证如梯度下降算法这种局部最优值搜索算法不会找到局部最优值,而非凸性约束不能满足这个条件,所以需要改变优化问题。因此我们需要将上面的式子转换一下:

这里写图片描述>

我们继续分析一下:max后面的参数不是γ (几何间隔)而应该是γ^ (函数间隔),公式中没有修正过来(同样γ^ 表示已经是全局的函数间隔中最小的那个样本的函数间隔)但是注意我们最优化的目标是γ^||ω|| ,这个目标其实还是几何间隔,因为γ=γ^||ω||
由于这里||w||不等于1了,所以第一个约束条件其实是变成了函数间隔,翻译一下,我们的目标不变依然是使几何间隔最大,但是约束条件变为,找到一个γ^ ,使所有样本的函数间隔都要大于等于γ^ ,但是这个γ^ 可能有很多个,假设为γ^many ,因此我们要找到一组最大的w,b,使γ^γ^many 中最大的那个值,这就是max里面的三个参数。
注意这一步只是一个转换,虽然约束条件变为了函数间隔,但我们的目标还是求几何间隔最大。
缺点:γ^||ω|| 目标函数不是一个凸函数,因此仍然需要改进。这里γ^ 为函数间隔之前讲过,随着w和b的扩大,函数间隔也会对应扩大,为了保证w和b唯一而不是一组倍数解。因此我们将γ^ 做一些限制,保证解唯一,这里为了简化,我们将γ^ =1,意义是将全局的函数间隔定义为1,也就是说离超平面最近的点的几何距离为1||ω|| 。那么求1||ω|| 的最大值就可以转化成求12||w||2 最小值。改写后的结果如图:

这里写图片描述

解释一下:首先为什么我们可以设置函数间隔为1,个人理解是,因为我们要求的是函数间隔,由于之前说的缩放问题,无论w和b怎么变,函数间隔会相应的变化,但是几何间隔不会变,所以即使我将函数间隔缩放到1,几何间隔依然不会变。
所以,这么倒腾了几下之后,我们发现最后变成了线性约束,这是一个凸优化问题,且没有局部最优值,可以通过梯度下降找到全局最优值。而且是典型的二次规划问题了。

2. 拉格朗日对偶

上面说了,我们将最优线性分隔器变化为了二次规划问题,那么我们来看看这种带有不等式约束的极值问题怎么求,举一个例子:

这里写图片描述

根据高数里面的知识(不细说),我们定义的一般化拉格朗日算子为:
这里写图片描述
其中此时αiβi 为拉格朗日乘数(到这里都是高数的知识)。
在这里,拉格朗日用了一个很巧妙的函数,我们先看公式,再来看它的奇妙之处。
这里写图片描述
这里的下标P表示primal,即原始问题。先抛开上面的约束条件,我们要使θp(w) 取得最大值的话,假设gi(w)>0 或者hi(w)0 ,那么我们总是可以调整αiβi 来使得θp(w) 有正无穷的最大值。但是一旦满足约束条件,即gi(w)0 或者hi(w)=0 ,而αi0 ,那要使θp(w) 最大,则必须满足gi(w)αi=0 ,则最大值就是θp(w)=f(w) 。所以这个函数最奇妙的地方就是αi0 ,而且是求极大值。
因此我们可以将这个函数换一种写法:
这里写图片描述
这样一来,我们原来要求的minf(w) ,就转换成了求minθp(w)
这里写图片描述
我们用p 表示minθp(w) 。如果直接求解,首先面对两个参数,而且还有不等式约束,然后再有w上求最小值,太难计算,因此我们就引出对偶问题。
θp(w) 对偶的另外一个问题
这里写图片描述

θD(α,β) 将α和β先看做常量,将问题转化为先求拉格朗日关于w的最小值。之后再求θD(α,β) 的最大值:
这里写图片描述

这个问题就是原问题的对偶问题,定义为d ,然后根据一般事实,我们有以下结论:
这里写图片描述
关键的问题就是什么时候原始问题和对偶问题的解相等了。假设f(w) 是凸函数,假设hi 为仿射函数,即hi(w)=αiTw+b 。假设gi 是严格可执行的,即存在w,使得对于所有i,gi(w)<0 ,在上述条件下,一定存在wαβ ,其中w*是原始问题的解,αβ 是对偶问题的解,并且:
这里写图片描述
此外,wαβ 还满足KKT条件:
这里写图片描述
注意,KKT的总体思想是认为极值会在可行域的边界上取得,对于可行域边界内的点,对最优解不起作用,因此前面系数为0。我们来看公式5,这个条件隐含了如果α*>0,则g函数等于0,也就是说g函数等于0,w处于可行域的边界上,这才是起作用的约束,其他内部的点(g<0)都不起约束条件。

3. 最优间隔分隔器计算

重新回到我们之前的优化问题上:

这里写图片描述
我们将约束条件改为:
这里写图片描述
通过KKT条件可知,只有函数间隔是1,即离超平面最近的点的线性约束式前面的系数是αi>0 ,则这些点g(w)=0 ,那么对于不在线上的点(g<0) ,则αi=0 ,每一个约束式其实是一个训练样本,如下图所示:
这里写图片描述

图中的圈和叉即正负样本,实线即w,b确定的分隔线,虚线即函数间隔为1的点所构成的线。看出有三个样本的函数间隔为1,其他样本的函数间隔大于1。
通过KKT条件,这些函数间隔为1的样本对应的拉格朗日乘数一般不等于0,即αi>0 。这个函数间隔为1的样本称为支持向量。支持向量数量很少,所以多数的αi=0 ,那么反推可得,αi=0 ,对应的样本不是支持向量。

构造拉格朗日函数为:
这里写图片描述
由于这个问题只有不等式约束,所以没有β。下面我们就用到第二节讲到的按照对偶问题来一步步求解:
这里写图片描述
为了使拉格朗日算子最小,因为它是w,b的函数,对w,b求偏导数并设为0。
求得:
这里写图片描述
得到:
这里写图片描述
将上式带到拉格朗日函数找那个,得到函数的最小值,化简后得:
这里写图片描述
最后一项根据之前结果为0,则
这里写图片描述

将上式表示为W(α) ,极大化的过程为:
这里写图片描述
前面说过对偶问题和原问题满足几个条件,首先是目标函数与线性约束都是凸函数,这里不存在等式约束h。因此存在w使得对于所有的i,g<0 。因此,一定存在wα 使得w 是原问题的解,α 是对偶问题的解。这里αi=α
如果求出αi ,根据之前求偏导的公式可求出w ,然后
这里写图片描述
这个公式的直观理解就是,找到最差的样本(离得最近的正负样本),根据它们的位置,可求出超平面的位置。关于上面的对偶问题如何求解,之后会告诉大家。
最后有一个引出话题,由于通篇考虑的是WTx+b ,根据求解得到的αi ,代入之前的式子:
这里写图片描述

xiTx 表示为新输入的x和训练样本x的内积的和。这个好处在于之前都是将新来的样本根据w,b 做一次线性运算来判断是正还是负,现在有了αi ,我们不需要求出w,可以直接将新来的样本和训练数据的样本做内积,而且根据KKT条件,只有支持向量αi>0 ,其他的αi=0 ,因此计算很高效

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章