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

本文介绍了拉格朗日乘子法用于解决多元函数约束优化问题,通过拉格朗日函数将有约束的问题转化为无约束问题。同时,讨论了拉格朗日对偶性,将原始问题转换为对偶问题,尤其在统计学习方法如最大熵模型和支持向量机中的应用。文中还涵盖了原始问题和对偶问题的关系,以及KKT条件在求解过程中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

拉格朗日乘子法

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

  • 对于约束曲面上的任意点xxx,该点的梯度∇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)不难发现,将其对xxx的偏导数∇xL(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)=0g( \boldsymbol x)=0g(x)=0,于是原约束优化问题可转化为对拉格朗日函数L(x,λ)L(\boldsymbol{x}, \lambda)L(x,λ)的无约束优化问题

图片名称

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

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

  • 对于g(x)<0g(\boldsymbol{x}) < 0g(x)<0的情形,约束g(x)⩽0g(\boldsymbol{x}) \leqslant 0g(x)0不起作用,可直接通过∇f(x)=0\nabla f(\boldsymbol{x})=0f(x)=0
    来获取最优点;这等价于将λ\lambdaλ置零然后对∇xL(x,λ)\nabla_{\boldsymbol{x}} L(\boldsymbol{x}, \lambda)xL(x,λ)置零得到最优点.
  • g(x)=0g(\boldsymbol x)=0g(x)=0的情形类似于上面等式约束的分析,需注意的是,此时∇f(x∗)=0\nabla f(\boldsymbol{x^*})=0f(x)=0的方向必与∇g(x∗)=0\nabla g(\boldsymbol{x^*})=0g(x)=0相反,即存在常数λ>0\lambda >0λ>0使得∇f(x∗)+λ∇g(x∗)=0\nabla f\left(\boldsymbol{x}^{*}\right)+\lambda \nabla g\left(\boldsymbol{x}^{*}\right)=0f(x)+λg(x)=0.
    整合这两种情形,必满足λg(x)=0\lambda g(\boldsymbol x)=0λg(x)=0因此在约束g(x)<0g(\boldsymbol{x}) < 0g(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)称为karush−Kuhn−Tuckerkarush-Kuhn-TuckerkarushKuhnTucker (KKT)条件.
    上述做法可推广到多个约束
    min⁡xf(x) \min _{\boldsymbol{x}} f(\boldsymbol{x}) xminf(x) s.t. gj(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)hi(x)=0(i=1,…,m) h_{i}(\boldsymbol{x})=0 \quad(i=1, \ldots, m) hi(x)=0(i=1,,m)引入拉格朗日乘子λ=(λ1,λ2,…,λm)T\boldsymbol{\lambda}=\left(\lambda_{1}, \lambda_{2}, \ldots, \lambda_{m}\right)^{\mathrm{T}}λ=(λ1,λ
拉格朗日乘子法是一种用于寻找多元函数在其变量受到一个或多个条件限制时的局部极值的方法。这种方法引入了新的未知数——称为拉格朗日乘子,来构建一个新的无约束的目标函数,即所谓的拉格朗日函数。 对于对偶问题,在数学规划中指的是从原问题出发构造出另一个优化问题的过程。通常情况下,给定一个最小化问题(原问题),其对应的对偶问题是最大化某个下界;反之亦然。这种关系可以通过拉格朗日对偶性建立起来。 ### 拉格朗日乘子法的应用 - **等式约束下的最优化** 当存在等式约束g(x) = c时,为了找到f(x)在这些约束下的极值点,可以构造拉格朗日函数$L(x,\lambda)=f(x)-\sum \lambda_i(g_i(x)-c_i)$,其中$\lambda_i$就是拉格朗日乘子。 - **不等式约束下的最优化** 如果还有不等式约束$h_j(x)\leq b_j$,那么就需要考虑广义形式的拉格朗日函数以及KKT(Karush-Kuhn-Tucker)条件来进行分析。 ### 对偶原理的理解 当处理含有复杂约束的问题时,直接解决可能比较困难。此时通过对原始问题应用拉格朗日乘子法得到拉格朗日对偶函数$d(\lambda, \mu) = inf_x[L(x, \lambda, \mu)]$,进而形成对偶问题$max_{\lambda>=0} d(\lambda, \mu)$。这样做的好处是可以简化计算或者提供更好的数值稳定性。 此外,在某些特定条件下(比如强对偶成立的情况下),原问题和它的对偶问题有着相同的最优解价值,这意味着我们既可以从原问题也可以从更简单的对偶问题入手解决问题。 ### 应用领域 - **经济学**: 分析生产者行为、消费者选择等问题; - **工程设计**: 寻找满足性能指标的设计方案; - **机器学习**: 支持向量机(SVMs),特征选择和其他正则化的模型训练过程都涉及到这类优化技巧。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值