拉格朗日乘子法与KKT条件

在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法。在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件。

我们这里提到的最优化问题通常是指对于给定的某一函数,求其在指定作用域上的全局最小值(因为最小值与最大值可以很容易转化,即最大值问题可以转化成最小值问题)。提到KKT条件一般会附带的提一下拉格朗日乘子。对学过高等数学的人来说比较拉格朗日乘子应该会有些印象。二者均是求解最优化问题的方法,不同之处在于应用的情形不同。

一般情况下,最优化问题会碰到一下三种情况:

(1)无约束条件

这是最简单的情况,解决方法通常是函数对变量求导,令求导函数等于0的点可能是极值点。将结果带回原函数进行验证即可。

(2)等式约束条件
设目标函数为f(x),约束条件为h_k(x),形如: s.t. 表示subject to ,“受限于”的意思,l表示有l个约束条件。

image.png

则解决方法是消元法或者拉格朗日法。消元法比较简单不在赘述,这里主要讲拉格朗日法,因为后面提到的KKT条件是对拉格朗日乘子法的一种泛化。

首先定义拉格朗日函数F(x):
( 其中λk是各个约束条件的待定系数。)
       

image.png

然后解变量的偏导方程:



image.png

如果有l个约束条件,就应该有l+1个方程。求出的方程组的解就可能是最优化值(高等数学中提到的极值),将结果带回原方程验证就可得到解。
   至于为什么这么做可以求解最优化?维基百科上给出了一个比较好的直观解释。
 举个二维最优化的例子:
     min f(x,y)
     s.t. g(x,y) = c
  这里画出z=f(x,y)的等高线(函数登高线定义见百度百科):

image

绿线标出的是约束g(x,y)=c的点的轨迹。蓝线是f(x,y)的等高线。箭头表示斜率,和等高线的法线平行。从梯度的方向上来看,显然有d1>d2。绿色的线是约束,也就是说,只要正好落在这条绿线上的点才可能是满足要求的点。如果没有这条约束,f(x,y)的最小值应该会落在最小那圈等高线内部的某一点上。而现在加上了约束,最小值点应该在哪里呢?显然应该是在f(x,y)的等高线正好和约束线相切的位置,因为如果只是相交意味着肯定还存在其它的等高线在该条等高线的内部或者外部,使得新的等高线与目标函数的交点的值更大或者更小,只有到等高线与目标函数的曲线相切的时候,可能取得最优值。

如果我们对约束也求梯度∇g(x,y),则其梯度如图中绿色箭头所示。很容易看出来,要想让目标函数:∇f(x,y)=λ(∇g(x,y)-C) 的等高线和约束相切,则他们切点的梯度一定在一条直线上(f和g的斜率平行)。

*也即在最优化解的时候:▽[f(x,y)+λ(g(x,y)−c)]=0λ≠0 (其中∇为梯度算子; 即:f(x)的梯度 = λ g(x)的梯度,λ是常数,可以是任何非0实数,表示左右两边同向。)

  即:▽[f(x,y)+λ(g(x,y)−c)]=0λ≠0

那么拉格朗日函数: F(x,y)=f(x,y)+λ(g(x,y)−c) 在达到极值时与f(x,y)相等,因为F(x,y)达到极值时g(x,y)−c总等于零。

min( F(x,λ) )取得极小值时其导数为0,即▽f(x)+▽∑ni=λihi(x)=0,也就是说f(x)和h(x)的梯度共线。

简单的说,在F(x,λ)取得最优化解的时候,即F(x,λ)取极值(导数为0,▽[f(x,y)+λ(g(x,y)−c)]=0)的时候,f(x)与g(x) 梯度共线,此时就是在条件约束g(x)下,f(x)的最优化解。

参考:拉格朗日乘子法与KKT条件
https://www.cnblogs.com/sddai/p/5728195.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在前面的几讲中,我们终于引出了支撑向量的概念,同时得到了求解最大间隔分类器的目标规划式,接下来,我们就要对该式进行...
    文哥的学习日记阅读 10,941评论 3 13
  • 本章涉及到的知识点清单:1、决策面方程2、函数间隔和几何间隔3、不等式约束条件4、SVM最优化模型的数学描述(凸二...
    PrivateEye_zzy阅读 14,585评论 3 10
  • 拉格朗日乘数法 在求解函数最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karu...
    doudou0o阅读 12,054评论 0 11
  • 最近在追《猎场》,我本来不看电视,无奈到处都看到有人在看,从我老婆那里得知这部剧的主要剧情,我开始忍不住了,职场,...
    杨宁victor阅读 1,859评论 0 0
  • 因为自己是一个特别感性的人,所以刻意培养自己的理性思维。包括很少看爱情小说,刻意的去看哲学和心理学方面的书,以及一...
    行壹1阅读 3,226评论 0 1

友情链接更多精彩内容