拉格朗日乘数与KKT几何关联推导
2022-11-11 00:54:58 # 课程笔记

本文章是根据瑞典皇家理工学院课件总结归纳而成。碍于本人学识有限,部分叙述难免存在纰漏,请读者注意甄别。

参考资料:

  1. KTH Royal Institute of Technology : Lagrange Multipliers and the Karush-Kuhn-Tucker conditions

目的

我们想要找到一个满足一些约束的函数的最大值或最小值

公式描述

给定一个函数 ff,不等式约束 g1,...,gmg_1, . . . , g_m 和等式约束 h1,...,hlh_1,..., h_l 都在在定义域 Ω⊂RnΩ ⊂ \mathbb{R}^n 上的优化问题:

min⁡x∈Ω  f(x)s.t.{∀igi(x)≤0∀jhj(x)=0\begin{aligned} & \min_{x∈Ω} \;f(x) \\ s.t.& \left\{\begin{aligned} ∀i \quad g_i(x) ≤ 0 \\ ∀j \quad h_j (x) = 0 \end{aligned}\right. \end{aligned}

No constraints

Assume: Let ff : Ω→RΩ → \mathbb{R} be a continuously differentiable function. 在定义域上连续可微

【局部最小值】的【充要条件】(Necessary and sufficient conditions):

x∗x^{\ast} is a local minimum of f(x)f(x) 当且仅当

  1. ff 在 x∗x^{\ast} 处是零梯度 (zero gradient):

    ∇xf(x∗)=0∇_x f(x^{\ast}) = 0

  2. ff 的 Hessian 矩阵在 x∗x^{\ast} 处是半正定的 (positive semi-definite):保证ff 在 x∗x^{\ast} 处是“波谷”

    vt(∇2f(x∗))v≥0,∀v∈Rn∇xx2f(x)=[∂2f(x)∂x12∂2f(x)∂x1∂x2⋯∂2f(x)∂x1∂xn∂2f(x)∂x2∂x1∂2f(x)∂x22⋯∂2f(x)∂x2∂xn⋮⋮⋱⋮∂2f(x)∂xn∂x1∂2f(x)∂xn∂x2⋯∂2f(x)∂xn2]←Hessian  Matrix\begin{aligned} & v^t (∇^2f(x^{\ast})) v ≥ 0, ∀v ∈ \mathbb{R}^n \\ \\ &\nabla_{xx}^2 f(x) = \begin{bmatrix} \frac{\partial^2 f(x)}{\partial x_1 ^2} & \frac{\partial^2 f(x)}{\partial x_1 \partial x_2} & \cdots & \frac{\partial^2 f(x)}{\partial x_1 \partial x_n} \\ \frac{\partial^2 f(x)}{\partial x_2 \partial x_1} & \frac{\partial^2 f(x)}{\partial x_2 ^2} & \cdots & \frac{\partial^2 f(x)}{\partial x_2 \partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^2 f(x)}{\partial x_n \partial x_1} & \frac{\partial^2 f(x)}{\partial x_n \partial x_2} & \cdots & \frac{\partial^2 f(x)}{\partial x_n ^2} \\ \end{bmatrix} \leftarrow Hessian \; Matrix \end{aligned}

【局部最大值】的【充要条件】(Necessary and sufficient conditions): x∗x^{\ast} is a local minimum of f(x)f(x) 当且仅当

  1. ff 在 x∗x^{\ast} 处是零梯度 (zero gradient):

    ∇xf(x∗)=0∇_x f(x^{\ast}) = 0

  2. ff 的 Hessian 矩阵在 x∗x^{\ast} 处是半正定的 (positive semi-definite):保证ff 在 x∗x^{\ast} 处是“波谷”

    vt(∇2f(x∗))v≤0,∀v∈Rn∇2f(x)=[∂2f(x)∂x12∂2f(x)∂x1∂x2⋯∂2f(x)∂x1∂xn∂2f(x)∂x2∂x1∂2f(x)∂x22⋯∂2f(x)∂x2∂xn⋮⋮⋱⋮∂2f(x)∂xn∂x1∂2f(x)∂xn∂x2⋯∂2f(x)∂xn2]←Hessian  Matrix\begin{aligned} & v^t (∇^2f(x^*)) v \le 0, ∀v ∈ \mathbb{R}^n \\ \\ \\ & \nabla^2 f(x) = \begin{bmatrix} \frac{\partial^2 f(x)}{\partial x_1 ^2} & \frac{\partial^2 f(x)}{\partial x_1 \partial x_2} & \cdots & \frac{\partial^2 f(x)}{\partial x_1 \partial x_n} \\ \frac{\partial^2 f(x)}{\partial x_2 \partial x_1} & \frac{\partial^2 f(x)}{\partial x_2 ^2} & \cdots & \frac{\partial^2 f(x)}{\partial x_2 \partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^2 f(x)}{\partial x_n \partial x_1} & \frac{\partial^2 f(x)}{\partial x_n \partial x_2} & \cdots & \frac{\partial^2 f(x)}{\partial x_n ^2} \\ \end{bmatrix} \leftarrow Hessian \; Matrix \end{aligned}

Equality Constrainsts

问题提出:

min⁡x∈R2  f(x)s.t.hi(x)=0,  ∀i∈{1,2,...,l}\begin{aligned} & \min_{x∈\mathbb{R}^2} \;f(x) \\ s.t. \quad & h_i (x) = 0, \; ∀i\in \{1,2,...,l\} \end{aligned}

举例:

f(x)=x1+x2s.t.h(x)=x12+x22−2\begin{aligned} & f(x) = x_1 + x_2 \\ s.t.\quad & h(x) = x^2_1 + x^2_2 − 2 \end{aligned}

  1. 可行点 (feasible point) xF∈x_F \in 可行域 (feasible region) 满足约束 h(x)=x12+x22−2=0h(x) = x^2_1 + x^2_2 − 2 = 0,图形上的表示就是在 x12+x22−2x^2_1 + x^2_2 − 2 的圆上

  2. 目标函数 f(x)=x1+x2f(x) = x_1 + x_2 的梯度方向 ∇xf(x)=[1,1]T\nabla_x f(x) = [1,1]^T,所以它的负梯度方向为 −∇xf(x)=[−1,−1]T- \nabla_x f(x) = [-1,-1]^T

  3. 我们找到一个点 xix_i 满足约束:其中 α\alpha 为步长,δxi\delta x_i 为 xix_i 点的运动方向

    • h(xF+αδxi)=0h(x_F + \alpha \delta x_i) = 0(确保在圆上)
    • f(xF+αδx)<f(xF)f(x_F + \alpha \delta x) < f(x_F)(确保移动后的函数值 < 移动前)
    2022-04-23 20.51.01
  4. 一个点 xix_i 要沿着 f(x)f(x) 的最速下降 (the steepest descent) 方向,即负梯度方向为 −∇xf(x)=[−1,−1]T- \nabla_x f(x) = [-1,-1]^T ;但是 xix_i 还要满足等式约束,所以我们要确保 δxi\delta x_i 与 负梯度方向 −∇xf(x)- \nabla_x f(x) 的夹角为锐角,即内积 δxi⋅(−∇xf(xF))>0\delta x_i \cdot (- \nabla_x f(x_F)) > 0

    2022-04-23 21.12.41
    • 至此,我们就找到了满足约的点 xix_i 移动的方向,即与目标函数 f(x)f(x) 负梯度方向的夹角为锐角的约束函数 h(x)h(x) 的切线方向。那么,什么时候停止移动呢?
  5. 从图像中我们可以看到,当目标函数 f(x)f(x) 与约束函数 h(x)h(x) 相切的时候,我们可以取到局部极值点 (临界点 critical point),即 目标函数 f(x)f(x) 的梯度方向与约束函数 h(x)h(x) 的梯度方向共线:

    ∇xf(xF)=μ∇xh(xF)⇒∇xf(xF)+μ∇xh(xF)=0①\nabla_x f(x_F) = \mu \nabla_x h(x_F) \quad \Rightarrow \quad \nabla_x f(x_F) + \mu \nabla_x h(x_F) = 0 \quad ①

    这个条件【确保局部极值】

    2022-04-23 21.30.49

    而此时, xix_i 移动的方向 δxi\delta x_i 始终与约束函数 g(x)g(x) 梯度方向 ∇xh(x)\nabla_x h(x) 正交,即

    δxi⋅μ∇xh(xF)=δxi⋅(−∇xh(xF))\delta x_i \cdot \mu \nabla_x h(x_F) = \delta x_i \cdot (- \nabla_x h(x_F))

    我们重新构造这个优化问题 (P)(\mathcal{P}),并推广到多等式约束:

    min⁡x∈R2  f(x)s.t.hi(x)=0,  ∀i∈{1,2,...,l}\begin{aligned} & \min_{x∈\mathbb{R}^2} \;f(x) \\ s.t. \quad & h_i (x) = 0, \; ∀i\in \{1,2,...,l\} \end{aligned}

    我们定义拉格朗日函数 L\mathcal{L}:

    L(x,μ)=f(x)+∑i=1lμihi(x)\mathcal{L} (x, \mu) = f(x) + \sum_{i=1}^l \mu_i h_i(x)

    当 x∗x^{\ast} 是局部最小值时,存在唯一的 μ∗\mu^{\ast} 满足约束:

    • ∇xL(x∗,μ∗)=0⇐∇xf(xF)+μ∇xh(xF)=0①\nabla_{x} \mathcal{L} (x^{\ast},\mu^{\ast})= 0 \qquad \Leftarrow \qquad \nabla_x f(x_F) + \mu \nabla_x h(x_F) = 0 \quad ①
    • ∇μL(x∗,μ∗)=0⇐∂L(x,μi)∂μi=hi(x)=0满足约束条件\begin{aligned} \nabla_{\mu} \mathcal{L} (x^{\ast},\mu ^{\ast})= 0 \qquad \Leftarrow \qquad \frac {\partial \mathcal{L} (x,\mu_i)}{\partial \mu_i} = h_i(x) = 0\end{aligned} \quad \text{满足约束条件}
    • ∇xx2L(x∗,μ∗)⪰0⇐Hessain matrix 半正定:满足局部极小\nabla_{xx}^2 \mathcal{L}(x^{\ast}, \mu^{\ast}) \succeq 0\qquad \Leftarrow \qquad \text{Hessain matrix 半正定:满足局部极小}

Inequality Constraints

问题提出:

min⁡x∈R2  f(x)s.t.gj(x)≤0,  ∀j∈{1,2,...,m}\begin{aligned} & \min_{x∈\mathbb{R}^2} \;f(x) \\ s.t. \quad & g_j (x) \le 0, \; ∀j\in \{1,2,...,m\} \end{aligned}

Case 1 : 可退化到无约束

举例:

f(x)=x12+x22s.t.h(x)=x12+x22−1\begin{aligned} & f(x) = x_1^2 + x_2^2 \\ s.t.\quad & h(x) = x^2_1 + x^2_2 − 1 \end{aligned}

2022-04-23 22.33.13
  1. 可以从图像中看出,当 f(x)f(x) 不加约束条件时的最优点为 (0,0)(0,0)
  2. 可行点 (feasible point) xF∈x_F \in 可行域 (feasible region) 满足约束 h(x)=x12+x22−1=0h(x) = x^2_1 + x^2_2 − 1 = 0,图形上的表示就是在 x12+x22−1x^2_1 + x^2_2 − 1 的圆上
  3. 当 f(x)f(x) 加入约束条件时的最优点还是 (0,0)(0,0)
  4. 说明有无约束条件对这个问题的求解并没有影响
  5. 此时我们就可以将这个约束优化问题退化成无约束问题:
    • f(x)f(x) 在 x∗x^{\ast} 处是零梯度 (zero gradient):∇xf(x∗)=0∇_x f(x^∗) = 0
    • ff 的 Hessian 矩阵在 x∗x^{\ast} 处是半正定的 (positive definite) :∇xx2f(x∗)⪰0\nabla_{xx}^2 f(x^{\ast}) \succeq 0
Case 2 : 不等式约束

我们更改上一例题的条件:

f(x)=(x1−1.1)2+(x2−1.1)2s.t.h(x)=x12+x22−1\begin{aligned} & f(x) = (x_1 - 1.1)^2 + (x_2 - 1.1)^2 \\ s.t.\quad & h(x) = x^2_1 + x^2_2 − 1 \end{aligned}

2022-04-23 22.49.34
  1. 可以从图像中看出,当 f(x)f(x) 不加约束条件时的最优点为 (1.1,−1.1)(1.1,-1.1)

  2. 可行点 (feasible point) xF∈x_F \in 可行域 (feasible region) 满足约束 h(x)=x12+x22−1=0h(x) = x^2_1 + x^2_2 − 1 = 0,图形上的表示就是在 x12+x22−1x^2_1 + x^2_2 − 1 的圆上

  3. 当 f(x)f(x) 加入约束条件时的最优点并不在原来的 (1.1,−1.1)(1.1,-1.1) 点

  4. 在这种情况下,极值在约束面上,即 g(x∗)=0g(x^{\ast}) = 0,此时就与等式约束条件一致了

  5. 所以参考等式约束问题,最优值出现在目标函数 f(x)f(x) 的梯度方向与约束函数 h(x)h(x) 的梯度方向共线:

    −∇xf(x)=λ∇xg(x),λ>0⇒∇xf(x)+λ∇xg(x)=0②-\nabla_x f(x) = \lambda \nabla_x g(x), \lambda > 0 \quad \Rightarrow \quad \nabla_x f(x) + \lambda \nabla_x g(x) = 0 \quad ②

    2022-04-23 22.57.55
总结两种情况

min⁡x∈R2  f(x)s.t.gj(x)≤0,  ∀j∈{1,2,...,m}\begin{aligned} & \min_{x∈\mathbb{R}^2} \;f(x) \\ s.t. \quad & g_j (x) \le 0, \; ∀j\in \{1,2,...,m\} \end{aligned}

Case 1 : 无约束时的局部极小值在可行域【中】
  1. g(x∗)<0⇐在可行域里g(x^{\ast}) < 0 \qquad \Leftarrow \qquad 在可行域里
  2. ∇xf(x∗)=∇xf(x∗)+λ(=0)∇xg(x∗)=0⇐KKT条件1\nabla_x f(x^{\ast}) = \nabla_x f(x^{\ast}) + \lambda_{(=0)} \nabla_x g(x^{\ast}) = 0 \qquad \Leftarrow \qquad \mathcal{KKT} 条件1
  3. ∇xx2f(x∗)⪰0⇐Hessian矩阵是半正定的\nabla_{xx}^2 f(x^{\ast}) \succeq 0 \qquad \Leftarrow \qquad Hessian 矩阵是半正定的
Case 2 : 无约束时的局部极小值在可行域【外】
  1. g(x∗)=0⇐KKT条件3g(x^{\ast}) = 0 \qquad \Leftarrow \qquad \mathcal{KKT} 条件3
  2. −∇xf(x∗)+λ∇xg(x∗)=0,  λ>0⇐KKT条件1- \nabla_x f(x^{\ast}) + \lambda \nabla_x g(x^{\ast}) = 0, \; \lambda > 0 \qquad \Leftarrow \qquad \mathcal{KKT} 条件1
  3. ∇xx2f(x∗)⪰0⇐Hessian矩阵是半正定的\nabla_{xx}^2 f(x^{\ast}) \succeq 0 \qquad \Leftarrow \qquad Hessian 矩阵是半正定的

KKT\mathcal{KKT} 条件4 :x∗x^{\ast} 是可行点

多等式和多不等式的 KKT\mathcal{KKT} 条件

给定一个函数 ff,不等式约束 g1,...,gmg_1, . . . , g_m 和等式约束 h1,...,hlh_1,..., h_l 都在在定义域 Ω⊂RnΩ ⊂ \mathbb{R}^n 上的优化问题:

(P):  min⁡x∈Ωf(x)s.t.{hi(x)=0,  ∀i∈{1,2,...,l}gj(x)≤0,  ∀j∈{1,2,...,m}\begin{aligned} & (\mathcal{P}):\; \min_{x\in Ω} f(x) \\ s.t. \quad & \left\{\begin{aligned} & h_i(x)=0, \;\forall i \in \{1,2,...,l\} \\ & g_j(x) \le 0 , \; \forall j \in \{1,2,...,m\} \end{aligned}\right. \end{aligned}

我们定义拉格朗日函数 L\mathcal{L}:

L(x,λ,μ)=f(x)+∑i=1lμihi(x)+∑j=1mλjgj(x))\mathcal{L}(x, \lambda, \mu) = f(x) + \sum_{i=1}^l \mu_i h_i(x) + \sum_{j=1}^m \lambda_j g_j(x))

当 x∗x^{\ast} 是局部最小值时,存在唯一的 μ∗\mu ^{\ast} 满足约束:

  • ∇xL(x∗,μ∗,λ∗)=0⇐∇xf(x∗)+∑i=1lμi∇xhi(x∗)+∑j=1mλj∇xgj(x∗)=0\nabla_{x} \mathcal{L} (x^{\ast},\mu ^{\ast}, \lambda^{\ast})= 0 \qquad \Leftarrow \qquad \nabla_x f(x^{\ast}) + \sum_{i=1}^l \mu_i \nabla_x h_i(x^{\ast}) + \sum_{j=1}^m \lambda_j \nabla_x g_j(x^{\ast}) = 0

  • λj∗≥0 for j=1,...,m\lambda^{\ast}_j \ge 0 \text{ for } j=1,...,m

  • λj∗gj(x∗)=0 for j=1,...,m\lambda^{\ast}_j g_j(x^{\ast}) = 0 \text{ for } j=1,...,m

  • gj(x∗)≤0 for j=1,...,mg_j(x^{\ast}) \le 0 \text{ for } j=1,...,m

  • gi(x∗)=0 for i=1,...,lg_i(x^{\ast}) = 0 \text{ for } i=1,...,l

  • ∇xx2L(x∗,λ∗)≻0⇐Hessain matrix 正定:满足局部极小\nabla_{xx}^2 \mathcal{L}(x^{\ast}, \lambda^{\ast}) \succ 0\qquad \Leftarrow \qquad \text{Hessain matrix 正定:满足局部极小}