当前位置:网站首页>一文看懂拉格朗日乘子法、KKT条件和对偶问题
一文看懂拉格朗日乘子法、KKT条件和对偶问题
2022-07-29 23:08:00 【云端FFF】
- 拉格朗日乘子法是解约束优化问题的常用方法,它和 KKT 条件、Slater 条件、拉格朗日对偶性等概念常常一起出现,本文梳理说明相关概念,并从几何与代数两个角度加以解释
- 先有一个大概的认识
- 对于只有等式约束的优化问题,可以直接用
拉格朗日乘子法
列出拉格朗日函数
,将其转化为无约束优化问题求解 - 对于包含不等式约束的优化问题,仍然可以像只有等式约束时一样列出拉格朗日函数,但此时函数中会包含对拉格朗日乘子的新约束,优化它得到的最优值结果一定满足
KKT 条件
(KKT 是取最优参数值的必要条件,对于某些特殊的凸优化问题是充要条件) - 含有不等式约束的问题列出拉格朗日函数后仍有约束不好处理,这时我们可以将其转化为
拉格朗日对偶问题
,这个对偶问题一定是凸优化问题,因此易于求解。优化问题一定具有弱对偶性
,但要想对偶问题和原问题同解其必须满足强对偶性
,强对偶性的充分条件是Slater 条件
,必要条件是KKT 条件
- 对于只有等式约束的优化问题,可以直接用
- 参考
- 通俗易懂讲算法-最优化之拉格朗日乘子与KKT条件
- 《统计学习方法(第二版)》附录 C
文章目录
1. 拉格朗日乘子法
1.1 只有等式约束
考虑一个只有等式约束的约束优化问题
min x ∈ R n f ( x ) s.t. h i ( 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∈Rnmins.t.f(x)hi(x)=0,i=1,2,...,k 假设只有一个约束,以 f ( x ) = x 1 + x 2 f(x)=x_1+x_2 f(x)=x1+x2, h ( x ) = x 1 2 + x 2 2 − 2 h(x)=x_1^2+x_2^2-2 h(x)=x12+x22−2 为例,将目标函数和约束画出
想要最小化 f ( x ) f(x) f(x),在无约束时我们只要按 f ( x ) f(x) f(x) 的负梯度方向(左下45度)做梯度下降即可,但在有约束的情况下,我们每一步都只能按约束园的切线方向(与约束面的梯度方向正交)移动显然,要想在每一步移动时都让目标函数更优,我们移动的方向必须和目标函数负梯度方向的夹角小于 90 度,换句话说,当移动方向和目标函数负梯度方向垂直时(约束面切向方向和目标函数负梯度方向垂直;约束面梯度方向和目标函数负梯度方向平行),我们就找到了一个 critical point(如图所示)。设此位置为 x ∗ x^* x∗,可以表示为
▽ x f ( x ∗ ) = μ ▽ x h ( x ∗ ) \triangledown_xf(x^*) = \mu \triangledown_xh(x^*) ▽xf(x∗)=μ▽xh(x∗) 从图中可以看出, x ∗ x^* x∗ 是优化问题最优解的充要条件为- 此位置目标函数负梯度方向和约束面梯度方向相同: − ▽ x f ( x ∗ ) = μ ▽ x h ( x ∗ ) , μ > 0 -\triangledown_xf(x^*) = \mu \triangledown_xh(x^*), \space\space \mu>0 −▽xf(x∗)=μ▽xh(x∗), μ>0
- 此位置在约束面上: h ( x ∗ ) = 0 h(x^*)=0 h(x∗)=0
- 在此位置附近沿可行方向移动,目标函数值不会变得更好:Hessian 矩阵与可行移动方向构成的二次型是半正定的
通过上述几何角度的分析,我们可以建立起对拉格朗日乘数法的直观理解。对于有多个等式约束的优化问题
min x ∈ R n f ( x ) s.t. h i ( 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∈Rnmins.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∗,μ∗ 处取得极小值的充要条件为(这三条和上面充要条件一一对应)- ▽ x L ( x ∗ , μ ∗ ) = 0 \triangledown_x\mathcal{L} (x^*,\pmb{\mu}^*) = 0 ▽xL(x∗,μμ∗)=0
- ▽ μ L ( x ∗ , μ ∗ ) = 0 \triangledown_{\pmb{\mu}}\mathcal{L} (x^*,\pmb{\mu}^*) = 0 ▽μμL(x∗,μμ∗)=0
- y ⊤ ( ▽ x x 2 L ( x ∗ , μ ∗ ) ) y ≥ 0 ∀ y s.t. ▽ x h ( x ∗ ) ⊤ y = 0 y^\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=0 y⊤(▽xx2L(x∗,μμ∗))y≥0∀y s.t.▽xh(x∗)⊤y=0(注:这里 y y y 是 x ∗ x^* x∗ 位置的约束面切线方向,即可以移动的方向,Hessian 矩阵半正定意为这里 L \mathcal{L} L 关于 x x x 不凹,从而保证是局部极小值)
这里求两个梯度为 0 正是使用拉格朗日乘子法的一般套路,像上面那样从几何角度可以清晰地看出其背后的原理
1.2 只有不等式约束
- 本节考虑只有不等式约束的约束优化问题
min x ∈ R n f ( x ) s.t. g j ( 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∈Rnmins.t.f(x)gj(x)≤0,j=1,2,...,l
1.2.1 最优解在约束范围内
- 假设只有一个约束,以 f ( x ) = x 1 2 + x 2 2 f(x)=x_1^2+x_2^2 f(x)=x12+x22, g ( x ) = x 1 2 + x 2 2 − 1 g(x)=x_1^2+x_2^2-1 g(x)=x12+x22−1 为例,将目标函数和约束画出
这时最优解为 x = [ 0 , 0 ] ⊤ x=[0,0]^\top x=[0,0]⊤,它位于约束面内部,加不加约束对于解没有影响。在 x ∗ x^* x∗ 处取得最优解的充要条件和无约束时相同,为- 此位置在约束区域内: g ( x ∗ ) < 0 g(x^*)<0 g(x∗)<0
- 此位置目标函数梯度为 0: ▽ x f ( x ∗ ) = 0 \triangledown_xf(x^*)=0 ▽xf(x∗)=0
- 在此位置附近沿可行方向移动,目标函数值不会变得更好: ▽ x x 2 f ( x ∗ ) \triangledown_{xx}^2f(x^*) ▽xx2f(x∗) 是半正定的 Hessian 矩阵
1.2.2 最优解在约束范围外
- 假设只有一个约束,以 f ( x ) = ( x 1 − 1.1 ) 2 + ( x 2 + 1.1 ) 2 f(x)=(x_1-1.1)^2+(x_2+1.1)^2 f(x)=(x1−1.1)2+(x2+1.1)2, g ( x ) = x 1 2 + x 2 2 − 1 g(x)=x_1^2+x_2^2-1 g(x)=x12+x22−1 为例,将目标函数和约束画出
这时约束面影响了最优解的值,从图中可以很明显地看出,此时的最优解必然位于约束面的边缘上,即必有 g ( x ∗ ) = 0 g(x^*)=0 g(x∗)=0,退化为和等式约束相同的情况
在 x ∗ x^* x∗ 处取得最优解的充要条件和等式约束时相同,为- 此位置在约束区域边界: g ( x ∗ ) = 0 g(x^*)=0 g(x∗)=0
- 此位置目标函数负梯度方向和约束面梯度方向相同: − ▽ x f ( x ∗ ) = λ ▽ x g ( x ∗ ) , λ > 0 -\triangledown_xf(x^*) = \lambda\triangledown_xg(x^*), \space\space \lambda>0 −▽xf(x∗)=λ▽xg(x∗), λ>0
- 在此位置附近沿可行方向移动,目标函数值不会变得更好:Hessian 矩阵与可行移动方向构成的二次型是半正定的
1.2.3 综合考虑两种情况
考虑有多个不等式约束的约束优化问题
min x ∈ R n f ( x ) s.t. g j ( 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∈Rnmins.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)- 当最优解在(一个或多个)约束范围内时,这些约束等价于不存在(或者说这些约束条件是
松弛的
),因此可以令 λ ∗ = 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∗,λλ∗ 处取得最优解的充要条件为- g j ( x ∗ ) < 0 , j = 1 , 2 , . . . . , l g_j(x^*)<0, \space\space j=1,2,....,l gj(x∗)<0, j=1,2,....,l
- λ ∗ = 0 \pmb{\lambda}^*=\pmb{0} λλ∗=00
- ▽ x L ( x ∗ , λ ∗ ) = 0 \triangledown_x\mathcal{L}(x^*,\pmb{\lambda}^*)=\pmb{0} ▽xL(x∗,λλ∗)=00
- ▽ x x 2 L ( x ∗ , λ ∗ ) \triangledown_{xx}^2\mathcal{L} (x^*,\pmb{\lambda}^*) ▽xx2L(x∗,λλ∗) 是半正定的 Hessian 矩阵
- 当最优解在(一个或多个)约束范围外时,约束条件会影响最优 x ∗ x^* x∗ 的取值(或者说这些约束条件是
紧致的
),在 x ∗ x^* x∗ 处取得最优解的充要条件为- g j ( x ∗ ) = 0 , j = 1 , 2 , . . . . , l g_j(x^*)=0, \space\space j=1,2,....,l gj(x∗)=0, j=1,2,....,l
- λ j ∗ > 0 , j = 1 , 2 , . . . . , l \lambda^*_j>0, \space\space j=1,2,....,l λj∗>0, j=1,2,....,l
- − ▽ x f ( x ∗ ) = λ ∗ ⊤ ▽ x g ( x ∗ ) * ▽ x L ( x ∗ , λ ∗ ) = 0 -\triangledown_xf(x^*) = \pmb{\lambda^*}^\top\triangledown_xg(x^*) \quad \Longrightarrow \triangledown_x\mathcal{L}(x^*,\pmb{\lambda}^*)=\pmb{0} −▽xf(x∗)=λ∗λ∗⊤▽xg(x∗)*▽xL(x∗,λλ∗)=00
- y ⊤ ( ▽ x x 2 L ( x ∗ ) ) y ≥ 0 ∀ y s.t. ▽ x g ( x ∗ ) ⊤ y = 0 y^\top (\triangledown_{xx}^2\mathcal{L} (x^*))y\geq 0\quad \forall y\space\space\text{s.t.} \triangledown_xg(x^*)^\top y=0 y⊤(▽xx2L(x∗))y≥0∀y s.t.▽xg(x∗)⊤y=0 (Hessian 矩阵与可行移动方向构成的二次型是半正定的)
以上两种情况可以合并考虑,总结出的在 x ∗ , λ ∗ x^*,\pmb{\lambda}^* x∗,λλ∗ 处取得最优解的充要条件为
- ▽ x L ( x ∗ , λ ∗ ) = 0 \triangledown_x\mathcal{L}(x^*,\pmb{\lambda}^*)=\pmb{0} ▽xL(x∗,λλ∗)=00
- λ j ∗ > 0 , j = 1 , 2 , . . . . , l \lambda^*_j>0, \space\space j=1,2,....,l λj∗>0, j=1,2,....,l
- λ j ∗ g j ( 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
- g j ( x ∗ ) ≤ 0 , j = 1 , 2 , . . . . , l g_j(x^*)\leq 0, \space\space j=1,2,....,l gj(x∗)≤0, j=1,2,....,l
- ▽ x x 2 L ( x ∗ , λ ∗ ) \triangledown_{xx}^2\mathcal{L} (x^*,\pmb{\lambda}^*) ▽xx2L(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 节,考虑有 k k k 个等式约束和 l l l 个不等式约束的优化问题,假设 f ( x ) , h i ( x ) , g j ( x ) f(x), h_i(x), g_j(x) f(x),hi(x),gj(x) 是定义在 R n \mathbb{R}^n Rn 上的连续可微函数
min x ∈ R n f ( x ) s.t. h i ( x ) ≤ 0 , i = 1 , 2 , . . . , k g j ( 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∈Rnmins.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∗,μμ∗,λλ∗ 处取得极小值的充要条件为- ▽ x L ( x ∗ , λ ∗ , μ ∗ ) = 0 \triangledown_x\mathcal{L}(x^*,\pmb{\lambda}^*,\pmb{\mu}^*)=\pmb{0} ▽xL(x∗,λλ∗,μμ∗)=00
- λ j ∗ > 0 , j = 1 , 2 , . . . . , l \lambda^*_j>0, \space\space j=1,2,....,l λj∗>0, j=1,2,....,l
- λ j ∗ g j ( 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
- g j ( x ∗ ) ≤ 0 , j = 1 , 2 , . . . . , l g_j(x^*)\leq 0, \space\space j=1,2,....,l gj(x∗)≤0, j=1,2,....,l
- h ( x ∗ ) = 0 h(x^*)=\pmb{0} h(x∗)=00
- ▽ x x 2 L ( x ∗ , λ ∗ ) \triangledown_{xx}^2\mathcal{L} (x^*,\pmb{\lambda}^*) ▽xx2L(x∗,λλ∗) 是半正定的 Hessian 矩阵
这就是所谓的
KKT条件
(通常不提第 6 条)- 当原始问题是凸优化问题时,可以认为 KKT 条件是在 x ∗ x^* x∗ 处取得极小值的充要条件(准确地说,当 f , g f, g f,g 是凸函数, h h h 是仿射函数,且不等式约束 g g g 严格可行时,KKT 是充要条件)
- 否则,KKT 条件是在 x ∗ x^* x∗ 处取得极小值的必要条件
观察一下 KKT 条件,其实 1,5,6 三条合起来就是拉格朗日乘子法的计算步骤,引入不等式约束后出现了 2,3,4 条,其中第 2 条是构造拉格朗日函数后新进入的不等式约束,约束无法完全去除,求解仍很困难,这时就要用到拉格朗日对偶性转换为对偶问题了
2. 拉格朗日对偶性
- 利用拉格朗日对偶性将原始问题转化为对偶问题,通过解对偶问题得到原问题的解,是统计学习方法中常用的一个技巧。最大熵和支持向机等模型推导中都有应用
- 本节参考《统计学习方法(第二版)》附录 C,符号和前文有所变化,请注意
2.1 原始问题
假设 f ( x ) , c i ( x ) , h j ( x ) f(x), c_i(x), h_j(x) f(x),ci(x),hj(x) 是定义在 R n \mathbb{R}^n Rn 上的连续可微函数。考虑约束优化问题
min x ∈ R n f ( x ) s.t. c i ( x ) ≤ 0 , i = 1 , 2 , . . . , k h j ( 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∈Rnmins.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 = 1 k α i c i ( x ) + ∑ j = 1 l β j h j ( 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αici(x)+j=1∑lβjhj(x) 其中 x = [ x ( 1 ) , x ( 2 ) , . . . , x ( n ) ] ⊤ ∈ R n x=[x^{(1)},x^{(2)},...,x^{(n)}]^\top \in\mathbb{R}^n x=[x(1),x(2),...,x(n)]⊤∈Rn。考虑 x x x 的函数
θ P ( x ) = max α , β : a i ≥ 0 L ( x , α , β ) \theta_P(x) = \max_{\alpha,\beta:a_i\geq 0} \mathcal{L}(x,\alpha,\beta) θP(x)=α,β:ai≥0maxL(x,α,β) 这里下标 P P P 表示原始问题。考察这个函数,不难发现- 若 x x x 违反了某个不等式约束使得 c i ( x ) > 0 c_i(x)>0 ci(x)>0,则可令 α i → + ∞ \alpha_i\to +\infin αi→+∞,使得 θ P ( x ) = + ∞ \theta_P(x)=+\infin θP(x)=+∞
- 若 x x x 违反了某个等式约束使得 h j ( x ) ≠ 0 h_j(x)\neq 0 hj(x)=0,则可找出某个 β j \beta_j βj 使 β j ( x ) h j ( x ) = + ∞ \beta_j(x)h_j(x)=+\infin βj(x)hj(x)=+∞,使得 θ P ( x ) = + ∞ \theta_P(x)=+\infin θP(x)=+∞
- 若约束全部满足,则必有 α i = 0 , h j ( 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 x max α , β : a i ≥ 0 L ( 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≥0maxL(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 x L ( x , α , β ) \theta_D(\alpha,\beta) = \min_x\mathcal{L}(x,\alpha,\beta) θD(α,β)=minxL(x,α,β),再考虑其极大化问题(
广义拉格朗日函数的极大极小问题
)
max α , β : α i ≥ 0 θ D ( α , β ) = max α , β : α i ≥ 0 min x L ( 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≥0maxxminL(x,α,β) 这个问题也可以表示为约束优化问题的形式
max α , β θ D ( α , β ) = max α , β min x L ( 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} α,βmaxs.t.θD(α,β)=α,βmaxxminL(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(α,β),称为对偶问题的值
- 对偶问题有一个关键的性质:无论原问题是什么,构造的对偶问题一定是一个凸优化问题
所谓凸优化问题,就是优化目标为凸函数,可行域为凸集的优化问题
优化目标
: θ D ( α , β ) = f ( x ∗ ) + ∑ i = 1 k α i c i ( x ∗ ) + ∑ j = 1 l β j h j ( 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αici(x∗)+∑j=1lβjhj(x∗) 这是关于 α , β \alpha,\beta α,β 的线性函数,是凸函数可行域
: { α ∣ α i ≥ 0 , i = 1 , 2 , . . . , k } \{\pmb{\alpha}|\alpha_i \geq 0, \space\space i=1,2,...,k\} { αα∣αi≥0, i=1,2,...,k},这是一个半空间,是凸集
- 注意到将原始问题转化为对偶问题得到了两个好处
- 减少了约束数量
- 对偶问题一定是凸优化问题
2.3 对偶问题和原问题的关系
- 虽然对偶问题性质很好,但它的解和原问题不一定相同,我们必须研究何时二者的解相同,这样才能用对偶问题代替原问题,转换才有意义
- 先把两个问题整理为易于对比的形式,对于拉格朗日函数
L ( x , α , β ) = f ( x ) + ∑ i = 1 k α i c i ( x ) + ∑ j = 1 l β j h j ( 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αici(x)+j=1∑lβjhj(x)- 原问题
min x max α , β L ( x , α , β ) s.t. a i ≥ 0 i = 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α,βmaxL(x,α,β)s.t.ai≥0i=1,2,...,k - 对偶问题
max α , β min x L ( x , α , β ) s.t. a i ≥ 0 i = 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} α,βmaxxminL(x,α,β)s.t.ai≥0i=1,2,...,k
- 原问题
2.3.1 弱对偶关系:原问题的解一定大于等于对偶问题的解
弱对偶关系
:设原问题的解 min x max α , β L ( x , α , β ) = P ∗ \min_x\max_{\alpha,\beta} \mathcal{L}(x,\alpha,\beta)=P^* minxmaxα,βL(x,α,β)=P∗,对偶问题的解 max α , β min x L ( x , α , β ) = D ∗ \max_{\alpha,\beta}\min_x \mathcal{L}(x,\alpha,\beta)=D^* maxα,βminxL(x,α,β)=D∗ 弱对偶关系 P ∗ ≥ D ∗ P^*\geq D^* P∗≥D∗ 一定成立。证明如下
θ P ( x ) = max α , β L ( x , α , β ) ≥ L ( x , α , β ) ≥ min x L ( 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)=α,βmaxL(x,α,β)≥L(x,α,β)≥xminL(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 = 1 l β j h j ( x ) = 0 \sum_{j=1}^l \beta_j h_j(x)=0 ∑j=1lβjhj(x)=0,有
L ( x , α , β ) = f ( x ) + ∑ i = 1 k α i c i ( x ) + ∑ j = 1 l β j h j ( 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αici(x)+j=1∑lβjhj(x)=f(x)+αα⊤cc(x) 可以把它看作是关于 f ( x ) f(x) f(x) 和 c ( x ) \pmb{c}(x) cc(x) 的函数,为了在二维平面中表示,假设仅有一个不等式约束,设为 c ( x ) = u c(x)=u c(x)=u,同时设 f ( x ) = t f(x)=t f(x)=t。这时原问题和对偶问题的形式和可行域为- 原问题: min x { t ∣ ( t , u ) ∈ G 1 , u ≤ 0 } \min_x\{t|(t,u) \in G_1, u\leq 0\} minx{ t∣(t,u)∈G1,u≤0},可行域 G 1 G_1 G1 为
G 1 = { ( 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} G1D={(t,u)∣t=f(x),u=c(x),x∈D}={ x∣c(x)≤0} - 对偶问题: max λ min x { t + λ ⋅ u ∣ ( t , u ) ∈ G 2 , λ ≥ 0 } \max_\lambda\min_x\{t+\lambda ·u|(t,u) \in G_2, \lambda\geq 0\} maxλminx{ t+λ⋅u∣(t,u)∈G2,λ≥0},可行域 G 2 G_2 G2 为
G 2 = { ( t , u ) ∣ t = f ( x ) , u = c ( x ) , x ∈ R n } 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}
注意到 G 1 G_1 G1 就是 G 2 G_2 G2 在 u u u 负半轴的部分,假设对偶问题的可行域 G 2 G_2 G2 是一个非凸集, G 2 , G 1 G_2,G_1 G2,G1可绘制如下
考察两个问题的解原问题,直接在 G 1 G_1 G1 部分找最小值即可
对偶问题,注意 t + λ ⋅ u t+\lambda ·u t+λ⋅u 是斜率为 − λ -\lambda −λ 的直线与 t t t 轴的截距,先假设 λ ≥ 0 \lambda\geq 0 λ≥0 是定值,则我们要在 G 2 G_2 G2 中找一个点,使得过他的以 − λ -\lambda −λ 为斜率的直线(斜率小于等于零,一定是水平或者向右下倾斜)的截距最小,如下图面左图所示;然后考虑外层的 max λ \max_\lambda maxλ,其实就是找一个合适的斜率使得截距最大,如下面右图所示
可见,若对偶问题的可行域 G 2 G_2 G2 是非凸的,则当以 − λ -\lambda −λ 为斜率的直线同时与 G 2 G_2 G2 下部两点相切时取到最优值 D ∗ D^* D∗,这时一定有 P ∗ > D P^* > D P∗>D
另一方面,从几何角度也容易看出:如果 G 2 G_2 G2 是凸集,则通常有 P ∗ = Q ∗ P^*=Q^* P∗=Q∗ 满足强对偶关系,下面给出两个满足等号的情况示意图
- 原问题: min x { t ∣ ( t , u ) ∈ G 1 , u ≤ 0 } \min_x\{t|(t,u) \in G_1, u\leq 0\} minx{ t∣(t,u)∈G1,u≤0},可行域 G 1 G_1 G1 为
根据上述分析我们可以认为:绝大多数情况下,只要原问题是凸优化问题,则原问题和对偶问题一定满足强对偶关系,可以互相替代。注意这不是百分百成立的,下面给出严谨的充分条件和必要条件
2.3.3 强对偶关系的充分条件:Slater 条件
- 不想打字了直接放一个图,请注意符号
- Slater 条件说白了就是:对于一个原始凸优化问题,如果至少要有一个属于仿射集的点 x ∈ R n x\in\mathbb{R}^n x∈Rn 在不等式约束面的内部,即不在边界上,则该问题有强对偶性(换句话说可行域不能只是不等式约束边界构成的一个壳)
2.3.4 强对偶关系的必要条件:KKT 条件
- 我们再把 1.3 节的 KKT 条件拿下来重新分析一下:给定若干等式约束 h i ( x ) = 0 h_i(x)=0 hi(x)=0 和不等式约束 g j ( x ) ≤ 0 g_j(x)\leq 0 gj(x)≤0,优化目标在 x ∗ , μ ∗ , λ ∗ x^*,\pmb{\mu}^*,\pmb{\lambda}^* x∗,μμ∗,λλ∗ 处取得极小值的充要条件为
- ▽ x L ( x ∗ , λ ∗ , μ ∗ ) = 0 \triangledown_x\mathcal{L}(x^*,\pmb{\lambda}^*,\pmb{\mu}^*)=\pmb{0} ▽xL(x∗,λλ∗,μμ∗)=00
- λ j ∗ > 0 , j = 1 , 2 , . . . . , l \lambda^*_j>0, \space\space j=1,2,....,l λj∗>0, j=1,2,....,l
- λ j ∗ g j ( 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
- g j ( x ∗ ) ≤ 0 , j = 1 , 2 , . . . . , l g_j(x^*)\leq 0, \space\space j=1,2,....,l gj(x∗)≤0, j=1,2,....,l
- h ( x ∗ ) = 0 h(x^*)=\pmb{0} h(x∗)=00
- ▽ x x 2 L ( x ∗ , λ ∗ ) \triangledown_{xx}^2\mathcal{L} (x^*,\pmb{\lambda}^*) ▽xx2L(x∗,λλ∗) 是半正定的 Hessian 矩阵
- 这次我们从原问题和对偶问题的角度考虑,可见
- 1/2 条满足了对偶问题的约束条件,因此他们被称为
对偶可行条件
- 4/5 条满足了原问题的约束条件,因此他们被称为
原问题可行条件
- 第 3 条称为
互补松弛条件
,它其实对应了 2.3.2 节最后图示的满足强对偶关系的两种情况
- 1/2 条满足了对偶问题的约束条件,因此他们被称为
- 总之,KKT 条件除了是特定凸优化问题取最优值的充要条件,也是约束优化问题有强对偶性质的必要条件
3. 总结
- 最后我们回顾总结本文说明的各种概念间的关系
- 对于只有等式约束的优化问题,可以直接用
拉格朗日乘子法
列出拉格朗日函数
,将其转化为无约束优化问题求解 - 对于包含不等式约束的优化问题,仍然可以像只有等式约束时一样列出拉格朗日函数,但此时函数中会包含对拉格朗日乘子的新约束,优化它得到的最优值结果一定满足
KKT 条件
(KKT 是取最优参数值的必要条件,对于某些特殊的凸优化问题是充要条件) - 含有不等式约束的问题列出拉格朗日函数后仍有约束不好处理,这时我们可以将其转化为
拉格朗日对偶问题
,这个对偶问题一定是凸优化问题,因此易于求解。优化问题一定具有弱对偶性
,但要想对偶问题和原问题同解其必须满足强对偶性
,强对偶性的充分条件是Slater 条件
,必要条件是KKT 条件
- 对于只有等式约束的优化问题,可以直接用
边栏推荐
- 什么是色选机(color sorter)?
- [leetcode] 75. Color classification (medium) (double pointer, in-situ modification)
- BGP联邦综合实验
- MySQL Interview Questions: Detailed Explanation of User Amount Recharge Interview Questions
- 卧槽,2行代码,让接口性能提升10倍
- C语言实现扫雷(9*9)游戏——详解
- Implementation and implementation of Any to Any real-time voice change丨RTC Dev Meetup
- 浅析即时通讯移动端开发DNS域名劫持等杂症
- Codeforces Round #245 (Div. 1) A (dfs)
- devops学习(三) K8环境部署jenkins
猜你喜欢
DNA修饰碳纳米管|DNA修饰单层二硫化钼|DNA修饰二硫化钨(注意事项)
超分之RVRT
分支语句那些事儿(上)~~~~看完少走两月弯路!!
canvas 中如何实现物体的点选(五)
Gao Shu Xia|Triple Integral Exercises|Uncle Gao Shu|Handwritten Notes
暴力递归到动态规划 04 (数字字符串转化)
devops学习(十) Jenkins 流水线
Design for failure常见的12种设计思想
华为14天-(3)内核开发
The second round of the real offer harvester~ How does the big factory inspect the candidates?(with detailed answer)
随机推荐
Implementation and implementation of Any to Any real-time voice change丨RTC Dev Meetup
Access Modbus TCP and Modbus RTU protocol devices using Neuron
A print function, very good at playing?
cv.copyMakeBorder(imwrite opencv)
【面试:并发篇29:多线程:volatile】原理
暴力递归到动态规划 03 (背包问题)
Qt之在QML中使用QSortFilterProxyModel进行排序和过滤
SAP UI5 FileUploader 的隐藏 iframe 设计明细
Brute force recursion to dynamic programming 04 (digital string conversion)
This article penetrates the architecture design and cluster construction of the distributed storage system Ceph (hands-on)
我们上线了一个「开发者实验室」
[2023 School Recruitment Questions] Summary of Common Interview Questions (7. Common Bus Protocols) (Continuously updated with subsequent interviews....)
流水线上的农民:我在工厂种蔬菜
devops学习(七) sonarqube 代码质检工具
J9数字论:为什么我们需要Web3?
devops学习(五) Jenkins 简单完成持续部署
How to realize object selection in canvas (5)
High - level - the rest - the client determine whether indexes exist
Foxmail是什么邮箱?
Single chip ds1302 clock program (51 single chip liquid crystal display program)