SVM(二)拉格朗日对偶问题

摘要:
通常,解决方案是引入拉格朗日算子,这里用它来表示算子。得到了拉格朗日公式的L是等式约束的数目。拉格朗日函数构造如下:注意,原始问题中只有不等式约束,只有不等式约束。!!因此,必须有原问题的解决和对偶问题的解决。如何解决上述双重问题将留给下一篇文章中的SMO算法。

 http://www.cnblogs.com/liqizhou/archive/2012/05/11/2495689.html

2 拉格朗日对偶(Lagrange duality)

 2.1 先抛开上面的二次规划问题,先来看看存在等式约束的极值问题求法,比如下面的最优化问题:

    clip_image001[9]    (公式2-1)

    目标函数是f(w),下面是等式约束。通常解法是引入拉格朗日算子,这里使用clip_image003[14]来表示算子,得到拉格朗日公式为

        SVM(二)拉格朗日对偶问题第3张     (公式2-2)

    L是等式约束的个数。

    然后分别对w和clip_image003[15]求偏导,使得偏导数等于0,然后解出w和clip_image006[6]。至于为什么引入拉格朗日算子可以求出极值,原因是f(w)的dw变化方向受其他不等式的约束,dw的变化方向与f(w)的梯度垂直时才能获得极值,而且在极值处,f(w)的梯度与其他等式梯度的线性组合平行,因此他们之间存在线性关系。(参考《最优化与KKT条件》)

2.2 然后我们探讨有不等式约束的极值问题求法,问题如下:

    clip_image007[6]    (公式2-3)

    我们定义一般化的拉格朗日公式

    SVM(二)拉格朗日对偶问题第7张(公式2-4)

    这里的clip_image010[50]clip_image012[14]都是拉格朗日算子。如果按这个公式求解,会出现问题,因为我们求解的是最小值,而这里的clip_image014[6]已经不是0了,我们可以将clip_image010[51]调整成很大的正值,来使最后的函数结果是负无穷。因此我们需要排除这种情况,我们定义下面的函数:

    SVM(二)拉格朗日对偶问题第12张(公式2-5)

    这里的P代表primal。假设clip_image017[6]或者clip_image019[6],那么我们总是可以调整clip_image010[52]clip_image012[15]来使得clip_image021[10]最大值为正无穷。而只有g和h满足约束时,clip_image021[11]为f(w)。这个函数的精妙之处在于clip_image023[6],而且求极大值

    因此我们可以写作

    SVM(二)拉格朗日对偶问题第20张(公式2-6)

    这样我们原来要求的min f(w)可以转换成求clip_image026[10]了。    

    SVM(二)拉格朗日对偶问题第22张    (公式2-7)

     我们使用clip_image029[6]来表示clip_image026[11]

   如果直接求解,首先面对的是两个参数,而clip_image010[53]也是不等式约束,然后再在w上求最小值。这个过程不容易做,那么怎么办呢?

    我们先考虑另外一个问题clip_image030[6](公式2-8a)

    D的意思是对偶(zcl:对偶关系将求最小变为求对偶的最大,所以将公式2-7中标红的部分由max变为min)

    clip_image031[10]将问题转化为先求拉格朗日关于w的最小值(zcl:原来是求L关于clip_image033[6]clip_image003[16]的最小值),将clip_image033[6]clip_image003[16]看作是固定值。之后在clip_image031[11]最大值的话(zcl:,然后引用公式2-8a

  clip_image034[6](公式2-8b)(zcl:这个问题是原问题的对偶问题,下面文字有说明)

    这个问题是原问题的对偶问题,相对于原问题只是更换了min和max的顺序,

    而一般更换顺序的结果是Max Min(X) <= MinMax(X)。然而在这里两者相等。用clip_image036[6]来表示对偶问题如下:

    clip_image037[6](公式2-9)

    下面解释在什么条件下两者会等价。假设f和g都是凸函数,h是仿射的(affine,clip_image038[6])。并且存在w使得对于所有的i,clip_image040[10]。在这种假设下,一定存在clip_image042[14]使得clip_image044[14]是原问题的解,clip_image046[6]是对偶问题的解。还有clip_image047[6]另外,clip_image042[15]满足库恩-塔克条件(Karush-Kuhn-Tucker, KKT condition),该条件如下:

    clip_image048[6](公式2-10)

    所以如果clip_image042[16]满足了库恩-塔克条件,那么他们就是原问题对偶问题让我们再次审视公式(5),这个条件称作是KKT dual complementarity条件。这个条件隐含了如果clip_image050[6],那么clip_image052[10]。也就是说,clip_image052[11]时,w处于可行域的边界上,这时才是起作用的约束。而其他位于可行域内部(clip_image054[6]的)点都是不起作用的约束,其clip_image056[6]。这个KKT双重补足条件会用来解释支持向量和SMO的收敛测试。

    这部分内容思路比较凌乱,还需要先研究下《非线性规划》中的约束极值问题,再回头看看。KKT的总体思想是将极值会在可行域边界上取得,也就是不等式为0或等式约束里取得,而最优下降方向一般是这些等式的线性组合,其中每个元素要么是不等式为0的约束,要么是等式约束。对于在可行域边界内的点,对最优解不起作用,因此前面的系数为0。

最优间隔分类器(optimal margin classifier)

    重新回到SVM的优化问题:

    clip_image057[6](公式2-11)

    我们将约束条件改写为:

    clip_image058[6](公式2-12)

    从KKT条件得知只有函数间隔是1(离超平面最近的点)的线性约束式前面的系数clip_image060[14],也就是说这些约束式clip_image062[6],对于其他的不在线上的点(clip_image064[6]),极值不会在他们所在的范围内取得,因此前面的系数clip_image066[14].注意每一个约束式实际就是一个训练样本。

    看下面的图:

SVM(二)拉格朗日对偶问题第56张

    实线是最大间隔超平面,假设×号的是正例,圆圈的是负例。在虚线上的点就是函数间隔是1的点,那么他们前面的系数clip_image060[15],其他点都是clip_image066[15]。这三个点称作支持向量

    构造拉格朗日函数如下:    

    clip_image068[6](公式2-13)

    注意到这里只有clip_image010[54]没有clip_image012[16]是因为原问题中没有等式约束,只有不等式约束。

    !!下面我们按照对偶问题的求解步骤来一步步进行,

    clip_image069[10](公式2-14)

    首先求解clip_image070[10]的最小值,对于固定的clip_image010[55]clip_image070[11]的最小值只与w和b有关。对w和b分别求偏导数。

    clip_image071[6](公式2-15)

    clip_image072[6](公式2-16)

    并得到

    clip_image073[6](公式2-17)

    将上式带回到拉格朗日函数中得到,此时得到的是该函数的最小值(目标函数是凸函数)

    代入后,化简过程如下:

SVM(二)拉格朗日对偶问题第69张(公式2-18)

     SVM(二)拉格朗日对偶问题第70张

  最后得到

clip_image074[6](公式2-19)

     由于最后一项是0,因此简化为

    clip_image075[6](公式2-20)

    这里我们将向量内积clip_image076[6]表示为clip_image077[6]

    此时的拉格朗日函数只包含了变量clip_image010[56]。然而我们求出了clip_image010[57]才能得到w和b。

    (zcl:为了求出了clip_image010[57])接着是极大化的过程clip_image069[11], (公式2-21)(zcl:根据公式2-9)

        clip_image078[6]       (公式2-22)

     前面提到过对偶问题和原问题满足的几个条件,首先由于目标函数和线性约束都是凸函数,而且这里不存在等式约束h。存在w使得对于所有的i,clip_image040[11]。因此,一定存在clip_image080[6]使得clip_image044[15]是原问题的解,clip_image082[10]是对偶问题的解。在这里,求clip_image010[58]就是求clip_image082[11]了。

    如果求出了clip_image010[59],根据clip_image083[6]即可求出w(也是clip_image044[16],原问题的解)。然后

    clip_image084[6](公式2-23)

    即可求出b。即离超平面最近的正的函数间隔要等于离超平面最近的负的函数间隔。

    关于上面的对偶问题如何求解,将留给下一篇中的SMO算法来阐明。

    这里考虑另外一个问题,由于前面求解中得到

    clip_image086[6](公式2-24)

    我们通篇考虑问题的出发点是clip_image088[6],根据求解得到的clip_image010[60],我们代入前式得到

    clip_image089[6](公式2-25)

    也就是说,以前新来的要分类的样本首先根据w和b做一次线性运算,然后看求的结果是大于0还是小于0,来判断正例还是负例。

    现在有了clip_image010[61],我们不需要求出w,只需将新来的样本和训练数据中的所有样本做内积和即可。

    那有人会说,与前面所有的样本都做运算是不是太耗时了?其实不然,我们从KKT条件中得到,只有支持向量的clip_image060[16],其他情况clip_image066[16]。因此,我们只需求新来的样本和支持向量的内积,然后运算即可。这种写法为下面要提到的核函数(kernel)做了很好的铺垫。这是上篇,先写这么多了

免责声明:文章转载自《SVM(二)拉格朗日对偶问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Go语言之main包web优化之js动态合并 动态压缩 去掉js重复引用 js缓存 js延迟加载下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

03.pandas数据DataFrame

import pandas as pd #1. columns=["数学","英语","语文","理科综合","文科综合"] index=["top2","c9","985","211","1本","2本","3本","大专"] data={ "数学":[145,140,135,130,125,120,115,100], "英语":[145...

数学统计基础-概率论与数理统计

  排列数:    组合数:      关联规则:  1、联合概率和条件概率 联合概率:P(AB)两个概率同时发生的概率    2、关联规则算法    数据分析精选 这个发现为商家带来了大量的利润,但是如何从浩如烟海却又杂乱无章的大数据中,发现啤酒和尿布销售之间的联系呢?这又给了我们什么样的启示呢?关联规则分析 关联...

LaTex常用数学符号整理

在论文和博客的写作中,经常会用到Latex的语法来书写数学公式,一份详细的数学符号对照表必不可少,本文重写了部分 Markdown 公式指导手册 。 -1.求和积分的上下标位置 sum olimits_{j=1}^{M} 上下标位于求和符号的水平右端, sumlimits_{j=1}^{M} 上下标位于求和符号的上下处, sum_{j=1}^{...

wpf 绑定中的数学逻辑运算,可做到Path的加减乘除,用于适配界面的大小,再也不用写死图标的大小了

今天写Bug的途中查到一个神器,不得不说google的强大,之前曾经查过这个问题,无果,今天用google发现了这个大杀器。 贴代码: Height="{calc:Binding ElementName=mainGrid,Path=ActualHeight/2}" Visibility="{calc:Binding ElementName=listView...

Mysql Workbench中PK,NN,UQ,BIN,UN,ZF,AI字段类型标识说明

PK - Belongs to primary key 作为主键 NN - Not Null 非空 UQ - Unique index 不能重复 BIN - Is binary column 存放二进制数据的列 UN - Unsigned data type 无符号数据类型(例如-500 to 500替换成0 - 1000,需要整数形数据) ZF - Fi...

从数学到密码学(十九)

数字证书、CA及PKI(二) 本节我们正式验证数字证书sslclientcert中签名的合法性,根据RFC2459,证书内容分为三部分:tbsCertificate、signatureAlgorithm和signatureValue。证书中signatureAlgorithm内容是sha1WithRSAEncryption,结合RSA算法,得到验证公式如下...