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)为:
f(x,y)的等高线图为:
其中红色线标出的是约束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,在同济大学《高等数学》第六版中有提到,
因为θ=0,方向导数:
即沿梯度方向的方向导数>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