MathLabs

应用与计算数学

凸优化

在凸集上极小化凸函数:为何每个局部极小都是全局极小、用来验证最优性的KKT条件,以及把困难问题变成较易问题的对偶性。

直观为何形状很重要:凸与非凸

设想在地形中不断朝下坡方向走,以寻找最低点。如果地形呈单一碗状,这种贪心策略无论从何处出发都必能找到真正的最低点。如果地形有多个凹陷、山脊和鞍形山口,同样的策略可能会卡在一个并非最低点的凹陷处。凸优化研究的正是这种「单一碗状」的情形——并精确解释了为何它要容易得多。

一个开口向上的碗状三维曲面(抛物面),在原点处有唯一的最低点;从该点出发,曲面沿每个方向都向上弯曲。
z=x2+y2z = x^2 + y^2:抛物面。每个方向都向上弯曲,因此只有唯一一个最低点。
一个三维鞍形曲面,沿一条水平轴向上弯曲,沿与之垂直的轴向下弯曲,在中间的平坦点相交;该点是临界点但不是极小值点。
z=x2−y2z = x^2 - y^2:鞍面。曲面沿一个轴向上弯曲,沿另一个轴向下弯曲,因此原点处的平坦点既不是极小值也不是极大值。

同样陷阱的一维版本:三次曲线可能有一个谷(局部极小值)并非整体最低点,因为曲线在更远处仍会继续下降。凸性正是排除这种情况的性质。

三次曲线 y 等于 x 的三次方减 3x,从左下方上升,在 x = -1 附近达到局部极大值,下降到 x = 1 附近的局部极小值,然后再次上升;原点处标出了一个拐点。
y=x3−3xy = x^3 - 3x。标记的点分别是局部极大值、局部极小值和拐点——局部极小值并非全局最小值,因为曲线趋于 −∞-\infty,当 x→−∞x \to -\infty 时。

大学凸集与凸函数

定义: 凸集

集合 C⊆RnC \subseteq \mathbb{R}^n 是凸的,是指对任意 x,y∈Cx, y \in C 和任意 θ∈[0,1]\theta \in [0,1],点 θx+(1−θ)y\theta x + (1-\theta) y 也属于 CC:即 CC 中任意两点之间的整条线段都留在 CC 内。

定义: 凸函数

函数 f:C→Rf : C \to \mathbb{R} 定义在凸集 CC 上,称为凸函数,是指对任意 x,y∈Cx, y \in C 和 θ∈[0,1]\theta \in [0,1],都有 f(θx+(1−θ)y)≤θf(x)+(1−θ)f(y)f(\theta x + (1-\theta) y) \le \theta f(x) + (1-\theta) f(y):ff 的图像永远不会位于连接其上任意两点的线段之上。

f(θx+(1−θ)y)≤θf(x)+(1−θ)f(y),θ∈[0,1]f(\theta x + (1-\theta) y) \le \theta f(x) + (1-\theta) f(y), \qquad \theta \in [0,1]

当 ff 二阶可微时,上述条件等价于海森矩阵 ∇2f(x)\nabla^2 f(x) 在 CC 的每一点都半正定——这是多变量版本的 f′′≥0f'' \ge 0。凸优化问题是极小化凸函数 ff 在凸可行集 CC 上的问题(例如 C={x:gi(x)≤0,hj(x)=0}C = \{x : g_i(x) \le 0, h_j(x) = 0\},其中每个 gig_i 为凸函数、每个 hjh_j 为仿射函数)。

若 ff 在凸集 CC 上是凸函数,且 x⋆x^\star 是 ff 在 CC 上的局部极小值点,则 x⋆x^\star 是 ff 在 CC 上的全局极小值点。

为什么成立?

假设 x⋆x^\star 只是局部极小值,而存在某个 y∈Cy \in C 使得 f(y)<f(x⋆)f(y) < f(x^\star)。凸性迫使 ff 在从 x⋆x^\star 到 yy 的线段上、任意接近 x⋆x^\star 处都位于该线段下方:对充分小的 θ>0\theta > 0,有 f(θy+(1−θ)x⋆)≤θf(y)+(1−θ)f(x⋆)<f(x⋆)f(\theta y + (1-\theta) x^\star) \le \theta f(y) + (1-\theta) f(x^\star) < f(x^\star)。这与 x⋆x^\star 是局部极小值矛盾,因为点 θy+(1−θ)x⋆\theta y + (1-\theta)x^\star 可以任意接近 x⋆x^\star。

证明

设 x⋆∈Cx^\star \in C 是局部极小值点,因此存在半径 r>0r > 0 使得对所有满足 ∥z−x⋆∥≤r\|z - x^\star\| \le r 的 z∈Cz \in C 都有 f(z)≥f(x⋆)f(z) \ge f(x^\star)。反证假设存在某点 y∈Cy \in C 满足 f(y)<f(x⋆)f(y) < f(x^\star)。

对任意 θ∈(0,1)\theta \in (0, 1),由集合与函数的凸性可知 zθ=θy+(1−θ)x⋆∈Cz_\theta = \theta y + (1 - \theta)x^\star \in C 且 f(zθ)≤θf(y)+(1−θ)f(x⋆)=f(x⋆)+θ(f(y)−f(x⋆))<f(x⋆)f(z_\theta) \le \theta f(y) + (1 - \theta)f(x^\star) = f(x^\star) + \theta(f(y) - f(x^\star)) < f(x^\star)。

因为 ∥zθ−x⋆∥=θ∥y−x⋆∥\|z_\theta - x^\star\| = \theta \|y - x^\star\|,选取 0<θ≤r∥y−x⋆∥0 < \theta \le \dfrac{r}{\|y - x^\star\|} 即可保证 ∥zθ−x⋆∥≤r\|z_\theta - x^\star\| \le r 同时 f(zθ)<f(x⋆)f(z_\theta) < f(x^\star),这与局部极小性矛盾。

大学约束问题与KKT条件

对于无约束的可微凸函数 ff,x⋆x^\star 是全局极小值当且仅当 ∇f(x⋆)=0\nabla f(x^\star) = 0。当存在约束——极小化 f(x)f(x),满足 gi(x)≤0g_i(x) \le 0(i=1,…,mi=1,\dots,m)和 hj(x)=0h_j(x) = 0(j=1,…,pj=1,\dots,p)——我们为每个不等式配上非负乘子 λi≥0\lambda_i \ge 0、为每个等式配上自由乘子 νj∈R\nu_j \in \mathbb{R},从而引入拉格朗日函数:

L(x,λ,ν)=f(x)+∑i=1mλi gi(x)+∑j=1pνj hj(x)\mathcal{L}(x,\lambda,\nu) = f(x) + \sum_{i=1}^m \lambda_i\, g_i(x) + \sum_{j=1}^p \nu_j\, h_j(x)

对于满足正则性条件(例如斯莱特条件:存在一点使得所有 gi(x)<0g_i(x) < 0 且 hj(x)=0h_j(x) = 0)的可微凸优化问题,点 x⋆x^\star 最优当且仅当存在乘子 λ⋆,ν⋆\lambda^\star, \nu^\star 满足:(1) 驻点条件 ∇xL(x⋆,λ⋆,ν⋆)=0\nabla_x \mathcal{L}(x^\star, \lambda^\star, \nu^\star) = 0;(2) 原始可行性 gi(x⋆)≤0g_i(x^\star) \le 0,hj(x⋆)=0h_j(x^\star) = 0;(3) 对偶可行性 λi⋆≥0\lambda_i^\star \ge 0;以及 (4) 互补松弛性 λi⋆gi(x⋆)=0\lambda_i^\star g_i(x^\star) = 0 对所有 ii 成立。

为什么成立?

互补松弛性表明,不等式约束 gi(x)≤0g_i(x) \le 0 在 x⋆x^\star 处要么不起作用(gi(x⋆)<0g_i(x^\star) < 0,因此边界没有推着 x⋆x^\star,其乘子 λi⋆=0\lambda_i^\star = 0),要么起作用(gi(x⋆)=0g_i(x^\star) = 0,因此边界墙壁可以用力 λi⋆≥0\lambda_i^\star \ge 0 反向推回)。此时驻点条件说明 −∇f(x⋆)-\nabla f(x^\star) 恰好由起作用边界的外法向 ∇gi(x⋆)\nabla g_i(x^\star) 的非负线性组合所平衡。

证明

首先设 (x⋆,λ⋆,ν⋆)(x^\star, \lambda^\star, \nu^\star) 满足KKT条件。由于 λi⋆≥0\lambda_i^\star \ge 0 且各约束函数为凸函数或仿射函数,拉格朗日函数 x↦L(x,λ⋆,ν⋆)x \mapsto \mathcal{L}(x, \lambda^\star, \nu^\star) 是凸函数,故驻点条件 ∇xL(x⋆,λ⋆,ν⋆)=0\nabla_x \mathcal{L}(x^\star, \lambda^\star, \nu^\star) = 0 意味着该点在全空间上极小化拉格朗日函数。

对任意满足 gi(x)≤0g_i(x) \le 0 和 hj(x)=0h_j(x) = 0 的可行点 xx,利用互补松弛性 λi⋆gi(x⋆)=0\lambda_i^\star g_i(x^\star) = 0 可得不等式链 f(x⋆)=L(x⋆,λ⋆,ν⋆)≤L(x,λ⋆,ν⋆)=f(x)+∑i=1mλi⋆gi(x)+∑j=1pνj⋆hj(x)≤f(x)f(x^\star) = \mathcal{L}(x^\star, \lambda^\star, \nu^\star) \le \mathcal{L}(x, \lambda^\star, \nu^\star) = f(x) + \sum_{i=1}^m \lambda_i^\star g_i(x) + \sum_{j=1}^p \nu_j^\star h_j(x) \le f(x),从而证明全局最优性。

反之,在斯莱特条件下,强对偶性保证存在最优对偶乘子使得 f(x⋆)=g(λ⋆,ν⋆)=inf⁡xL(x,λ⋆,ν⋆)≤L(x⋆,λ⋆,ν⋆)=f(x⋆)+∑i=1mλi⋆gi(x⋆)≤f(x⋆)f(x^\star) = g(\lambda^\star, \nu^\star) = \inf_x \mathcal{L}(x, \lambda^\star, \nu^\star) \le \mathcal{L}(x^\star, \lambda^\star, \nu^\star) = f(x^\star) + \sum_{i=1}^m \lambda_i^\star g_i(x^\star) \le f(x^\star)。该链中的两个不等号都必须取等号,从而迫使驻点条件与互补松弛性对每个约束均成立。

例题: 直线上离原点最近的点

极小化 f(x,y)=x2+y2f(x,y) = x^2 + y^2,满足约束 x+y=1x + y = 1。

解答

ff(抛物面)与等式 h(x,y)=x+y−1=0h(x,y) = x + y - 1 = 0(仿射)共同定义了一个凸问题。拉格朗日函数为 L(x,y,ν)=x2+y2+ν(x+y−1)\mathcal{L}(x,y,\nu) = x^2 + y^2 + \nu(x + y - 1)。驻点条件给出 2x+ν=02x + \nu = 0 和 2y+ν=02y + \nu = 0,因此 x=yx = y。代入 x+y=1x + y = 1 得 x⋆=y⋆=12x^\star = y^\star = \tfrac{1}{2},最小值为 f(x⋆,y⋆)=12f(x^\star, y^\star) = \tfrac{1}{2}。由于问题是凸的,该KKT点自动就是全局极小值点。

例题: 利用互补松弛性求解起作用的不等式约束

在不等式约束 g(x)=x−1≤0g(x) = x - 1 \le 0 下极小化 f(x)=(x−3)2f(x) = (x - 3)^2。

解答

构造拉格朗日函数 L(x,λ)=(x−3)2+λ(x−1)\mathcal{L}(x, \lambda) = (x - 3)^2 + \lambda(x - 1)。由于目标函数严格凸且约束为仿射函数,KKT条件是充要条件:驻点条件 ∂L∂x=2(x−3)+λ=0\dfrac{\partial \mathcal{L}}{\partial x} = 2(x - 3) + \lambda = 0、原始可行性 x−1≤0x - 1 \le 0、对偶可行性 λ≥0\lambda \ge 0 以及互补松弛性 λ(x−1)=0\lambda(x - 1) = 0。

由互补松弛性分两种情况检验:若 λ=0\lambda = 0,驻点条件给出 x=3x = 3,这违反了 x−1≤0x - 1 \le 0。

因此约束必定起作用,从而得 x⋆=1x^\star = 1 与 λ⋆=2(3−1)=4>0\lambda^\star = 2(3 - 1) = 4 > 0,满足 λ≥0\lambda \ge 0。唯一全局极小值点为 x⋆=1x^\star = 1,最优值为 f(1)=4f(1) = 4。

进阶对偶性与超越凸性的全局优化

对 L(x,λ,ν)\mathcal{L}(x,\lambda,\nu) 关于 xx(无约束地!)求下确界,就定义了拉格朗日对偶函数 g(λ,ν)=inf⁡xL(x,λ,ν)g(\lambda,\nu) = \inf_x \mathcal{L}(x,\lambda,\nu)。由于 gg 是关于 (λ,ν)(\lambda,\nu) 的仿射函数的逐点下确界,即使原问题不是凸的,gg 也总是凹函数。对任意 λ≥0\lambda \ge 0 和任意可行点 xx,每一项都满足 λigi(x)≤0\lambda_i g_i(x) \le 0 和 νjhj(x)=0\nu_j h_j(x) = 0,因此 g(λ,ν)≤f(x)g(\lambda,\nu) \le f(x)。将 g(λ,ν)g(\lambda,\nu) 在 λ≥0\lambda \ge 0 上极大化就得到对偶问题,其最优值 d⋆d^\star 总是满足弱对偶性:d⋆≤p⋆d^\star \le p^\star(原问题最优值)。当 d⋆=p⋆d^\star = p^\star 时,称强对偶性成立,此时对偶间隙 p⋆−d⋆p^\star - d^\star 为零。

若原线性规划 min⁡{c⊤x:Ax=b,  x≥0}\min\{c^\top x : Ax = b,\; x \ge 0\} 存在最优解 x⋆x^\star,则其对偶问题 max⁡{b⊤y:A⊤y≤c}\max\{b^\top y : A^\top y \le c\} 也存在最优解 y⋆y^\star,且两者的最优值相等:c⊤x⋆=b⊤y⋆c^\top x^\star = b^\top y^\star。

为什么成立?

线性规划是可行集为多面体的凸问题;对于多面体约束无需内点假设,分离超平面定理(法卡斯引理)保证了存在使对偶间隙为零的对偶乘子 y⋆y^\star。对于一般凸规划,只要满足斯莱特条件,强对偶性就成立。

证明

对任意满足 Ax=bAx = b、x≥0x \ge 0 的原始可行向量和任意满足 A⊤y≤cA^\top y \le c 的对偶可行向量,取内积即得弱对偶性:b⊤y=(Ax)⊤y=x⊤(A⊤y)≤x⊤c=c⊤xb^\top y = (Ax)^\top y = x^\top(A^\top y) \le x^\top c = c^\top x。

用乘子 s≥0s \ge 0 构造拉格朗日函数 L(x,y,s)=c⊤x+y⊤(b−Ax)−s⊤x=b⊤y+(c−A⊤y−s)⊤x\mathcal{L}(x, y, s) = c^\top x + y^\top(b - Ax) - s^\top x = b^\top y + (c - A^\top y - s)^\top x。对无约束原始变量求下确界,仅当 c−A⊤y−s=0c - A^\top y - s = 0 时才得到有限对偶值,从而恢复对偶约束与对偶目标函数 g(y,s)=b⊤yg(y, s) = b^\top y。

若 x⋆x^\star 是最优值为 p⋆=c⊤x⋆p^\star = c^\top x^\star 的原始最优解,由法卡斯引理(多面体锥的超平面分离)保证存在满足 A⊤y⋆≤cA^\top y^\star \le c 且 b⊤y⋆≥p⋆b^\top y^\star \ge p^\star 的向量 y⋆y^\star。结合弱对偶性即得 b⊤y⋆=c⊤x⋆b^\top y^\star = c^\top x^\star。

Rn\mathbb{R}^n 中光滑凸优化的三类算法
方法类别每步所用信息每步开销达到精度 ε\varepsilon 的步数
梯度法 / 加速梯度法(Nesterov)一阶(∇f\nabla f)O(n)O(n)O(1/ε)O(1/\varepsilon) 或 O(1/ε)O(1/\sqrt{\varepsilon})
牛顿法二阶(∇f,∇2f\nabla f, \nabla^2 f)O(n3)O(n^3)(线性方程组)局部 O(log⁡log⁡(1/ε))O(\log\log(1/\varepsilon))
内点法(障碍函数法)在 −∑ln⁡(−gi)-\sum \ln(-g_i) 上用二阶信息每个牛顿步 O(n3)O(n^3)O(m log⁡(1/ε))O(\sqrt{m}\,\log(1/\varepsilon))

下列哪个函数在整个 R\mathbb{R} 上是凸函数?

在凸优化问题中,一个局部极小值点

在KKT条件中,互补松弛性 λi⋆gi(x⋆)=0\lambda_i^\star g_i(x^\star) = 0 的含义是

对于一个可行且有界最优的线性规划,强对偶性告诉我们

参考文献

  1. Stephen Boyd, Lieven Vandenberghe (2004). Convex Optimization
  2. Yurii Nesterov (2004). Introductory Lectures on Convex Optimization: A Basic Course
  3. Harold W. Kuhn, Albert W. Tucker (1951). Nonlinear Programming · DOI:10.1006/hmat.2000.2289
  4. Sébastien Bubeck (2015). Convex Optimization: Algorithms and Complexity · arXiv:1405.4980