应用与计算数学
凸优化
在凸集上极小化凸函数:为何每个局部极小都是全局极小、用来验证最优性的KKT条件,以及把困难问题变成较易问题的对偶性。
直观为何形状很重要:凸与非凸
设想在地形中不断朝下坡方向走,以寻找最低点。如果地形呈单一碗状,这种贪心策略无论从何处出发都必能找到真正的最低点。如果地形有多个凹陷、山脊和鞍形山口,同样的策略可能会卡在一个并非最低点的凹陷处。凸优化研究的正是这种「单一碗状」的情形——并精确解释了为何它要容易得多。
z=x2+y2:抛物面。每个方向都向上弯曲,因此只有唯一一个最低点。z=x2−y2:鞍面。曲面沿一个轴向上弯曲,沿另一个轴向下弯曲,因此原点处的平坦点既不是极小值也不是极大值。同样陷阱的一维版本:三次曲线可能有一个谷(局部极小值)并非整体最低点,因为曲线在更远处仍会继续下降。凸性正是排除这种情况的性质。
y=x3−3x。标记的点分别是局部极大值、局部极小值和拐点——局部极小值并非全局最小值,因为曲线趋于 −∞,当 x→−∞ 时。大学凸集与凸函数
定义: 凸集
集合 C⊆Rn 是凸的,是指对任意 x,y∈C 和任意 θ∈[0,1],点 θx+(1−θ)y 也属于 C:即 C 中任意两点之间的整条线段都留在 C 内。
定义: 凸函数
函数 f:C→R 定义在凸集 C 上,称为凸函数,是指对任意 x,y∈C 和 θ∈[0,1],都有 f(θx+(1−θ)y)≤θf(x)+(1−θ)f(y):f 的图像永远不会位于连接其上任意两点的线段之上。
f(θx+(1−θ)y)≤θf(x)+(1−θ)f(y),θ∈[0,1] 当 f 二阶可微时,上述条件等价于海森矩阵 ∇2f(x) 在 C 的每一点都半正定——这是多变量版本的 f′′≥0。凸优化问题是极小化凸函数 f 在凸可行集 C 上的问题(例如 C={x:gi(x)≤0,hj(x)=0},其中每个 gi 为凸函数、每个 hj 为仿射函数)。
若 f 在凸集 C 上是凸函数,且 x⋆ 是 f 在 C 上的局部极小值点,则 x⋆ 是 f 在 C 上的全局极小值点。
为什么成立?
假设 x⋆ 只是局部极小值,而存在某个 y∈C 使得 f(y)<f(x⋆)。凸性迫使 f 在从 x⋆ 到 y 的线段上、任意接近 x⋆ 处都位于该线段下方:对充分小的 θ>0,有 f(θy+(1−θ)x⋆)≤θf(y)+(1−θ)f(x⋆)<f(x⋆)。这与 x⋆ 是局部极小值矛盾,因为点 θy+(1−θ)x⋆ 可以任意接近 x⋆。
证明
设 x⋆∈C 是局部极小值点,因此存在半径 r>0 使得对所有满足 ∥z−x⋆∥≤r 的 z∈C 都有 f(z)≥f(x⋆)。反证假设存在某点 y∈C 满足 f(y)<f(x⋆)。
对任意 θ∈(0,1),由集合与函数的凸性可知 zθ=θy+(1−θ)x⋆∈C 且 f(zθ)≤θf(y)+(1−θ)f(x⋆)=f(x⋆)+θ(f(y)−f(x⋆))<f(x⋆)。
因为 ∥zθ−x⋆∥=θ∥y−x⋆∥,选取 0<θ≤∥y−x⋆∥r 即可保证 ∥zθ−x⋆∥≤r 同时 f(zθ)<f(x⋆),这与局部极小性矛盾。
大学约束问题与KKT条件
对于无约束的可微凸函数 f,x⋆ 是全局极小值当且仅当 ∇f(x⋆)=0。当存在约束——极小化 f(x),满足 gi(x)≤0(i=1,…,m)和 hj(x)=0(j=1,…,p)——我们为每个不等式配上非负乘子 λi≥0、为每个等式配上自由乘子 νj∈R,从而引入拉格朗日函数:
L(x,λ,ν)=f(x)+i=1∑mλigi(x)+j=1∑pνjhj(x) 对于满足正则性条件(例如斯莱特条件:存在一点使得所有 gi(x)<0 且 hj(x)=0)的可微凸优化问题,点 x⋆ 最优当且仅当存在乘子 λ⋆,ν⋆ 满足:(1) 驻点条件 ∇xL(x⋆,λ⋆,ν⋆)=0;(2) 原始可行性 gi(x⋆)≤0,hj(x⋆)=0;(3) 对偶可行性 λi⋆≥0;以及 (4) 互补松弛性 λi⋆gi(x⋆)=0 对所有 i 成立。
为什么成立?
互补松弛性表明,不等式约束 gi(x)≤0 在 x⋆ 处要么不起作用(gi(x⋆)<0,因此边界没有推着 x⋆,其乘子 λi⋆=0),要么起作用(gi(x⋆)=0,因此边界墙壁可以用力 λi⋆≥0 反向推回)。此时驻点条件说明 −∇f(x⋆) 恰好由起作用边界的外法向 ∇gi(x⋆) 的非负线性组合所平衡。
证明
首先设 (x⋆,λ⋆,ν⋆) 满足KKT条件。由于 λi⋆≥0 且各约束函数为凸函数或仿射函数,拉格朗日函数 x↦L(x,λ⋆,ν⋆) 是凸函数,故驻点条件 ∇xL(x⋆,λ⋆,ν⋆)=0 意味着该点在全空间上极小化拉格朗日函数。
对任意满足 gi(x)≤0 和 hj(x)=0 的可行点 x,利用互补松弛性 λi⋆gi(x⋆)=0 可得不等式链 f(x⋆)=L(x⋆,λ⋆,ν⋆)≤L(x,λ⋆,ν⋆)=f(x)+∑i=1mλi⋆gi(x)+∑j=1pνj⋆hj(x)≤f(x),从而证明全局最优性。
反之,在斯莱特条件下,强对偶性保证存在最优对偶乘子使得 f(x⋆)=g(λ⋆,ν⋆)=infxL(x,λ⋆,ν⋆)≤L(x⋆,λ⋆,ν⋆)=f(x⋆)+∑i=1mλi⋆gi(x⋆)≤f(x⋆)。该链中的两个不等号都必须取等号,从而迫使驻点条件与互补松弛性对每个约束均成立。
例题: 直线上离原点最近的点
极小化 f(x,y)=x2+y2,满足约束 x+y=1。
解答
f(抛物面)与等式 h(x,y)=x+y−1=0(仿射)共同定义了一个凸问题。拉格朗日函数为 L(x,y,ν)=x2+y2+ν(x+y−1)。驻点条件给出 2x+ν=0 和 2y+ν=0,因此 x=y。代入 x+y=1 得 x⋆=y⋆=21,最小值为 f(x⋆,y⋆)=21。由于问题是凸的,该KKT点自动就是全局极小值点。
例题: 利用互补松弛性求解起作用的不等式约束
在不等式约束 g(x)=x−1≤0 下极小化 f(x)=(x−3)2。
解答
构造拉格朗日函数 L(x,λ)=(x−3)2+λ(x−1)。由于目标函数严格凸且约束为仿射函数,KKT条件是充要条件:驻点条件 ∂x∂L=2(x−3)+λ=0、原始可行性 x−1≤0、对偶可行性 λ≥0 以及互补松弛性 λ(x−1)=0。
由互补松弛性分两种情况检验:若 λ=0,驻点条件给出 x=3,这违反了 x−1≤0。
因此约束必定起作用,从而得 x⋆=1 与 λ⋆=2(3−1)=4>0,满足 λ≥0。唯一全局极小值点为 x⋆=1,最优值为 f(1)=4。
进阶对偶性与超越凸性的全局优化
对 L(x,λ,ν) 关于 x(无约束地!)求下确界,就定义了拉格朗日对偶函数 g(λ,ν)=infxL(x,λ,ν)。由于 g 是关于 (λ,ν) 的仿射函数的逐点下确界,即使原问题不是凸的,g 也总是凹函数。对任意 λ≥0 和任意可行点 x,每一项都满足 λigi(x)≤0 和 νjhj(x)=0,因此 g(λ,ν)≤f(x)。将 g(λ,ν) 在 λ≥0 上极大化就得到对偶问题,其最优值 d⋆ 总是满足弱对偶性:d⋆≤p⋆(原问题最优值)。当 d⋆=p⋆ 时,称强对偶性成立,此时对偶间隙 p⋆−d⋆ 为零。
若原线性规划 min{c⊤x:Ax=b,x≥0} 存在最优解 x⋆,则其对偶问题 max{b⊤y:A⊤y≤c} 也存在最优解 y⋆,且两者的最优值相等:c⊤x⋆=b⊤y⋆。
为什么成立?
线性规划是可行集为多面体的凸问题;对于多面体约束无需内点假设,分离超平面定理(法卡斯引理)保证了存在使对偶间隙为零的对偶乘子 y⋆。对于一般凸规划,只要满足斯莱特条件,强对偶性就成立。
证明
对任意满足 Ax=b、x≥0 的原始可行向量和任意满足 A⊤y≤c 的对偶可行向量,取内积即得弱对偶性:b⊤y=(Ax)⊤y=x⊤(A⊤y)≤x⊤c=c⊤x。
用乘子 s≥0 构造拉格朗日函数 L(x,y,s)=c⊤x+y⊤(b−Ax)−s⊤x=b⊤y+(c−A⊤y−s)⊤x。对无约束原始变量求下确界,仅当 c−A⊤y−s=0 时才得到有限对偶值,从而恢复对偶约束与对偶目标函数 g(y,s)=b⊤y。
若 x⋆ 是最优值为 p⋆=c⊤x⋆ 的原始最优解,由法卡斯引理(多面体锥的超平面分离)保证存在满足 A⊤y⋆≤c 且 b⊤y⋆≥p⋆ 的向量 y⋆。结合弱对偶性即得 b⊤y⋆=c⊤x⋆。
Rn 中光滑凸优化的三类算法| 方法类别 | 每步所用信息 | 每步开销 | 达到精度 ε 的步数 |
|---|
| 梯度法 / 加速梯度法(Nesterov) | 一阶(∇f) | O(n) | O(1/ε) 或 O(1/ε) |
| 牛顿法 | 二阶(∇f,∇2f) | O(n3)(线性方程组) | 局部 O(loglog(1/ε)) |
| 内点法(障碍函数法) | 在 −∑ln(−gi) 上用二阶信息 | 每个牛顿步 O(n3) | O(mlog(1/ε)) |
下列哪个函数在整个 R 上是凸函数?
在凸优化问题中,一个局部极小值点
在KKT条件中,互补松弛性 λi⋆gi(x⋆)=0 的含义是
对于一个可行且有界最优的线性规划,强对偶性告诉我们