这节课听得吃力,能够理清主要知识点是目标。
lagrange算子用于解决有限制条件的最优化问题,其中,有一种只带等式限制条件的优化问题的形式是:
那么使用lagrange乘数法,先构建一个lagrange算子:
其中的Bi称为lagrange乘数。进而对lagrange算子求w 与 Bi 的偏导,并令这两个偏导数的值为零,表达式为:
由此求出的就是满足问题的最优解w 与 Bi.
当限制条件中包含有不等式条件怎么办呢?形如:
假如需要求出它的最优解,需要满足KKT条件(比前面的只需令两个偏导数为0要更加复杂一些),此时的lagrange算子可表示为:
—————————————————————————————————————————————
(以下部分参考 http://www.cnblogs.com/liqizhou/archive/2012/05/11/2495689.html (该文写得很棒),红色部分为自己的思考)
如果按这个公式求解偏导数,会出现问题,因为我们求解的是最小值,而这里的已经不是0了,我们可以将调整成很大的正值,来使最后的函数结果是负无穷。因此我们需要排除这种情况,我们定义下面的函数:
这里的P代表primal。假设或者,那么我们总是可以调整和来使得有最大值为正无穷。而只有g和h满足约束时,为f(w)。这个函数的精妙之处在于,而且求极大值。
因此我们可以写作
这样我们原来要求的min f(w)可以转换成求了。
我们使用来表示。如果直接求解,首先面对的是两个参数,而也是不等式约束,然后再在w上求最小值。这个过程不容易做,那么怎么办呢?(考虑使用对偶问题来求解的原因是直接求解原始问题不容易计算得答案)
我们先考虑另外一个问题
D的意思是对偶,将问题转化为先求拉格朗日关于w的最小值,将和看作是固定值。之后在求最大值的话:
这个问题是原问题的对偶问题,相对于原问题只是更换了min和max的顺序,而一般更换顺序的结果是Max Min(X) <= MinMax(X)。然而在这里两者相等。用来表示对偶问题如下:
下面解释在什么条件下两者会等价。假设f和g都是凸函数,h是仿射的(affine,)。并且存在w使得对于所有的i,。在这种假设下,一定存在使得是原问题的解,是对偶问题的解。还有另外,满足库恩-塔克条件(Karush-Kuhn-Tucker, KKT condition),该条件如下:
所以如果满足了库恩-塔克条件,那么他们就是原问题和对偶问题的解。(疑惑:假如已经求解出了对应的,那么如何求关于w与Bi 的偏导呢?我一直想不通,倒是觉得应该是老师的讲义上打错了 ,因为分析(3)式可知道,是原问题的解,所以,必然是原问题(表达式为L(w,a,b),没有*)关于w的偏导数为0的解。求大神帮忙解释下)
让我们再次审视公式(5),这个条件称作是KKT dual complementarity条件。这个条件隐含了如果,那么。也就是说,时,w处于可行域的边界上,这时才是起作用的约束。而其他位于可行域内部(的)点都是不起作用的约束,其。这个KKT双重补足条件会用来解释支持向量和SMO的收敛测试。
重新回到SVM的优化问题:
我们将约束条件改写为:
从KKT条件得知只有函数间隔是1(离超平面最近的点)的线性约束式前面的系数,也就是说这些约束式,对于其他的不在线上的点(),极值不会在他们所在的范围内取得,因此前面的系数.注意每一个约束式实际就是一个训练样本。
看下面的图:
实线是最大间隔超平面,假设×号的是正例,圆圈的是负例。在虚线上的点就是函数间隔是1的点,那么他们前面的系数,其他点都是。这三个点称作支持向量。
构造拉格朗日函数如下:
注意到这里只有没有是因为原问题中没有等式约束,只有不等式约束。
下面我们按照对偶问题的求解步骤来一步步进行,(验证了分析对偶问题的必要性——求解过程更加方便)
(要改)
首先求解的最小值,对于固定的,的最小值只与w和b有关。对w和b分别求偏导数。
并得到
将上式带回到拉格朗日函数中得到,此时得到的是该函数的最小值(目标函数是凸函数)
化简后得到
由于最后一项是0,因此简化为
这里我们将向量内积表示为
此时的拉格朗日函数只包含了变量。然而我们求出了才能得到w和b。
接着是极大化的过程,
前面提到过对偶问题和原问题满足的几个条件,首先由于目标函数和线性约束都是凸函数,而且这里不存在等式约束h。存在w使得对于所有的i,。因此,一定存在使得是原问题的解,是对偶问题的解。在这里,求就是求了。
如果求出了,根据即可求出w(也是,原问题的解)。然后
即可求出b。即离超平面最近的正的函数间隔要等于离超平面最近的负的函数间隔。
_____________________________________________________________________总体感受:看这节课的视频看的很难受,时间太漫长了,需要花很多时间来消化。。。