因为想申请 CSDN 博客认证需要一定的粉丝量,而我写了五年博客才 700 多粉丝,本文开启关注才可阅读全文,很抱歉影响您的阅读体验

  • 拉格朗日乘子法是解约束优化问题的常用方法,它和 KKT 条件、Slater 条件、拉格朗日对偶性等概念常常一起出现,本文梳理说明相关概念,并从几何与代数两个角度加以解释
  • 先有一个大概的认识
    1. 对于只有等式约束的优化问题,可以直接用拉格朗日乘子法列出拉格朗日函数,将其转化为无约束优化问题求解
    2. 对于包含不等式约束的优化问题,仍然可以像只有等式约束时一样列出拉格朗日函数,但此时函数中会包含对拉格朗日乘子的新约束,优化它得到的最优值结果一定满足 KKT 条件(KKT 是取最优参数值的必要条件,对于某些特殊的凸优化问题是充要条件)
    3. 含有不等式约束的问题列出拉格朗日函数后仍有约束不好处理,这时我们可以将其转化为拉格朗日对偶问题,这个对偶问题一定是凸优化问题,因此易于求解。优化问题一定具有弱对偶性,但要想对偶问题和原问题同解其必须满足强对偶性,强对偶性的充分条件是Slater 条件,必要条件是 KKT 条件
  • 参考
    1. 通俗易懂讲算法-最优化之拉格朗日乘子与KKT条件
    2. 《统计学习方法(第二版)》附录 C

文章目录

  • 1. 拉格朗日乘子法
    • 1.1 只有等式约束
    • 1.2 只有不等式约束
      • 1.2.1 最优解在约束范围内
      • 1.2.2 最优解在约束范围外
      • 1.2.3 综合考虑两种情况
    • 1.3 拉格朗日乘子法与 KKT 条件
  • 2. 拉格朗日对偶性
    • 2.1 原始问题
    • 2.2 对偶问题
    • 2.3 对偶问题和原问题的关系
      • 2.3.1 弱对偶关系:原问题的解一定大于等于对偶问题的解
      • 2.3.2 强对偶关系:原问题的解等于对偶问题的解
      • 2.3.3 强对偶关系的充分条件:Slater 条件
      • 2.3.4 强对偶关系的必要条件:KKT 条件
  • 3. 总结

1. 拉格朗日乘子法

  • 本节参考:通俗易懂讲算法-最优化之拉格朗日乘子与KKT条件

1.1 只有等式约束

  • 考虑一个只有等式约束的约束优化问题
    min⁡x∈Rnf(x)s.t.hi(x)=0,i=1,2,...,k\begin{aligned} &\min_{x\in\mathbb{R}^n} &&f(x) \\ & \text{s.t.} &&h_i(x) = 0, \quad i=1,2,...,k \end{aligned} ​x∈Rnmin​s.t.​​f(x)hi​(x)=0,i=1,2,...,k​ 假设只有一个约束,以 f(x)=x1+x2f(x)=x_1+x_2f(x)=x1​+x2​, h(x)=x12+x22−2h(x)=x_1^2+x_2^2-2h(x)=x12​+x22​−2 为例,将目标函数和约束画出

    想要最小化 f(x)f(x)f(x),在无约束时我们只要按 f(x)f(x)f(x) 的负梯度方向(左下45度)做梯度下降即可,但在有约束的情况下,我们每一步都只能按约束园的切线方向(与约束面的梯度方向正交)移动

    显然,要想在每一步移动时都让目标函数更优,我们移动的方向必须和目标函数负梯度方向的夹角小于 90 度,换句话说,当移动方向和目标函数负梯度方向垂直时(约束面切向方向和目标函数负梯度方向垂直;约束面梯度方向和目标函数负梯度方向平行),我们就找到了一个 critical point(如图所示)。设此位置为 x∗x^*x∗,可以表示为
    ▽xf(x∗)=μ▽xh(x∗)\triangledown_xf(x^*) = \mu \triangledown_xh(x^*) ▽x​f(x∗)=μ▽x​h(x∗) 从图中可以看出,x∗x^*x∗ 是优化问题最优解的充要条件

    1. 此位置目标函数负梯度方向和约束面梯度方向相同:−▽xf(x∗)=μ▽xh(x∗),μ>0-\triangledown_xf(x^*) = \mu \triangledown_xh(x^*), \space\space \mu>0−▽x​f(x∗)=μ▽x​h(x∗),  μ>0
    2. 此位置在约束面上:h(x∗)=0h(x^*)=0h(x∗)=0
    3. 在此位置附近沿可行方向移动,目标函数值不会变得更好:Hessian 矩阵与可行移动方向构成的二次型是半正定的
  • 通过上述几何角度的分析,我们可以建立起对拉格朗日乘数法的直观理解。对于有多个等式约束的优化问题
    min⁡x∈Rnf(x)s.t.hi(x)=0,i=1,2,...,k\begin{aligned} &\min_{x\in\mathbb{R}^n} &&f(x) \\ & \text{s.t.} &&h_i(x) = 0, \quad i=1,2,...,k \end{aligned} ​x∈Rnmin​s.t.​​f(x)hi​(x)=0,i=1,2,...,k​ 首先写出拉格朗日函数
    L(x,μ)=f(x)+μ⊤h(x)\mathcal{L} (x,\pmb{\mu}) = f(x)+\pmb{\mu}^\top \pmb{h}(x) L(x,μμ)=f(x)+μμ⊤hh(x) 则目标函数在 x∗,μ∗x^*,\mu^*x∗,μ∗ 处取得极小值的充要条件为(这三条和上面充要条件一一对应

    1. ▽xL(x∗,μ∗)=0\triangledown_x\mathcal{L} (x^*,\pmb{\mu}^*) = 0▽x​L(x∗,μμ∗)=0
    2. ▽μL(x∗,μ∗)=0\triangledown_{\pmb{\mu}}\mathcal{L} (x^*,\pmb{\mu}^*) = 0▽μμ​L(x∗,μμ∗)=0
    3. y⊤(▽xx2L(x∗,μ∗))y≥0∀ys.t.▽xh(x∗)⊤y=0y^\top (\triangledown_{xx}^2\mathcal{L} (x^*,\pmb{\mu}^*))y\geq 0\quad \forall y\space\space\text{s.t.} \triangledown_xh(x^*)^\top y=0y⊤(▽xx2​L(x∗,μμ∗))y≥0∀y  s.t.▽x​h(x∗)⊤y=0(注:这里 yyy 是 x∗x^*x∗ 位置的约束面切线方向,即可以移动的方向,Hessian 矩阵半正定意为这里 L\mathcal{L}L 关于 xxx 不凹,从而保证是局部极小值)

    这里求两个梯度为 0 正是使用拉格朗日乘子法的一般套路,像上面那样从几何角度可以清晰地看出其背后的原理

1.2 只有不等式约束

  • 本节考虑只有不等式约束的约束优化问题
    min⁡x∈Rnf(x)s.t.gj(x)≤0,j=1,2,...,l\begin{aligned} &\min_{x\in\mathbb{R}^n} &&f(x) \\ & \text{s.t.} &&g_j(x) \leq 0, \quad j=1,2,...,l \end{aligned} ​x∈Rnmin​s.t.​​f(x)gj​(x)≤0,j=1,2,...,l​

1.2.1 最优解在约束范围内

  • 假设只有一个约束,以 f(x)=x12+x22f(x)=x_1^2+x_2^2f(x)=x12​+x22​, g(x)=x12+x22−1g(x)=x_1^2+x_2^2-1g(x)=x12​+x22​−1 为例,将目标函数和约束画出

    这时最优解为 x=[0,0]⊤x=[0,0]^\topx=[0,0]⊤,它位于约束面内部,加不加约束对于解没有影响。在 x∗x^*x∗ 处取得最优解的充要条件和无约束时相同,为

    1. 此位置在约束区域内:g(x∗)<0g(x^*)<0g(x∗)<0
    2. 此位置目标函数梯度为 0: ▽xf(x∗)=0\triangledown_xf(x^*)=0▽x​f(x∗)=0
    3. 在此位置附近沿可行方向移动,目标函数值不会变得更好:▽xx2f(x∗)\triangledown_{xx}^2f(x^*)▽xx2​f(x∗) 是半正定的 Hessian 矩阵

1.2.2 最优解在约束范围外

  • 假设只有一个约束,以 f(x)=(x1−1.1)2+(x2+1.1)2f(x)=(x_1-1.1)^2+(x_2+1.1)^2f(x)=(x1​−1.1)2+(x2​+1.1)2, g(x)=x12+x22−1g(x)=x_1^2+x_2^2-1g(x)=x12​+x22​−1 为例,将目标函数和约束画出

    这时约束面影响了最优解的值,从图中可以很明显地看出,此时的最优解必然位于约束面的边缘上,即必有 g(x∗)=0g(x^*)=0g(x∗)=0,退化为和等式约束相同的情况

    在 x∗x^*x∗ 处取得最优解的充要条件和等式约束时相同,为

    1. 此位置在约束区域边界:g(x∗)=0g(x^*)=0g(x∗)=0
    2. 此位置目标函数负梯度方向和约束面梯度方向相同:−▽xf(x∗)=λ▽xg(x∗),λ>0-\triangledown_xf(x^*) = \lambda\triangledown_xg(x^*), \space\space \lambda>0−▽x​f(x∗)=λ▽x​g(x∗),  λ>0
    3. 在此位置附近沿可行方向移动,目标函数值不会变得更好:Hessian 矩阵与可行移动方向构成的二次型是半正定的

1.2.3 综合考虑两种情况

  • 考虑有多个不等式约束的约束优化问题
    min⁡x∈Rnf(x)s.t.gj(x)≤0,j=1,2,...,l\begin{aligned} &\min_{x\in\mathbb{R}^n} &&f(x) \\ & \text{s.t.} &&g_j(x) \leq 0, \quad j=1,2,...,l \end{aligned} ​x∈Rnmin​s.t.​​f(x)gj​(x)≤0,j=1,2,...,l​ 首先写出拉格朗日函数
    L(x,λ)=f(x)+λ⊤g(x)\mathcal{L} (x,\pmb{\lambda}) = f(x)+\pmb{\lambda}^\top \pmb{g}(x) L(x,λλ)=f(x)+λλ⊤gg(x)

    1. 当最优解在(一个或多个)约束范围内时,这些约束等价于不存在(或者说这些约束条件是 松弛的,因此可以令 λ∗=0\pmb{\lambda}^*=\pmb{0}λλ∗=00 使 L(x,λ∗)=f(x)\mathcal{L} (x,\pmb{\lambda}^*) =f(x)L(x,λλ∗)=f(x)。根据 1.2.1 分析,在 x∗,λ∗x^*,\pmb{\lambda}^*x∗,λλ∗ 处取得最优解的充要条件为

      1. gj(x∗)<0,j=1,2,....,lg_j(x^*)<0, \space\space j=1,2,....,lgj​(x∗)<0,  j=1,2,....,l
      2. λ∗=0\pmb{\lambda}^*=\pmb{0}λλ∗=00
      3. ▽xL(x∗,λ∗)=0\triangledown_x\mathcal{L}(x^*,\pmb{\lambda}^*)=\pmb{0}▽x​L(x∗,λλ∗)=00
      4. ▽xx2L(x∗,λ∗)\triangledown_{xx}^2\mathcal{L} (x^*,\pmb{\lambda}^*)▽xx2​L(x∗,λλ∗) 是半正定的 Hessian 矩阵
    2. 当最优解在(一个或多个)约束范围外时,约束条件会影响最优 x∗x^*x∗ 的取值(或者说这些约束条件是 紧致的,在 x∗x^*x∗ 处取得最优解的充要条件为
      1. gj(x∗)=0,j=1,2,....,lg_j(x^*)=0, \space\space j=1,2,....,lgj​(x∗)=0,  j=1,2,....,l
      2. λj∗>0,j=1,2,....,l\lambda^*_j>0, \space\space j=1,2,....,lλj∗​>0,  j=1,2,....,l
      3. −▽xf(x∗)=λ∗⊤▽xg(x∗)⟹▽xL(x∗,λ∗)=0-\triangledown_xf(x^*) = \pmb{\lambda^*}^\top\triangledown_xg(x^*) \quad \Longrightarrow \triangledown_x\mathcal{L}(x^*,\pmb{\lambda}^*)=\pmb{0}−▽x​f(x∗)=λ∗λ∗⊤▽x​g(x∗)⟹▽x​L(x∗,λλ∗)=00
      4. y⊤(▽xx2L(x∗))y≥0∀ys.t.▽xg(x∗)⊤y=0y^\top (\triangledown_{xx}^2\mathcal{L} (x^*))y\geq 0\quad \forall y\space\space\text{s.t.} \triangledown_xg(x^*)^\top y=0y⊤(▽xx2​L(x∗))y≥0∀y  s.t.▽x​g(x∗)⊤y=0 (Hessian 矩阵与可行移动方向构成的二次型是半正定的)

    以上两种情况可以合并考虑,总结出的在 x∗,λ∗x^*,\pmb{\lambda}^*x∗,λλ∗ 处取得最优解的充要条件为

    1. ▽xL(x∗,λ∗)=0\triangledown_x\mathcal{L}(x^*,\pmb{\lambda}^*)=\pmb{0}▽x​L(x∗,λλ∗)=00
    2. λj∗≥0,j=1,2,....,l\lambda^*_j\geq0, \space\space j=1,2,....,lλj∗​≥0,  j=1,2,....,l
    3. λj∗gj(x∗)=0,j=1,2,....,l\lambda^*_jg_j(x^*)=0, \space\space j=1,2,....,lλj∗​gj​(x∗)=0,  j=1,2,....,l
    4. gj(x∗)≤0,j=1,2,....,lg_j(x^*)\leq 0, \space\space j=1,2,....,lgj​(x∗)≤0,  j=1,2,....,l
    5. ▽xx2L(x∗,λ∗)\triangledown_{xx}^2\mathcal{L} (x^*,\pmb{\lambda}^*)▽xx2​L(x∗,λλ∗) 是半正定的 Hessian 矩阵

1.3 拉格朗日乘子法与 KKT 条件

  • 首先,拉格朗日乘子法是仅仅针对等式约束优化问题的,即 1.1 节中讨论的情况,我们写出拉格朗日函数 L(x,μ)\mathcal{L}(x,\mu)L(x,μ) 后,直接联立 ∂L∂x=0\frac{\partial\mathcal{L}}{\partial x}=0∂x∂L​=0 和 ∂L∂μ=0\frac{\partial\mathcal{L}}{\partial \mu}=0∂μ∂L​=0 求解无约束优化问题即可

  • 我们希望把拉格朗日乘子法扩展到带不等式约束的优化问题,这时就需要将其转化为朗日对偶问题处理,并用 KKT 条件保证解的等价性。先看 KKT 条件:结合 1.1 和 1.2 节,考虑有 kkk 个等式约束和 lll 个不等式约束的优化问题,假设 f(x),hi(x),gj(x)f(x), h_i(x), g_j(x)f(x),hi​(x),gj​(x) 是定义在 Rn\mathbb{R}^nRn 上的连续可微函数
    min⁡x∈Rnf(x)s.t.hi(x)≤0,i=1,2,...,kgj(x)=0,j=1,2,...,l\begin{aligned} &\min_{x\in\mathbb{R}^n} &&f(x) \\ & \text{s.t.} &&h_i(x) \leq 0, \quad i=1,2,...,k \\ &&&g_j(x) = 0, \quad j=1,2,...,l \end{aligned} ​x∈Rnmin​s.t.​​f(x)hi​(x)≤0,i=1,2,...,kgj​(x)=0,j=1,2,...,l​ 接下来构造拉格朗日函数
    L(x,μ,λ)=f(x)+μ⊤h(x)+λ⊤g(x)\mathcal{L}(x,\pmb{\mu},\pmb{\lambda}) = f(x)+\pmb{\mu}^\top h(x)+\pmb{\lambda}^\top g(x) L(x,μμ,λλ)=f(x)+μμ⊤h(x)+λλ⊤g(x) 综合 1.1 和 1.2 节的分析,优化目标在 x∗,μ∗,λ∗x^*,\pmb{\mu}^*,\pmb{\lambda}^*x∗,μμ∗,λλ∗ 处取得极小值的充要条件为

    1. ▽xL(x∗,λ∗,μ∗)=0\triangledown_x\mathcal{L}(x^*,\pmb{\lambda}^*,\pmb{\mu}^*)=\pmb{0}▽x​L(x∗,λλ∗,μμ∗)=00
    2. λj∗≥0,j=1,2,....,l\lambda^*_j\geq0, \space\space j=1,2,....,lλj∗​≥0,  j=1,2,....,l
    3. λj∗gj(x∗)=0,j=1,2,....,l\lambda^*_jg_j(x^*)=0, \space\space j=1,2,....,lλj∗​gj​(x∗)=0,  j=1,2,....,l
    4. gj(x∗)≤0,j=1,2,....,lg_j(x^*)\leq 0, \space\space j=1,2,....,lgj​(x∗)≤0,  j=1,2,....,l
    5. h(x∗)=0h(x^*)=\pmb{0}h(x∗)=00
    6. ▽xx2L(x∗,λ∗)\triangledown_{xx}^2\mathcal{L} (x^*,\pmb{\lambda}^*)▽xx2​L(x∗,λλ∗) 是半正定的 Hessian 矩阵

    这就是所谓的 KKT条件(通常不提第 6 条)

    1. 当原始问题是凸优化问题时,可以认为 KKT 条件是在 x∗x^*x∗ 处取得极小值的充要条件(准确地说,当 f,gf, gf,g 是凸函数,hhh 是仿射函数,且不等式约束 ggg 严格可行时,KKT 是充要条件)
    2. 否则,KKT 条件是在 x∗x^*x∗ 处取得极小值的必要条件
  • 观察一下 KKT 条件,其实 1,5,6 三条合起来就是拉格朗日乘子法的计算步骤,引入不等式约束后出现了 2,3,4 条,其中第 2 条是构造拉格朗日函数后新进入的不等式约束,约束无法完全去除,求解仍很困难,这时就要用到拉格朗日对偶性转换为对偶问题了

2. 拉格朗日对偶性

  • 利用拉格朗日对偶性将原始问题转化为对偶问题,通过解对偶问题得到原问题的解,是统计学习方法中常用的一个技巧。最大熵和支持向机等模型推导中都有应用
  • 本节参考《统计学习方法(第二版)》附录 C,符号和前文有所变化,请注意

2.1 原始问题

  • 假设 f(x),ci(x),hj(x)f(x), c_i(x), h_j(x)f(x),ci​(x),hj​(x) 是定义在 Rn\mathbb{R}^nRn 上的连续可微函数。考虑约束优化问题
    min⁡x∈Rnf(x)s.t.ci(x)≤0,i=1,2,...,khj(x)=0,j=1,2,...,l(1)\begin{aligned} &\min_{x\in\mathbb{R}^n} &&f(x) \\ & \text{s.t.} &&c_i(x) \leq 0, \quad i=1,2,...,k \\ &&&h_j(x) = 0, \quad j=1,2,...,l \end{aligned} \tag{1} ​x∈Rnmin​s.t.​​f(x)ci​(x)≤0,i=1,2,...,khj​(x)=0,j=1,2,...,l​(1) 称此约束优化问题为 原始优化问题/原始问题

  • 引入拉格朗日乘子 βj\beta_jβj​ 和 αi≥0\alpha_i\geq 0αi​≥0,将约束项作为惩罚项合并到优化目标中,得到 广义拉格朗日函数
    L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1lβjhj(x)\mathcal{L}(x,\alpha,\beta) = f(x)+\sum_{i=1}^k \alpha_ic_i(x) + \sum_{j=1}^l \beta_j h_j(x) L(x,α,β)=f(x)+i=1∑k​αi​ci​(x)+j=1∑l​βj​hj​(x) 其中 x=[x(1),x(2),...,x(n)]⊤∈Rnx=[x^{(1)},x^{(2)},...,x^{(n)}]^\top \in\mathbb{R}^nx=[x(1),x(2),...,x(n)]⊤∈Rn。考虑 xxx 的函数
    θP(x)=max⁡α,β:ai≥0L(x,α,β)\theta_P(x) = \max_{\alpha,\beta:a_i\geq 0} \mathcal{L}(x,\alpha,\beta) θP​(x)=α,β:ai​≥0max​L(x,α,β) 这里下标 PPP 表示原始问题。考察这个函数,不难发现

    1. 若 xxx 违反了某个不等式约束使得 ci(x)>0c_i(x)>0ci​(x)>0,则可令 αi→+∞\alpha_i\to +\infinαi​→+∞,使得 θP(x)=+∞\theta_P(x)=+\infinθP​(x)=+∞
    2. 若 xxx 违反了某个等式约束使得 hj(x)≠0h_j(x)\neq 0hj​(x)=0,则可找出某个 βj\beta_jβj​ 使 βj(x)hj(x)=+∞\beta_j(x)h_j(x)=+\infinβj​(x)hj​(x)=+∞,使得 θP(x)=+∞\theta_P(x)=+\infinθP​(x)=+∞
    3. 若约束全部满足,则必有 αi=0,hj(x)=0\alpha_i=0, h_j(x) = 0αi​=0,hj​(x)=0,此时有 θP(x)=f(x)\theta_P(x)=f(x)θP​(x)=f(x)

    上述讨论可以总结为以下关系
    θP(x)={f(x),x满足原始约束+∞,其他\theta_P(x)=\left\{ \begin{aligned} f(x) & , \quad x 满足原始约束 \\ +\infin & , \quad 其他 \end{aligned} \right. θP​(x)={f(x)+∞​,x满足原始约束,其他​ 所以如果我们考虑极小化问题(广义拉格朗日函数的极小极大问题
    min⁡xθP(x)=min⁡xmax⁡α,β:ai≥0L(x,α,β)(2)\min_x \theta_P(x) = \min_x\max_{\alpha,\beta:a_i\geq 0} \mathcal{L}(x,\alpha,\beta) \tag{2} xmin​θP​(x)=xmin​α,β:ai​≥0max​L(x,α,β)(2) 显然它与原始优化问题(公式(1))是等价的 ,即它们拥有同样的解。这样我们就把原始的约束最优化问题表示为广义拉格朗日函数的极小极大化问题了,和 1.3 节的讨论一样,这个等价问题中引入了关于不等式约束的拉格朗日乘子的不等式约束 αi≥0\alpha_i\geq 0αi​≥0

  • 为了方便,定义原始问题的最优值 P∗=min⁡xθP(x)P^* = \min_x \theta_P(x)P∗=minx​θP​(x),称为 原始问题的值

2.2 对偶问题

  • 定义 θD(α,β)=min⁡xL(x,α,β)\theta_D(\alpha,\beta) = \min_x\mathcal{L}(x,\alpha,\beta)θD​(α,β)=minx​L(x,α,β),再考虑其极大化问题(广义拉格朗日函数的极大极小问题
    max⁡α,β:αi≥0θD(α,β)=max⁡α,β:αi≥0min⁡xL(x,α,β)\max_{\alpha,\beta:\alpha_i\geq 0} \theta_D(\alpha,\beta) =\max_{\alpha,\beta:\alpha_i\geq 0} \min_x\mathcal{L}(x,\alpha,\beta) α,β:αi​≥0max​θD​(α,β)=α,β:αi​≥0max​xmin​L(x,α,β) 这个问题也可以表示为约束优化问题的形式
    max⁡α,βθD(α,β)=max⁡α,βmin⁡xL(x,α,β)s.t.αi≥0,i=1,2,...,k\begin{aligned} &\max_{\alpha,\beta} &&\theta_D(\alpha,\beta) =\max_{\alpha,\beta} \min_x\mathcal{L}(x,\alpha,\beta) \\ &\text{s.t.} &&\alpha_i \geq 0, \quad i=1,2,...,k \end{aligned} ​α,βmax​s.t.​​θD​(α,β)=α,βmax​xmin​L(x,α,β)αi​≥0,i=1,2,...,k​ 这称为 原始问题的对偶问题,定义其最优值为 D∗=max⁡α,β:αi≥0θD(α,β)D^* = \max_{\alpha,\beta:\alpha_i\geq 0} \theta_D(\alpha,\beta)D∗=maxα,β:αi​≥0​θD​(α,β),称为 对偶问题的值
  • 对偶问题有一个关键的性质:无论原问题是什么,构造的对偶问题一定是一个凸优化问题

    所谓凸优化问题,就是优化目标 fff 和不等式约束 ccc 为凸函数,等式约束 hhh 为仿射函数的约束优化问题

    1. 优化目标: θD(α,β)=f(x∗)+∑i=1kαici(x∗)+∑j=1lβjhj(x∗)\theta_D(\alpha,\beta) = f(x^*)+\sum_{i=1}^k \alpha_ic_i(x^*) + \sum_{j=1}^l \beta_j h_j(x^*)θD​(α,β)=f(x∗)+∑i=1k​αi​ci​(x∗)+∑j=1l​βj​hj​(x∗) 这是关于 α,β\alpha,\betaα,β 的线性函数,是凸函数
    2. 不等式约束:c(αi)=−αic(\alpha_i)=-\alpha_ic(αi​)=−αi​ 是一个线性函数,是凸函数
  • 注意到将原始问题转化为对偶问题得到了两个好处
    1. 减少了约束数量
    2. 对偶问题一定是凸优化问题

2.3 对偶问题和原问题的关系

  • 虽然对偶问题性质很好,但它的解和原问题不一定相同,我们必须研究何时二者的解相同,这样才能用对偶问题代替原问题,转换才有意义
  • 先把两个问题整理为易于对比的形式,对于拉格朗日函数
    L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1lβjhj(x)\mathcal{L}(x,\alpha,\beta) = f(x)+\sum_{i=1}^k \alpha_ic_i(x) + \sum_{j=1}^l \beta_j h_j(x) L(x,α,β)=f(x)+i=1∑k​αi​ci​(x)+j=1∑l​βj​hj​(x)

    1. 原问题
      min⁡xmax⁡α,βL(x,α,β)s.t.ai≥0i=1,2,...,k\begin{aligned} &\min_x\max_{\alpha,\beta} \mathcal{L}(x,\alpha,\beta)\\ &\text{s.t.} \quad a_i\geq 0 \quad i=1,2,...,k \end{aligned} ​xmin​α,βmax​L(x,α,β)s.t.ai​≥0i=1,2,...,k​
    2. 对偶问题
      max⁡α,βmin⁡xL(x,α,β)s.t.ai≥0i=1,2,...,k\begin{aligned} &\max_{\alpha,\beta}\min_x \mathcal{L}(x,\alpha,\beta)\\ &\text{s.t.} \quad a_i\geq 0 \quad i=1,2,...,k \end{aligned} ​α,βmax​xmin​L(x,α,β)s.t.ai​≥0i=1,2,...,k​

2.3.1 弱对偶关系:原问题的解一定大于等于对偶问题的解

  • 弱对偶关系:设原问题的解 min⁡xmax⁡α,βL(x,α,β)=P∗\min_x\max_{\alpha,\beta} \mathcal{L}(x,\alpha,\beta)=P^*minx​maxα,β​L(x,α,β)=P∗,对偶问题的解 max⁡α,βmin⁡xL(x,α,β)=D∗\max_{\alpha,\beta}\min_x \mathcal{L}(x,\alpha,\beta)=D^*maxα,β​minx​L(x,α,β)=D∗ 弱对偶关系 P∗≥D∗P^*\geq D^*P∗≥D∗ 一定成立。证明如下
    θP(x)=max⁡α,βL(x,α,β)≥L(x,α,β)≥min⁡xL(x,α,β)=θD(α,β)θP(x)≥min⁡xθP(x)≥max⁡α,βθD(α,β)≥θD(α,β)⟹P∗=min⁡xθP(x)≥max⁡α,βθD(α,β)=D∗\begin{aligned} &\theta_P(x) = \max_{\alpha,\beta} \mathcal{L}(x,\alpha,\beta) \geq \mathcal{L}(x,\alpha,\beta) \geq\min_x \mathcal{L}(x,\alpha,\beta) = \theta_D(\alpha,\beta) \\ &\theta_P(x) \geq \min_x \theta_P(x) \geq \max_{\alpha,\beta}\theta_D(\alpha,\beta) \geq \theta_D(\alpha,\beta) \\ \Longrightarrow \quad&P^* = \min_x \theta_P(x) \geq \max_{\alpha,\beta}\theta_D(\alpha,\beta) = D^* \end{aligned} ⟹​θP​(x)=α,βmax​L(x,α,β)≥L(x,α,β)≥xmin​L(x,α,β)=θD​(α,β)θP​(x)≥xmin​θP​(x)≥α,βmax​θD​(α,β)≥θD​(α,β)P∗=xmin​θP​(x)≥α,βmax​θD​(α,β)=D∗​

2.3.2 强对偶关系:原问题的解等于对偶问题的解

  • 强对偶关系:当 P∗=D∗P^* = D^*P∗=D∗ 时称原问题和对偶问题满足强对偶关系,这是我们最关心的情况,因为这时我们就能用对偶问题替代原始问题了。这里有一个推论:设 x∗x^*x∗ 和 α∗,β∗\alpha^*,\beta^*α∗,β∗ 分别是原始问题和对偶问题的可行解,且 P∗=D∗P^*=D^*P∗=D∗ 则 x∗,α∗,β∗x^*,\alpha^*,\beta^*x∗,α∗,β∗ 分别是原始问题和对偶问题的最优解

  • 下面从几何角度观察一下这个等号何时成立,首先对拉格朗日函数做简化处理,等式约束成立时 ∑j=1lβjhj(x)=0\sum_{j=1}^l \beta_j h_j(x)=0∑j=1l​βj​hj​(x)=0,有
    L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1lβjhj(x)=f(x)+α⊤c(x)\begin{aligned} \mathcal{L}(x,\alpha,\beta) &= f(x)+\sum_{i=1}^k \alpha_ic_i(x) + \sum_{j=1}^l \beta_j h_j(x)\\ &=f(x)+\pmb{\alpha}^\top \pmb{c}(x) \end{aligned} L(x,α,β)​=f(x)+i=1∑k​αi​ci​(x)+j=1∑l​βj​hj​(x)=f(x)+αα⊤cc(x)​ 可以把它看作是关于 f(x)f(x)f(x) 和 c(x)\pmb{c}(x)cc(x) 的函数,为了在二维平面中表示,假设仅有一个不等式约束,设为 c(x)=uc(x)=uc(x)=u,同时设 f(x)=tf(x)=tf(x)=t。这时原问题和对偶问题的形式和可行域为

    1. 原问题:min⁡x{t∣(t,u)∈G1,u≤0}\min_x\{t|(t,u) \in G_1, u\leq 0\}minx​{t∣(t,u)∈G1​,u≤0},可行域 G1G_1G1​ 为
      G1={(t,u)∣t=f(x),u=c(x),x∈D}D={x∣c(x)≤0}\begin{aligned} G_1 &= \{(t,u)|t=f(x),u=c(x),x\in D\} \\ D &= \{x|c(x)\leq 0\} \end{aligned} G1​D​={(t,u)∣t=f(x),u=c(x),x∈D}={x∣c(x)≤0}​
    2. 对偶问题:max⁡λmin⁡x{t+λ⋅u∣(t,u)∈G2,λ≥0}\max_\lambda\min_x\{t+\lambda ·u|(t,u) \in G_2, \lambda\geq 0\}maxλ​minx​{t+λ⋅u∣(t,u)∈G2​,λ≥0},可行域 G2G_2G2​ 为
      G2={(t,u)∣t=f(x),u=c(x),x∈Rn}G_2 = \{(t,u)|t=f(x),u=c(x),x\in \mathbb{R}^n\} G2​={(t,u)∣t=f(x),u=c(x),x∈Rn}

    注意到 G1G_1G1​ 就是 G2G_2G2​ 在 uuu 负半轴的部分,假设对偶问题的可行域 G2G_2G2​ 是一个非凸集,G2,G1G_2,G_1G2​,G1​可绘制如下

    考察两个问题的解

    1. 原问题,直接在 G1G_1G1​ 部分找最小值即可

    2. 对偶问题,注意 t+λ⋅ut+\lambda ·ut+λ⋅u 是斜率为 −λ-\lambda−λ 的直线与 ttt 轴的截距,先假设 λ≥0\lambda\geq 0λ≥0 是定值,则我们要在 G2G_2G2​ 中找一个点,使得过他的以 −λ-\lambda−λ 为斜率的直线(斜率小于等于零,一定是水平或者向右下倾斜)的截距最小,如下图面左图所示;然后考虑外层的 max⁡λ\max_\lambdamaxλ​,其实就是找一个合适的斜率使得截距最大,如下面右图所示

      可见,若对偶问题的可行域 G2G_2G2​ 是非凸的,则当以 −λ-\lambda−λ 为斜率的直线同时与 G2G_2G2​ 下部两点相切时取到最优值 D∗D^*D∗,这时一定有 P∗>DP^* > DP∗>D

    另一方面,从几何角度也容易看出:如果 G2G_2G2​ 是凸集,则通常有 P∗=Q∗P^*=Q^*P∗=Q∗ 满足强对偶关系,下面给出两个满足等号的情况示意图

  • 根据上述分析我们可以认为:绝大多数情况下,只要原问题是凸优化问题,则原问题和对偶问题一定满足强对偶关系,可以互相替代。注意这不是百分百成立的,下面给出严谨的充分条件和必要条件

2.3.3 强对偶关系的充分条件:Slater 条件

  • 先写出一个一般约束优化问题
    min⁡x∈Rnf(x)s.t.hi(x)≤0,i=1,2,...,kgj(x)=0,j=1,2,...,l\begin{aligned} &\min_{x\in\mathbb{R}^n} &&f(x) \\ & \text{s.t.} &&h_i(x) \leq 0, \quad i=1,2,...,k \\ &&&g_j(x) = 0, \quad j=1,2,...,l \end{aligned} ​x∈Rnmin​s.t.​​f(x)hi​(x)≤0,i=1,2,...,kgj​(x)=0,j=1,2,...,l​

  • Slater条件:对于一个凸优化问题(优化目标 fff 和不等式约束 hhh 为凸函数,等式约束 ggg 为仿射函数),可行域为 DDD,若 ∃x∈relintDs.t.hi(x)<0,i=1,2,...,k\exist x\in\text{relint} D \quad\text{s.t.}\quad h_i(x)<0,i=1,2,...,k∃x∈relintDs.t.hi​(x)<0,i=1,2,...,k,则该问题有强对偶性

    所谓 relintD\text{relint} DrelintD 指可行域 DDD 的相对内部,例如线段的相对内部就是去掉两个端点;圆的相对内部就是去掉皮

    这里的条件说白了就是至少要有一个仿射集(满足仿射等式约束 ggg)内部的点 x∈Rnx\in\mathbb{R}^nx∈Rn 在不等式约束面的内部,即不在边界上,则该问题有强对偶性(换句话说可行域不能只是不等式约束边界构成的一个壳)

  • 弱Slater条件:对于一个凸优化问题(优化目标 fff 和不等式约束 hhh 为凸函数,等式约束 ggg 为仿射函数),如果不等式是约束 hhh 是仿射约束,只要可行域 D≠∅D\neq\emptyD=∅,则该问题有强对偶性

    这个用得比较多

2.3.4 强对偶关系的必要条件:KKT 条件

  • 我们再把 1.3 节的 KKT 条件拿下来重新分析一下:给定若干等式约束 hi(x)=0h_i(x)=0hi​(x)=0 和不等式约束 gj(x)≤0g_j(x)\leq 0gj​(x)≤0,优化目标在 x∗,μ∗,λ∗x^*,\pmb{\mu}^*,\pmb{\lambda}^*x∗,μμ∗,λλ∗ 处取得极小值的充要条件为

    1. ▽xL(x∗,λ∗,μ∗)=0\triangledown_x\mathcal{L}(x^*,\pmb{\lambda}^*,\pmb{\mu}^*)=\pmb{0}▽x​L(x∗,λλ∗,μμ∗)=00
    2. λj∗≥0,j=1,2,....,l\lambda^*_j\geq0, \space\space j=1,2,....,lλj∗​≥0,  j=1,2,....,l
    3. λj∗gj(x∗)=0,j=1,2,....,l\lambda^*_jg_j(x^*)=0, \space\space j=1,2,....,lλj∗​gj​(x∗)=0,  j=1,2,....,l
    4. gj(x∗)≤0,j=1,2,....,lg_j(x^*)\leq 0, \space\space j=1,2,....,lgj​(x∗)≤0,  j=1,2,....,l
    5. h(x∗)=0h(x^*)=\pmb{0}h(x∗)=00
    6. ▽xx2L(x∗,λ∗)\triangledown_{xx}^2\mathcal{L} (x^*,\pmb{\lambda}^*)▽xx2​L(x∗,λλ∗) 是半正定的 Hessian 矩阵
  • 这次我们从原问题和对偶问题的角度考虑,可见
    1. 1/2 条满足了对偶问题的约束条件,因此他们被称为 对偶可行条件
    2. 4/5 条满足了原问题的约束条件,因此他们被称为 原问题可行条件
    3. 第 3 条称为 互补松弛条件,它其实对应了 2.3.2 节最后图示的满足强对偶关系的两种情况
  • 总之,KKT 条件除了是特定凸优化问题取最优值的充要条件,也是约束优化问题有强对偶性质的必要条件

3. 总结

  • 最后我们回顾总结本文说明的各种概念间的关系

    1. 对于只有等式约束的优化问题,可以直接用拉格朗日乘子法列出拉格朗日函数,将其转化为无约束优化问题求解
    2. 对于包含不等式约束的优化问题,仍然可以像只有等式约束时一样列出拉格朗日函数,但此时函数中会包含对拉格朗日乘子的新约束,优化它得到的最优值结果一定满足 KKT 条件(KKT 是取最优参数值的必要条件,对于某些特殊的凸优化问题是充要条件)
    3. 含有不等式约束的问题列出拉格朗日函数后仍有约束不好处理,这时我们可以将其转化为拉格朗日对偶问题,这个对偶问题一定是凸优化问题,因此易于求解。优化问题一定具有弱对偶性,但要想对偶问题和原问题同解其必须满足强对偶性,强对偶性的充分条件是Slater 条件,必要条件是 KKT 条件

一文看懂拉格朗日乘子法、KKT条件和对偶问题相关推荐

  1. 拉格朗日乘子法 KKT条件

    目录 1. 拉格朗日乘子法用于最优化的原因 2. 最优化问题三种情况 2.1 无约束条件 2.2 等式约束条件:拉格朗日乘子法 2.3 不等式约束条件:KKT 3. Lagrange对偶函数 3.1  ...

  2. 真正理解拉格朗日乘子法和KKT条件

    转载自:https://www.cnblogs.com/xinchen1111/p/8804858.html  这篇博文中直观上讲解了拉格朗日乘子法和 KKT 条件,对偶问题等内容. 首先从无约束的优 ...

  3. 最优控制理论 六、拉格朗日乘子法和KKT条件

    拉格朗日乘子法和KKT条件 1. 等式约束最优化 2. 不等式约束最优化 2.1 1个不等式约束 2.2 KKT条件 2.3 二维不等式约束图解 3. MATLAB不等式约束优化 总结 4. 参考文献 ...

  4. 解密SVM系列(一):关于拉格朗日乘子法和KKT条件

    转载 原地址https://blog.csdn.net/on2way/article/details/47729419 写在之前 支持向量机(SVM),一个神秘而众知的名字,在其出来就受到了莫大的追捧 ...

  5. 拉格朗日乘子法和KKT条件

    转自:http://www.cnblogs.com/zhangchaoyang/articles/2726873.html 拉格朗日乘子法(Lagrange Multiplier)和KKT(Karus ...

  6. 【数学基础】运筹学:拉格朗日乘子法和KKT条件(上)

    引言 在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.通常,对于等式约束问题,采用拉格朗日乘子法.对 ...

  7. 拉格朗日乘子法-KKT不等式约束

    文章目录 不等式约束 极小值点落在可行域内(不包含边界) 极小值点落在可行域外(包含边界) 总结 不等式约束 对于不等式约束g(x)<=0,和等式约束h(x)=0不一样,h(x)=0可以在平面上 ...

  8. 第99:真正理解拉格朗日乘子法和 KKT 条件

    转载于:https://www.cnblogs.com/invisible2/p/11441485.html

  9. 经典算法解读:一文看懂支持向量机以及推导

    本文是吴恩达老师的机器学习课程[1]和<统计学习方法>[2]的笔记和代码复现部分(支持向量机). 作者:黄海广[3] 备注:笔记和作业(含数据.原始作业文件).视频都在 github 中下 ...

最新文章

  1. 不是所有图像都值16x16个词,清华与华为提出动态ViT
  2. python|selenium的API说明文档查看的2种方法
  3. vue中create 什么触发_vue中eventbus被多次触发(vue中使用eventbus踩过的坑)
  4. 信息系统项目管理师-信息系统项目管理基础考点笔记
  5. Opencv实现的简易绘图工具
  6. paip.html调试工具--显示控件名称与值
  7. CSDN新版下载频道介绍之三——用户权限及积分规则详解
  8. DeepFaceLab 新手入门教程
  9. 自动化运维平台-OpManager
  10. MLCDForest:用深度森林对长链非编码RNA进行疾病预测的多标签分类模型
  11. 微信也能开门?微信开门解决方案来了
  12. 2019腾讯广告算法大赛解析
  13. IBM服务器管理口IMM使用指南
  14. python def函数参数_Python def函数的定义、使用及参数传递方法
  15. html 标题设置链接 博客,从今天开始,拿起VuePress打造属于自己的专属博客
  16. CSSposition定位(relative、absolute、fixed、sticky)
  17. 系统集成项目管理工程师高频考点(第九章)
  18. Mockplus默认图标导出的方法
  19. platform模型
  20. mysql多表删除_MySQL中多表删除方法

热门文章

  1. Mininet 上启用 DCTCP 和 ECN 进行拥塞控制、使用 HTB 和 RED 队列进行流量控制
  2. 查询SAP HR薪资j计提和发放过账的HR 凭证及其对应的FI凭证-PCP0 / PC00_M99_CIPE
  3. 韩语学习笔记(3)이것은무엇임니까
  4. 翻译和理解:Deep Closest Point: Learning Representations for Point Cloud Registration
  5. CentOS7详细搭建Gerrit服务
  6. Linux Shell脚本编程--netstat命令
  7. Flutter教程之Windows桌面应用程序开发
  8. 改进蝙蝠优化算法python代码
  9. JS轮播图(左右箭头切换、按钮切换、自动轮播)
  10. get post 请求,响应报文