3. SVM分类器求解(1)——Lagrange duality
先抛开上面的二次规划问题,先来看看存在等式约束的极值问题求法,比如下面的最优化问题:
![]()
目标函数是f(w),下面是等式约束。通常解法是引入拉格朗日算子,这里使用
来表示算子,得到拉格朗日公式为
![]()
是等式约束的个数。
然后分别对w和
求偏导,使得偏导数等于0,然后解出w和
。
然后我们探讨有不等式约束的极值问题求法,问题如下:
![clip_image002[6] clip_image002[6]](http://images0.cnblogs.com/blog/532915/201310/28113604-63e40894bdaa4ebe8fe7d2e900c082fb.png)
我们定义一般化的拉格朗日公式
![]()
这里的
和
都是拉格朗日算子。如果按这个公式求解,会出现问题,因为我们求解的是最小值,而这里的
已经不是0了,我们可以将
调整成很大的正值,来使最后的函数结果是负无穷。因此我们需要排除这种情况,我们定义下面的函数:
![]()
这里的P代表primal。假设
或者
,那么我们总是可以调整
和
来使得
有最大值为正无穷。而只有g和h满足约束时,
为f(w)。这个函数的精妙之处在于
,而且求极大值。
因此我们可以写作
![]()
这样我们原来要求的min f(w)可以转换成求
了。
![]()
我们使用
来表示
。如果直接求解,首先面对的是两个参数,而
也是不等式约束,然后再在w上求最小值。这个过程不容易做,那么怎么办呢?
我们先考虑另外一个问题![]()
D的意思是对偶,
将问题转化为先求拉格朗日关于w的最小值,将
和
看作是固定值。之后在
求最大值的话:
![]()
这个问题是原问题的对偶问题,相对于原问题只是更换了min和max的顺序,而一般更换顺序的结果是
,如
。 然而在这里两者相等。用
来表示对偶问题如下:
![]()
下面解释在什么条件下两者会等价。假设f和g都是凸函数,h是仿射的(affine,there exists
、
,so that
)。并且存在w使得对于所有的i,
。在这种假设下,一定存在
使得
是原问题的解,同时也是对偶问题的解,即
,此时
满足库恩-塔克条件(Karush-Kuhn-Tucker, KKT condition),条件如下:
![clip_image002[3] clip_image002[3]](http://images0.cnblogs.com/blog/532915/201310/28121543-6ecdc4cdd6244d68a28949c7e0bca9af.png)
所以如果
满足了库恩-塔克条件,那么他们就是原问题和对偶问题的解。让我们再次审视公式(5),这个条件称作是KKT dual complementarity条件。这个条件隐含了如果
,那么
。也就是说,
时,w处于可行域的边界上,这时才是起作用的约束。而其他位于可行域内部(
的)点都是不起作用的约束,其
。
KKT的总体思想是将极值会在可行域边界上取得,也就是不等式为0或等式约束里取得,而最优下降方向一般是这些等式的线性组合,其中每个元素要么是不等式为0的约束,要么是等式约束。对于在可行域边界内的点,对最优解不起作用,因此前面的系数为0。上述数学知识可参见凸优化教程《Convex Optimization》——Stephen Boyd

浙公网安备 33010602011771号