zoukankan      html  css  js  c++  java
  • 漫步支持向量机(svm)之二 拉格朗日乘子法

    所谓工欲善其事,必先利其器,要想求解目标函数的最小值,而且还是在有不等式约束条件下的最小值,就必须要知道拉格朗日乘子法。

    设目标函数为
    $$
    J(x,y)=x^2+y^2
    $$

    则求$J(x,y)$的最小值很简单吧,让J关于x,y的偏导数等于0,即可求出最小点$hat x,hat y$,$J(x,y)$的几何图像是一个抛物面,其等值面则是以原点为中心的同心圆环。

    那如果加上约束线$y=x^2+1$,那也就意味着,自变量$x,y$只能在约束线上运动。几何图像如下所示:


    等高线图像如下:

    此时求目标函数$J(x,y)$的最小值就不在J关于x,y偏导为0的点上了,因为关于x,y偏导为0的点不在约束线上。

    仔细观察$J(x,y)$的等值面,可以发现从原点往外,等值面所对应的目标函数的值一直在增加,等值面与约束线的关系有三种,相交,相切,相离。相交表示自变量可以取到约束线上的值,相切的时候正好处于临界位置,此时也是目标函数在约束线上取到极值的时候,相离表示自变量不在约束线上,纵然此时目标函数可能取到更小的值,然而已经在约束线之外了,并没有什么卵用。

    好了,既然相切的时候就是目标函数在约束条件下取到最小值的时候,那就好办了,相切意味着等值面(在二维情况下应该叫做等高线更合适些)的法向量和约束线的法向量在切点处共线。

    也就是说,等高线$J(x,y)=x^2+y^2=R^2$的梯度向量$ abla J=(partial J/partial x,partial J/partial y)$和约束线$C(x,y)=x^2+1-y=0$的梯度向量$ abla C=(partial C/partial x,partial C/partial y)$共线。也即
    $$
    abla J+lambda abla C=0
    $$
    其中的$lambda$就是传说中的拉格朗日乘子了。

    有了这个等式,再加上约束线方程,就可以解出极值点和拉格朗日乘子$lambda$了。

    好了,如果是不等式约束又该如何求解呢?

    此时要分两种情况来讨论,第一种情况是当极值点就在约束线上时,这个时候其实等价于等式约束,也即和$C(x,y)=0$时的极值点是一样的。比如不等式约束为:
    $$C(x,y)=x^2+1-y le 0$$
    如图所示:

    第二种情况是当极值点不在约束线上,此时极值点在哪儿呢?当然在$J(x,y)$关于$x,y$的偏导为0的点上了,此时约束条件并不起作用,也就是说拉格朗日乘子等于0。比如不等式约束为:
    $$C(x,y)=-x^2-1+y le 0$$
    如图所示:

    将上面两种情况结合在一起,可以写成:
    $$
    lambda cdot C(x,y)=0
    $$

    也就是说,当$lambda=0$时,极值点不在约束线上,而在$C(x,y)<0$的地方,也就是$ abla J(x,y)=0$的地方,此时等价于无约束条件下求解目标函数数的极值。当$C(x,y)=0$时,极值点在约束线上,此时等价于等式约束,而且目标函数的梯度$ abla J$与约束线的梯度$ abla C$反向,因为约束面在$C(x,y) le 0$的区域,而梯度$ abla C$指向的是$C(x,y)$增加的方向,所以在方程$ abla J+lambda abla C=0$中$lambda$要大于等于0。

    若设拉格朗日函数为:
    $$
    L(x,y,lambda)=J(x,y)+lambda cdot C(x,y)
    $$

    那么$ abla J+lambda abla C=0$可以写成$ abla L=0$

    好了,总结一下,要求解不等式约束下目标函数的极值,并假设极值点为$(hat x,hat y)$,相应的拉格朗日乘子为$hat lambda$ ,那么需要满足以下条件:

    $$
    abla L= abla J+hat lambda abla C=0 \
    C(hat x,hat y) le 0\
    hat lambda cdot C(hat x,hat y)=0 \
    hat lambda ge 0
    $$

    这个条件也就是传说中的KKT条件。


    去吧,去吧,到彼岸去吧,彼岸是光明的世界!
  • 相关阅读:
    Linq to OBJECT延时标准查询操作符
    LINQ to XML
    动态Linq(结合反射)
    HDU 1242 dFS 找目标最短路
    HDu1241 DFS搜索
    hdu 1224 最长路
    BOJ 2773 第K个与m互质的数
    ZOJ 2562 反素数
    2016 ccpc 杭州赛区的总结
    bfs UESTC 381 Knight and Rook
  • 原文地址:https://www.cnblogs.com/lengyue365/p/6281613.html
Copyright © 2011-2022 走看看