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

参考资料:

  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 上的优化问题:

minxΩ  f(x)s.t.{igi(x)0jhj(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):

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

  1. ffxx^{\ast} 处是零梯度 (zero gradient):

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

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

    vt(2f(x))v0,vRnxx2f(x)=[2f(x)x122f(x)x1x22f(x)x1xn2f(x)x2x12f(x)x222f(x)x2xn2f(x)xnx12f(x)xnx22f(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): xx^{\ast} is a local minimum of f(x)f(x) 当且仅当

  1. ffxx^{\ast} 处是零梯度 (zero gradient):

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

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

    vt(2f(x))v0,vRn2f(x)=[2f(x)x122f(x)x1x22f(x)x1xn2f(x)x2x12f(x)x222f(x)x2xn2f(x)xnx12f(x)xnx22f(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

问题提出:

minxR2  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+x222\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) xFx_F \in 可行域 (feasible region) 满足约束 h(x)=x12+x222=0h(x) = x^2_1 + x^2_2 − 2 = 0,图形上的表示就是在 x12+x222x^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_ixix_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}),并推广到多等式约束:

    minxR2  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)

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

    • xL(x,μ)=0xf(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,μ)=0L(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,μ)0Hessain matrix 半正定:满足局部极小\nabla_{xx}^2 \mathcal{L}(x^{\ast}, \mu^{\ast}) \succeq 0\qquad \Leftarrow \qquad \text{Hessain matrix 半正定:满足局部极小}

Inequality Constraints

问题提出:

minxR2  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+x221\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) xFx_F \in 可行域 (feasible region) 满足约束 h(x)=x12+x221=0h(x) = x^2_1 + x^2_2 − 1 = 0,图形上的表示就是在 x12+x221x^2_1 + x^2_2 − 1 的圆上
  3. f(x)f(x) 加入约束条件时的最优点还是 (0,0)(0,0)
  4. 说明有无约束条件对这个问题的求解并没有影响
  5. 此时我们就可以将这个约束优化问题退化成无约束问题:
    • f(x)f(x)xx^{\ast} 处是零梯度 (zero gradient):xf(x)=0∇_x f(x^∗) = 0
    • ff 的 Hessian 矩阵在 xx^{\ast} 处是半正定的 (positive definite) :xx2f(x)0\nabla_{xx}^2 f(x^{\ast}) \succeq 0
Case 2 : 不等式约束

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

f(x)=(x11.1)2+(x21.1)2s.t.h(x)=x12+x221\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) xFx_F \in 可行域 (feasible region) 满足约束 h(x)=x12+x221=0h(x) = x^2_1 + x^2_2 − 1 = 0,图形上的表示就是在 x12+x221x^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),λ>0xf(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
总结两种情况

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

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

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

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

(P):  minxΩ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))

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

  • xL(x,μ,λ)=0xf(x)+i=1lμixhi(x)+j=1mλjxgj(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

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

  • λjgj(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,λ)0Hessain matrix 正定:满足局部极小\nabla_{xx}^2 \mathcal{L}(x^{\ast}, \lambda^{\ast}) \succ 0\qquad \Leftarrow \qquad \text{Hessain matrix 正定:满足局部极小}