拉格朗日乘子法与拉格朗日对偶性

拉格朗日乘子法

摘自周志华《机器学习》
拉格朗日乘子法是一种寻找多元函数在一组约束下的极值的方法,通过引入拉格朗日乘子,可将有 d d d个变量和 k k k个约束条件的最优化问题转化为具有 d + k d+k d+k个变量的无约束优化问题求解.
先考虑一个等式约束的优化问题,假定 x \boldsymbol x x d d d维向量,欲寻求 x \boldsymbol x x的某个取值 x ∗ \boldsymbol x^* x,使目标函数 f ( x ) f(\boldsymbol x) f(x)最小且同时满足 g ( x ) = 0 g(\boldsymbol x)=0 g(x)=0的约束. 从几何角度来看,该问题的目标是在方程 g ( x ) = 0 g(\boldsymbol x)=0 g(x)=0确定的 d − 1 d-1 d1维曲面上寻找能使目标函数 f ( x ) f(\boldsymbol x) f(x)最小化的点. 由此可以得出如下结论:

  • 对于约束曲面上的任意点 x x x,该点的梯度 ∇ g ( x ) \nabla g(\boldsymbol{x}) g(x)正交于约束曲面;
  • 在最优点 x ∗ \boldsymbol x^* x,目标函数在该点的梯度 ∇ f ( x ∗ ) \nabla f(\boldsymbol{x^*}) f(x)正交于约束曲面.

由此可知,在最优点 x ∗ \boldsymbol x^* x,如图1所示梯度 ∇ g ( x ) \nabla g(\boldsymbol{x}) g(x)与梯度 ∇ f ( x ) \nabla f(\boldsymbol{x}) f(x)的方向必相同或相反,即存在 λ ≠ 0 \lambda \neq 0 λ=0使得 ∇ f ( x ∗ ) + λ ∇ g ( x ∗ ) = 0 ( 1 ) \nabla f\left(\boldsymbol{x}^{*}\right)+\lambda \nabla g\left(\boldsymbol{x}^{*}\right)=0 \quad(1) f(x)+λg(x)=0(1) λ \lambda λ称为拉格朗日乘子 定义拉格朗日函数 L ( x , λ ) = f ( x ) + λ g ( x ) ( 2 ) L(\boldsymbol{x}, \lambda)=f(\boldsymbol{x})+\lambda g(\boldsymbol{x})\quad(2) L(x,λ)=f(x)+λg(x)(2)不难发现,将其对 x x x的偏导数 ∇ x L ( x , λ ) \nabla_{\boldsymbol{x}} L(\boldsymbol{x}, \lambda) xL(x,λ)置零得式 ( 1 ) (1) (1),同时,将其对 λ \lambda λ的偏导数 ∇ λ L ( x , λ ) \nabla_{\boldsymbol{\lambda}} L(\boldsymbol{x}, \lambda) λL(x,λ)置零的得约束条件 g ( x ) = 0 g( \boldsymbol x)=0 g(x)=0,于是原约束优化问题可转化为对拉格朗日函数 L ( x , λ ) L(\boldsymbol{x}, \lambda) L(x,λ)的无约束优化问题

图片名称

图1 拉格朗日乘子法的几何含义:在 ( a ) (a) (a)等式约束 g ( x ) = 0 g(\boldsymbol x)=0 g(x)=0或不等式约束 g ( x ) ⩽ 0 g(\boldsymbol{x}) \leqslant 0 g(x)0下,最小化目标函数 f ( x ) f(x) f(x),红色曲线表示 g ( x ) = 0 g(\boldsymbol x)=0 g(x)=0构成的曲面,其围成的阴影区域表示 g ( x ) < 0 g(\boldsymbol{x}) < 0 g(x)<0

现考虑不等式约束 g ( x ) ⩽ 0 g(\boldsymbol{x}) \leqslant 0 g(x)0,如图1所示,此时最优点 x ∗ \boldsymbol x^* x或在 g ( x ) < 0 g(\boldsymbol{x}) < 0 g(x)<0的区域中,或在边界上 g ( x ) = 0 g(\boldsymbol x)=0 g(x)=0.

  • 对于 g ( x ) < 0 g(\boldsymbol{x}) < 0 g(x)<0的情形,约束 g ( x ) ⩽ 0 g(\boldsymbol{x}) \leqslant 0 g(x)0不起作用,可直接通过 ∇ f ( x ) = 0 \nabla f(\boldsymbol{x})=0 f(x)=0
    来获取最优点;这等价于将 λ \lambda λ置零然后对 ∇ x L ( x , λ ) \nabla_{\boldsymbol{x}} L(\boldsymbol{x}, \lambda) xL(x,λ)置零得到最优点.
  • g ( x ) = 0 g(\boldsymbol x)=0 g(x)=0的情形类似于上面等式约束的分析,需注意的是,此时 ∇ f ( x ∗ ) = 0 \nabla f(\boldsymbol{x^*})=0 f(x)=0的方向必与 ∇ g ( x ∗ ) = 0 \nabla g(\boldsymbol{x^*})=0 g(x)=0相反,即存在常数 λ > 0 \lambda >0 λ>0使得 ∇ f ( x ∗ ) + λ ∇ g ( x ∗ ) = 0 \nabla f\left(\boldsymbol{x}^{*}\right)+\lambda \nabla g\left(\boldsymbol{x}^{*}\right)=0 f(x)+λg(x)=0.
    整合这两种情形,必满足 λ g ( x ) = 0 \lambda g(\boldsymbol x)=0 λg(x)=0因此在约束 g ( x ) < 0 g(\boldsymbol{x}) < 0 g(x)<0下最小化 f ( x ) f(\boldsymbol x) f(x),可转化为在约束下最小化式 ( 2 ) (2) (2)的拉格朗日函数:
    { g ( x ) ⩽ 0 λ ⩾ 0 ( 3 ) λ g ( x ) = 0 \left\{\begin{array}{l}{g(\boldsymbol{x}) \leqslant 0} \\ {\lambda \geqslant 0} \qquad\qquad(3)\\ {\lambda g(\boldsymbol{x})=0}\end{array}\right. g(x)0λ0(3)λg(x)=0 ( 3 ) (3) (3)称为 k a r u s h − K u h n − T u c k e r karush-Kuhn-Tucker karushKuhnTucker (KKT)条件.
    上述做法可推广到多个约束
    min ⁡ x f ( x ) \min _{\boldsymbol{x}} f(\boldsymbol{x}) xminf(x)  s.t.  g j ( x ) ⩽ 0 ( j = 1 , … , n ) ( 4 ) \text { s.t. } \quad g_{j}(\boldsymbol{x}) \leqslant 0 \quad(j=1, \ldots, n) \qquad(4)  s.t. gj(x)0(j=1,,n)(4) h i ( x ) = 0 ( i = 1 , … , m ) h_{i}(\boldsymbol{x})=0 \quad(i=1, \ldots, m) hi(x)=0(i=
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值