拉格朗日乘子法原理:等式约束和不等式约束KKT条件

拉格朗日乘子法是寻找函数在一组约束下的极值方法。

1、等式约束

形式:(x是d维向量)

min f(x)

s.t. h(x) = 0.

写成如下形式:

min f(x)+lambda*h(x)(lambda为参数)

s.t. h(x) = 0.

发现两者是等价的。

记:拉格朗日函数L(x,lambda) = f(x)+lambda*h(x).

发现约束条件h(x)=0,其实就是对拉格朗日函数L(x,lambda)关于lambda求偏导等于0得到,略去该约束,继而原约束优化问题就转化成了对拉格朗日函数L(x,lambda)的无约束优化问题(即令L关于x和lambda的偏导等于0求解)。

几何解释:

原目标函数f(x)取得最小化点x*时,可以得到如下结论:

a.约束曲面上的任意点x,该点的梯度正交于约束曲面;

b.在最优点x*,目标函数在该点的梯度正交于约束曲面(可以反正:若目标函数梯度与约束曲面不正交,则总可以在约束曲面上移动该点使目标函数进一步减小)。

所以,在最优点x*,梯度f(x*)和h(x*)的方向相同或相反,即存在lambda!=0,使:

▽f(x*)+lambda*▽h(x*)=0.        (1式)

定义拉格朗日函数:L(x,lambda) = f(x)+lambda*h(x).

令L(x,lambda)对x的偏导数等于0,得到1式;令L(x,lambda)对lambda的偏导数等于0,得到约束条件h(x)=0。于是,原约束优化问题转化为无约束优化问题。

拉格朗日乘子法原理:等式约束和不等式约束KKT条件_第1张图片

 

2、不等式约束

形式:

min f(x)

s.t. g(x) <= 0.

同样定义拉格朗日函数L(x,lambda) = f(x)+lambda*g(x).

此时,首先看目标函数f(x)在无约束条件下的最优点,显然要么在g(x)<=0的区域内,要么在g(x)>0的区域内。

f(x)在无约束条件下的最优点g(x)<=0区域内,则约束条件g(x)<=0不起作用(即可直接求min f(x),得到的结果必然满足g(x)<=0),相当于lambda=0;

f(x)在无约束条件下的最优点不g(x)<=0区域内,则f(x)在约束条件下的最优点必然在g(x)<=0区域边界,即在边界g(x)=0上。此类情形类似于等式约束,但此时梯度f(x*)▽g(x*)的方向相反(梯度方向是函数值增大最快的方向),即存在lambda>0,使▽f(x*)+lambda*▽g(x*)=0

拉格朗日乘子法原理:等式约束和不等式约束KKT条件_第2张图片

整合上述两种情形,必有lambda*g(x) = 0。所以原不等式约束问题就转化为:

min L(x,lambda)

s.t. g(x)<=0,

lambda>=0,

lambda*g(x)=0.

上面的约束条件即为KKT条件。

拉格朗日乘子法原理:等式约束和不等式约束KKT条件_第3张图片 微信交流 拉格朗日乘子法原理:等式约束和不等式约束KKT条件_第4张图片 多谢打赏

参考资料:周志华《机器学习》

参考博文:拉格朗日乘子法及KKT条件证明

你可能感兴趣的:(机器学习)