《支持向量机SMO算法汇总》由会员分享,可在线阅读,更多相关《支持向量机SMO算法汇总(30页珍藏版)》请在金锄头文库上搜索。
1、支持向量机SMO算法1简介支持向量机基本上是最好的有监督学习算法了。最开始接触SVM是去年暑假的时候,老师要求 交统计学习理论的报告,那时去网上下了一份入门教程,里面讲的很通俗,当时只是大致了 解了一些相关概念。这次斯坦福提供的学习材料,让我重新学习了一些SVM知识。我看很多正 统的讲法都是从VC维理论和结构风险最小原理出发,然后引出SVM什么的,还有些资料上来 就讲分类超平面什么的。这份材料从前几节讲的logistic回归出发,引出了 SVM,既揭示了模 型间的联系,也让人觉得过渡更自然。2重新审视logistic回归Logistic回归目的是从特征学习出一个0/1分类模型,而这个模型是将特
2、性的线性组合作为自 变量,由于自变量的取值范围是负无穷到正无穷。因此,使用logistic函数(或称作sigmoid 函数)将自变量映射到(0,1)上,映射后的值被认为是属于y=1的概率。形式化表示就是 假设函数棚3) =| ,莉其中x是n维特征向量,函数g就是logistic函数。的图像是可以看到,将无穷映射到了(0,1)。而假设函数就是特征属于y=1的概率。P(y = 1 | x;9)=栅(工)P(y = 0= 1 - hox)当我们要判别一个新来的特征属于哪个类时,只需求LE,若大于0.5就是y=1的类,反之 属于y=0类。再审视一下*X,发现只和*上有关,:0,那么匚匕茶,g(z)只不
3、过是用来映射,真实的类别决定权还在还有当上:时,,昌-.-.。也就是说除了 y由y = 0变为y=-1, 只是标记不同外,与logistic回归的形式化表示没区别。再明确下假设函数500 =g(wTx+b)上一节提到过我们只需考虑上的正负问题,而不用关心g(z),因此我们这里将g(z)做一个简 化,将其简单映射到y=-1和y=1上。映射关系如下:=宣孩4 函数间隔(functional margin)和几何间隔(geometric margin)给定一个训练样本*,x是特征,y是结果标签。i表示第i个样本。我们定义函数间隔 如下:可想而知,当二】时,在我们的g(z)定义中,:. | - :.
4、乂,注的值实际上就是.* 一。反之亦然。为了使函数间隔最大(更大的信心确定该例是正例还是反例),当T=-时,I应该是个大正数,反之是个大负数。因此函数间隔代表了我们认为特征是正例还 是反例的确信度。继续考虑w和b,如果同时加大w和b,比如在上前面乘个系数比如2,那么所有点 的函数间隔都会增大二倍,这个对求解问题来说不应该有影响,因为我们要求解的是 = :,同时扩大w和b对结果是无影响的。这样,我们为了限制w和b,可能需要加入归一化条件,毕竟求解的目标是确定唯一一个w和b,而不是多组线性相关的向量。这个归 一化一会再考虑。刚刚我们定义的函数间隔是针对某一个样本的,现在我们定义全局样本上的函数间隔
5、7 = min 尹i=l说白了就是在训练样本上分类正例和负例确信度最小那个函数间隔。接下来定义几何间隔,先看图假设我们有了 B点所在的=分割面。任何其他一点,比如A到该面的距离以泄表示,假设B就是A在分割面上的投影。我们知道向量BA的方向是强(分割面的梯度),单位向量是 OA点是:*.,所以B点是X|卜11(利用初中的几何知识),带入上一:得,W(逆仍订,|) + ? = 0进一步得到实际上就是点到平面距离。再换种更加优雅的写法:当* = I时,不就是函数间隔吗?是的,前面提到的函数间隔归一化结果就是几何间隔。他 们为什么会一样呢?因为函数间隔是我们定义的,在定义的时候就有几何间隔的色彩。同样
6、,同时扩大w和b,w扩大几倍,ir就扩大几倍,结果无影响。同样定义全局的几何间隔7 = min $i=15 最优间隔分类器(optimal margin classifier)回想前面我们提到我们的目标是寻找一个超平面,使得离超平面比较近的点能有更大的间距。也 就是我们不考虑所有的点都必须远离超平面,我们关心求得的超平面能够让所有点中离它最近的 点具有最大间距。形象的说,我们将上面的图看作是一张纸,我们要找一条折线,按照这条折线 折叠后,离折线最近的点的间距比其他折线都要大。形式化表示为:仲由7s.t.俨 + 3) 2 M 寸=1, mllll = L这里用II -11 = 1规约w,使得.人
7、T十是几何间隔。到此,我们已经将模型定义出来了。如果求得了 w和b,那么来一个特征x,我们就能够分类 了,称为最优间隔分类器。接下的问题就是如何求解w和b的问题了。由于* =】不是凸函数,我们想先处理转化一下,考虑几何间隔和函数间隔的关系,旧川, 我们改写一下上面的式子:s.t. y(wTzSl;,+ b) z = 11., m这时候其实我们求的最大值仍然是几何间隔,只不过此时的w不受* =-的约束了。然而这 个时候目标函数仍然不是凸函数,没法直接代入优化软件里计算。我们还要改写。前面说到同时 扩大w和b对结果没有影响,但我们最后要求的仍然是w和b的确定值,不是他们的一组倍数 值,因此,我们需
8、要对故一些限制,以保证我们解是唯一的。这里为了简便我们取、=-。这样的意义是将全局的函数间隔定义为1,也即是将离超平面最近的点的距离定义为*吨由于求M的最大值相当于求的最小值,因此改写后结果为:min 邮;|剑|“s.t.,他七+ 3) m L 2 = L 5这下好了,只有线性约束了,而且是个典型的二次规划问题(目标函数是自变量的二次函数)。代入优化软件可解。到这里发现,这个讲义虽然没有像其他讲义一样先画好图,画好分类超平面,在图上标示出间隔 那么直观,但每一步推导有理有据,依靠思路的流畅性来推导出目标函数和约束。接下来介绍的是手工求解的方法了,一种更优的求解方法。6拉格朗日对偶(Lagran
9、ge duality)先抛开上面的二次规划问题,先来看看存在等式约束的极值问题求法,比如下面的最优化问 题:minw /(w)s.t.五(也)=0, ? = 11.目标函数是f(w),下面是等式约束。通常解法是引入拉格朗日算子,这里使用来表示算子, 得到拉格朗日公式为(叫/?) = /(w) + 口而(也)让1L是等式约束的个数。然后分别对w和求偏导,使得偏导数等于0,然后解出w和:。至于为什么引入拉格朗日 算子可以求出极值,原因是f(w)的dw变化方向受其他不等式的约束,dw的变化方向与f(w) 的梯度垂直时才能获得极值,而且在极值处,f(w)的梯度与其他等式梯度的线性组合平行,因 此他们之
10、间存在线性关系。(参考最优化与KKT条件)然后我们探讨有不等式约束的极值问题求法,问题如下:min 叫f(w)s.t.(也)0a,8: a; 0 w这个问题是原问题的对偶问题,相对于原问题只是更换了 min和max的顺序,而一般更换dx顺序的结果是Max Min(X) = MinMax(X)。然而在这里两者相等。用“ 来表示对偶问题如下:d* = max nun 3) 0下面解释在什么条件下两者会等价。假设 f和g都是凸函数,h是仿射的(affine,there csists S虹龄that 岫 =qR + &)。并且存在可使得对于所有的i,,(w)0 在这种假设下,一定存在注使得是原问题的解
11、,是对偶问题的解。还 有=另外户满足库恩-塔克条件(Karush-Kuhn-Tucke,KKT condition),该条件如下:所以如果注 :满足了库恩-塔克条件,那么他们就是原问题和对偶问题的解。让我们再 次审视公式(5),这个条件称作是KKT dual complementarity条件。这个条件隐含了如果 :J :,那么二。也就是说,V =时,w处于可行域的边界上,这时才是起作 用的约束。而其他位于可行域内部(叫、的)点都是不起作用的约束,其 。这个 KKT双重补足条件会用来解释支持向量和SMO的收敛测试。这部分内容思路比较凌乱,还需要先研究下非线性规划中的约束极值问题,再回头看看。 KKT的总体思想是将极值会在可行域边界上取得,也就是不等式为0或等式约束里取得,而最 优下降方向一般是这些等式的线性组合,其中每个元素要么是不等式为0