Lagrange Multiplier and KKT(Karush-Kuhn-Tucker)

1.Lagrange Multiplier and KKT的使用条件

Lagrange Multiplier and KKT是求解优化问题的重要方法,在等式约束时使用Lagrange Multiplier,在不等式约束时使用KKT。需要注意的是,这两个方法求得的结果只是必要条件,只有当目标函数是凸函数的情况下,才能保证是充分必要条件。

最优化问题可以分为以下3类:

(i)无约束优化问题,比如说求解f(X)的最小值,公式表达为:


求解此类问题,经常使用的方法是Fermat定理(费马定理):求取f(X)的导数,然后令其为0,可以求得最优值,再从这些候选值中验证;如果是凸函数,可以保证是最优解。

(ii)有等式约束的优化问题,比如求解f(X)的最小值,同时使得h(X)=c成立,公式表达为:

求解此类问题,经常使用Largrange multiplier(拉格朗日乘子法):

 

通过对各个变量求导,令其为零,可以求得候选值集合,然后验证求得最优值。

(iii)有不等式约束的优化问题,比如求解f(X)的最小值,同时使得h(X)=c,g(X)<=0,公式表达为:


求解此类问题,经常使用KKT(Karush Kuhn Tucker)



2  Lagrange multiplier

现在举例一个二维优化的问题:


那么Lagrange function可以写为:


假如f(x,y)的图形(来自wiki)为:

Lagrange Multiplier and KKT(Karush-Kuhn-Tucker)_第1张图片

f(x,y)的等高线图为:

Lagrange Multiplier and KKT(Karush-Kuhn-Tucker)_第2张图片

其中红色线标出的是约束g(x,y)=c的轨迹。蓝色线标出的是等高线,蓝色箭头是等高线梯度的方向,等高线的梯度方向就是某条等高线(如f(x,y)=d1)的法线方向,由等高线的梯度方向可知,d1>d2>d3。因为红色线表示约束,也就是说,只有正好落在这条红色线上点才能满足要求,如果没有这个约束,最小值应该在最外围等高线。现在有了g(x,y)=c的约束条件,那么最小值应该是在g(x,y)=c与等高线相切的位置,因为如果相交,就意味着有更外围的等高线,使得f(x,y)取得更小的值。

注:为什么由等高线的方向可知,d1>d2>d3,在同济大学《高等数学》第六版中有提到,

Lagrange Multiplier and KKT(Karush-Kuhn-Tucker)_第3张图片

因为θ=0,方向导数:

Lagrange Multiplier and KKT(Karush-Kuhn-Tucker)_第4张图片

即沿梯度方向的方向导数>0,再加上方向导数中定义t→0+,也就是函数在梯度方向的变化率是正的,所以函数值沿梯度要变大,即从低等高线指向高等高线。






参考文献:

1.https://zhidao.baidu.com/question/150290823.html

2.https://en.wikipedia.org/wiki/Lagrange_multiplier

3.http://www.cnblogs.com/mo-wang/p/4775548.html

你可能感兴趣的:(machine,learning)