拉格朗日乘子法原理:等式约束和不等式约束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。于是,原约束优化问题转化为无约束优化问题。

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

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

min L(x,lambda)

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

lambda>=0,

lambda*g(x)=0.

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

待办计划:在不确定中前行
随笔日记:祭那些逝去的时光

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

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

  • 10
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值