拉格朗日乘子法的引入
一个典型的带约束条件优化问题:
minxf(x)s.t.g(x)=0
以x为二维变量为例,设:f(x,y)=d, g(x,y)=c,如下图:

由图中可以看得出来,椭圆形的f(x,y)符合约束条件的最小值在椭圆与红色曲线的切线处,在切线相交处两边的法向量刚好互为相反,即:

由此引入拉格朗日函数:

KKT条件
以上是g(x,y)=0的条件,下面是g(x,y)<=0的情况,
在不等式情况下,要求λg(x∗,y∗)=0的约束,此即KKT条件。
下图阴影部分即g(x,y)<0的情况,依据等式λg(x∗,y∗)=0,当g(x,y)<0时得λ=0意味着约束条件不起作用,此时的优化问题等同于无约束优化。
而在g(x,y)=0时,一般情况下λ不等于0,此时x,y的值落在曲线边界上,意味着约束条件起作用。
KKT的本质意义是帮助我们去理解哪些约束条件是真正起作用的。

多个约束条件的情况
最小化f(x),多个约束条件gi(x)>=0

此时拉格朗日函数写作:

对x求导得方程:
∇f(x)=i=1∑Nλi∇gi(x)KKT条件:λi∇gi(x)=0
