凸优化深度指南
文档概述
凸优化是现代机器学习与统计推断的理论支柱。本指南系统介绍凸集与凸函数的基本理论、典型优化问题(LP、QP、SOCP、SDP)、对偶理论与KKT条件、梯度下降法及其收敛性分析、投影方法与约束处理、以及各类一阶二阶优化方法的深入讨论。附录包含变分不等式、分散式优化、凸优化的计算复杂性等高级专题。
关键词
| 序号 | 关键词 | 英文 | 核心概念 |
|---|---|---|---|
| 1 | 凸集 | Convex Set | |
| 2 | 凸函数 | Convex Function | |
| 3 | 线性规划 | Linear Programming | |
| 4 | 二次规划 | Quadratic Programming | |
| 5 | KKT条件 | Karush-Kuhn-Tucker | 最优性的必要条件 |
| 6 | 对偶问题 | Dual Problem | 原问题的下界优化 |
| 7 | 梯度下降 | Gradient Descent | |
| 8 | 收敛率 | Convergence Rate | |
| 9 | Lipschitz连续 | Lipschitz Continuity | |
| 10 | 强凸 | Strong Convexity | 凸 |
| 11 | Frank-Wolfe | Frank-Wolfe Algorithm | 线性约束优化的投影自由方法 |
| 12 | 拉格朗日 | Lagrangian | |
| 13 | 半定规划 | SDP | |
| 14 | 二阶锥规划 | SOCP | |
| 15 | 原对偶方法 | Primal-Dual | 同时追踪原变量和对偶变量的算法 |
| 16 | 近端方法 | Proximal Methods | |
| 17 | 交替方向乘子法 | ADMM | 分布式凸优化的经典框架 |
| 18 | 镜像下降 | Mirror Descent | 通过Bregman散度定义的梯度类方法 |
| 19 | Nesterov加速 | Nesterov Acceleration | 达到 收敛率 |
| 20 | 坐标下降 | Coordinate Descent | 沿坐标轴方向依次优化 |
一、凸集与凸函数
1.1 凸集的定义与性质
凸集:集合 是凸的,当且仅当对任意 和 ,有:
几何直观:凸集内任意两点的线段完全包含在集合内。换言之,用直尺连接凸集内任意两点,整条线段都不会”跑出去”。
凸集的代数理解:从仿射几何的角度,凸集可以视为所有仿射包的子集。对于任意有限点集 ,其凸包(convex hull)定义为:
凸包是包含给定点的最小凸集。
常见的凸集:
- 超平面:,维数为
- 半空间:(闭半空间)或 (开半空间)
- 多面体:有限个半空间和超平手的交集,记作
- 范数球:(任意范数 )
- 范数锥:
- 仿射集:,仿射集既是凸集也是凸锥的平移
- 正象限:
- 概率单纯形:
- 半正定锥:,这是一个自对偶锥
仿射变换保凸:若 是凸集,则其仿射像 和仿射逆像 都是凸集,其中 。
透视变换:透视函数 定义为 ,定义域要求 。透视变换将凸锥映射为凸集(反之,将凸集提升为凸锥)。
凸集的运算保凸性:
- 交集:凸集的交集仍是凸集。这是最重要的保凸运算之一。例如,多面体是多半空间的交集。
- 和:如果 凸,则 凸( Minkowski 和)。
- 直积: 凸。
- 仿射变换: 保持凸性。
- 透视变换:保持凸性。
- 线性分式变换:,定义域为 ,保持凸性。
凸集示例
- 单位球 是凸的。证明:任取 ,则 。
- 三角形的内部及边界是凸的。
- 圆盘(平面内)是凸的。
- 环形区域 不是凸的(因为不包含原点到边界点的线段)。
- 任意椭球 是凸的,其中 。
凸集的分离定理:分离定理是凸分析中最深刻的结果之一,也是对偶理论的基石。
- 超平面分离定理:若 和 是不相交的凸集(即 ),则存在超平面将它们分离: 使得 对所有 成立, 对所有 成立。
- 严格分离定理:若 和 是闭凸集且 ,则在适当条件下可严格分离。
- 支撑超平面定理:每个凸集的边界点都有支撑超平面。
这些定理的几何直觉是:两个互不相交的凸集之间可以”塞”进一张无限薄的纸把它们隔开。
1.2 凸函数的定义
凸函数:函数 是凸的,当且仅当 是凸集,且对任意 和 :
几何意义:函数图像上任意弦线位于函数图像上方。换言之,函数的 epigraph(上境图) 是 中的凸集——这是凸函数的一个等价定义。
严格凸:若上述不等式在 和 时严格成立,即 。
凹函数: 是凸的。
拟凸函数:函数 是拟凸的,若其所有下水平集 是凸集。拟凸不蕴含凸,反之亦然。例如, 既是凸的也是拟凸的,但 在 时是拟凸的(非严格凸)但不是凸的。
对数凸函数:函数 是对数凸的,若 且 是凸的。对数凸函数一定是凸的,但凸函数不一定是严格凸的。典型例子:Gamma 函数在正实轴上是对数凸的(由 Bohr-Mollerup 定理可证)。
Jensen不等式:凸函数的期望形式。设 是随机变量, 是凸函数,则 。离散形式:对任意 和 ,:
Jensen 不等式是概率论、信息论和统计学中许多重要不等式的源头。例如,利用 Jensen 不等式可立即推导出 AM-GM 不等式(令 )。
1.3 凸函数的判别与性质
一阶条件:若 可微,则 凸当且仅当
即函数位于任一点切平面的上方(支持超平面性质)。这个不等式称为梯度不等式,是凸函数的核心特征。
二阶条件:若 二阶可微,则 凸当且仅当其Hessian矩阵半正定:
几何直觉:Hessian 半正定意味着函数的曲率处处非负,即函数图形处处向上弯曲。
注意可微性假设
对于不可微的凸函数,一阶和二阶条件不适用,但可以用次梯度(subgradient)来描述。凸函数在每一点都存在次梯度。次梯度集为 。
常见的凸函数:
- 指数函数
- 负对数 (在 ),是严格凸的
- 范数 (任意 ),是凸的但非严格凸
- 二次函数 ()
- 最大函数
- 幂函数 在 区间: 时凸, 时凹
- 指数和函数 (log-sum-exp),是 上可微凸函数的典型例子
- 几何平均 ,在正象限上是对数凹的
- 行列式 在正定矩阵锥上是凹函数
凸函数的运算:
- 非负加权和:若 凸,,则 凸。
- 仿射复合:若 凸,则 凸。
- 逐点上确界:凸函数族的逐点上确界是凸的:。
- 最小化:凸函数在凸集上的最小化可能失去凸性(但仍是拟凸的)。
- 透视变换:若 凸,则 (定义域 )凸。
凸函数的重要性
凸优化问题的局部最优解即全局最优解。这一性质使得凸问题在理论上”容易”求解——只需找到局部最优即可。这是凸优化区别于一般非凸优化的根本特征。
1.4 函数的共轭与Fenchel对偶
共轭函数(Conjugate Function):给定函数 ,其 Fenchel 共轭定义为:
几何直觉: 是超平面 在 上取上确界时,超平面在 轴方向的截距。
共轭的性质:
- 恒为凸函数(作为逐点上确界)。
- Fenchel-Moreau 定理:若 是闭凸函数,则 。
- Legendre 变换关系:若 可微且严格凸,则 。
Fenchel 不等式:对任意 ,有:
等号成立当且仅当 (或 )。
共轭函数示例
- 二次函数:(),则 。
- 范数:,则 ,即单位范数对偶球的指示函数。
- 负对数:(),则 ()。
二、典型优化问题
2.1 线性规划(LP)
线性规划的标准形式:
或不等式形式:
线性规划的几何:目标函数定义一族平行超平面 。约束定义一个多面体(凸集)。最优解出现在多面体的顶点(extreme point)。若最优解存在,则至少有一个顶点是最优的。
单纯形法(Dantzig, 1947):通过在顶点间移动来寻找最优解。基本思想:从一个顶点出发,若存在相邻顶点的目标函数值更优,则沿边移动到该顶点;重复直到不存在改进方向。最坏情况时间复杂度为指数级(),但在实践中通常很快,因为”平均”迭代次数与约束数和变量数呈线性关系。
椭球法(Khachiyan, 1979):首个多项式时间算法,时间复杂度 ,其中 是输入编码长度。虽然理论上有突破,但实际效率不如单纯形法。
内点法:通过障碍函数在多面体内部移动,多项式时间复杂度 。现代LP求解器(如CPLEX、Gurobi)主要基于内点法和单纯形法的结合。
对偶理论:LP 的对偶问题为:
弱对偶性: 对所有原-对偶可行解对 成立。若存在可行解使得等号成立(强对偶),则两者均达到最优。
diet problem(饮食问题)
最小化成本选择食物满足营养需求: 其中 是食物 的量, 是单价, 是营养 的含量, 是每日需求。
运输问题是 LP 的另一个经典例子:在多个供应点和多个需求点之间安排运输,使得总运输成本最小,同时满足供需约束。
2.2 二次规划(QP)
二次规划:
当 (半正定)时,问题为凸二次规划,全局最优可达。
当 不定或负定时,问题是非凸的,可能存在多个局部最优。
等效于:最小二乘的正则化形式
展开后得到 ,故是凸 QP。
KKT条件简化(无不等式约束时):
这是闭式解。但当 很大时,直接求逆 代价过高,需要迭代方法。
活跃约束集法(Active Set Method):QP 的经典求解方法。假设某些不等式约束在最优解处是紧的(活跃的),将它们转化为等式约束,然后求解。迭代地在活跃集上切换,直到找到最优解。
序列最小化规划(SMO):SVM 训练中使用的特殊 QP 分解算法。将大的 QP 问题分解为一系列小的二变量 QP 子问题。
2.3 二阶锥规划(SOCP)
二阶锥规划(Second-Order Cone Programming)是 LP 和 QP 的推广:
二阶锥约束 可以理解为在 维空间中的旋转二阶锥约束。
SOCP 包含的问题类型:
- LP:令 , 退化为线性约束
- QP:设 ,,可转化
- 鲁棒 LP:不确定约束 可以建模为 SOCP
应用场景:
- 金融中的均值-方差投资组合优化(最小化方差,受线性预算约束)
- 滤波器设计
- 天线阵列波束成形
- 鲁棒优化
2.4 半定规划(SDP)
半定规划(Semidefinite Programming)是向量空间到矩阵空间的推广:
其中 是 Frobenius 内积, 表示 是半正定矩阵。
SDP 与 SOCP 的关系:SOCP 是 SDP 的特例。实际上,二阶锥可以嵌入到半正定锥中:。
SDP 的应用:
- 组合优化松弛:MAX-CUT、图着色等问题可通过 SDP 松弛获得近似比保证(Goemans-Williamson 算法)。
- 控制理论:线性矩阵不等式(LMI)可转化为 SDP。
- 欧氏距离几何:传感器网络定位、蛋白质结构预测。
- 多项式优化:通过 Sum-of-Squares (SOS) 方法转化为 SDP。
Goemans-Williamson MAX-CUT 松弛
MAX-CUT 问题:将图的顶点划分为两部分,最大化cut边的数量。SDP 松弛为: Goemans 和 Williamson 证明:SDP 解的随机舍入给出 倍近似比(在某些条件下)。这是一个里程碑式的理论结果。
SDP 的求解:内点法可达 复杂度,但直接内点法无法处理大规模问题。大规模 SDP 需要:
- 一阶方法:交替方向法(ADM)、增广拉格朗日法
- 图结构利用:稀疏 SDP、 Chordal 扩展
- 低秩结构:利用解的低秩表示
2.5 锥规划统一框架
LP、SOCP、SDP 都可以统一在锥规划的框架下:
其中 是闭凸锥。取不同的锥得到不同的特例:
- :LP
- :SOCP
- :SDP
自对偶性:许多锥规划问题具有自对偶结构,这为设计算法提供了方便。
三、对偶理论与KKT条件
3.1 拉格朗日函数
考虑标准优化问题(原问题):
其中 是目标函数, 是不等式约束, 是等式约束(通常约定 为仿射函数)。
拉格朗日函数:
其中 (不等式约束的乘子),(等式约束的乘子,可以取任意符号)。
3.2 拉格朗日对偶函数
对偶函数定义为拉格朗日函数关于 的下确界:
其中 。
若 关于 无下界,则 。
对偶函数的性质(弱对偶性):
即对偶函数给出原问题最优值 的下界。这个不等式的证明非常直接:对于任意原始可行解 ,由于 和 ,有 ,取下确界即得 。
对偶函数的几何解释:对偶函数可以理解为一族参数化的线性下界函数的逐点上确界。拉格朗日乘子 参数化了这些线性下界。
线性规划的对偶函数
原问题: 对偶函数: 因此对偶问题是 ,与之前的标准形式一致。
3.3 对偶问题
对偶问题(拉格朗日对偶):
对偶问题的最优值记为 ,恒有 (弱对偶性)。差值 称为对偶间隙(duality gap)。
强对偶性:在某些条件下,,即对偶间隙为零。强对偶成立的充分条件包括:
- Slater 条件(约束品性):存在严格可行的 ,即对于凸问题( 凸, 仿射), 使得 (而非 )且 。对于非凸问题,Slater 条件也是充分条件(但那时我们称其为”广义 Slater 条件”)。
- 线性约束独立(LCQ):等式约束 线性且梯度线性无关。
- Mangasarian-Fromovitz 约束规范(MFCQ):比 Slater 条件更弱一些。
对偶定理:对于凸规划,当 Slater 条件满足时,强对偶性成立。这是凸优化的核心结果之一。
3.4 KKT条件
对于最优解 和对偶变量 ,KKT条件为:
- 原始可行性:,
- 对偶可行性:
- 互补松弛:(即每个乘子与其对应约束的乘积为零)
- 拉格朗日平稳性:
KKT的意义
在强对偶性成立的条件下,KKT条件是 为原问题最优解的充要条件。这使得我们可以将约束优化问题转化为解方程组。对于凸问题(且满足约束品性),KKT条件是最优性的充要条件;对于一般非凸问题,KKT条件是最优性的必要条件。
互补松弛的深入理解:对于每个不等式约束 ,有两种情况:
- 若 (约束未活跃),则 (乘子为零)
- 若 ,则 (约束在边界处)
这体现了”只对活跃约束付钱”的经济学直觉。
几何解释:在最优解处,梯度 可以表示为约束梯度的非负线性组合(在仿射等式约束子空间内),且约束在边界处必须”夹住”梯度方向。
KKT条件应用:支持向量机
SVM 原问题: KKT 条件给出 ( 是支持向量的线性组合), (间隔约束的对偶约束), 且 ,互补松弛 。 这导致稀疏解:只有支持向量()的 ,其他 。
3.5 鞍点理论
(狭义) 鞍点(Saddle Point):点 是 的鞍点,当且仅当:
鞍点与最优性: 是拉格朗日函数鞍点的充要条件是:
- 是原始可行解
- 是对偶可行解
- 原-对偶目标函数值相等(即 ,对偶间隙为零)
因此,鞍点存在等价于强对偶性成立且存在最优解。
四、梯度下降与收敛性分析
4.1 梯度下降法
梯度下降是最基本的迭代优化方法:
其中 是步长(学习率)。
收敛性分析的基本假设:
- Lipschitz连续梯度:,即Hessian有界:(若 二阶可微)
- 步长选择:固定步长 或随迭代变化
梯度下降的一步分析:由 Taylor 展开和 Lipschitz 条件:
取 ,有 ,故函数值单调下降。
4.2 凸函数的收敛率
一般凸函数(Lipschitz连续,步长 ):
对于凸函数, 是梯度方法能达到的最优收敛率(复杂度下界为 ?——不对,这是 Nesterov 加速后的结果,无加速的下界是 )。
强凸函数:设 -强凸,即 是凸的。强凸性意味着函数”下有二次下界”:
取 ,则:
收敛率为 ,即线性收敛(每一步误差乘以一个小于1的常数因子)。这意味着为达到 精度,需要 次迭代。
条件数的影响
收敛速度依赖于条件数 。条件数越大,收敛越慢。这解释了为什么预处理(preconditioning)可以加速优化——通过改善条件数来加速收敛。
收敛率总结:
| 函数类型 | 假设 | 收敛率 | 迭代复杂度 |
|---|---|---|---|
| 一般凸 | Lipschitz | ||
| 凸 + 平滑 | Lipschitz | ||
| 强凸 + 平滑 | -强凸, Lipschitz | ||
| 强凸 + 平滑 + 加速 | Nesterov |
4.3 非凸函数的收敛性
对于非凸函数,梯度下降保证:
- 梯度范数收敛到0:
- 收敛到稳定点(梯度为零的点),不一定是全局最优
在深度学习中,损失函数是非凸的,但梯度下降(配合 SGD)仍能有效找到好的局部最优解。实践中发现,这些局部最优解往往接近全局最优——可能因为在高维空间中,局部最优和全局最优的函数值差距不大(参见 Choromanska et al. 2015 的理论分析)。
非凸优化的挑战:
- 可能收敛到鞍点而非局部极小
- 存在”坏”局部最优,其函数值远高于全局最优
- 景观(landscape)可能非常复杂
逃离鞍点:使用随机梯度下降(SGD)的噪声可以帮助逃离鞍点。也有方法主动处理鞍点,如带有扰动的梯度下降。
4.4 随机梯度下降(SGD)
当目标函数是有限和问题 时,计算全梯度 代价高昂()。SGD 在每步只使用一个(或一小批)样本的梯度:
其中 是基于随机样本 的梯度估计,满足 。
收敛性:SGD 在适当步长衰减策略下可以达到 的收敛率(与非凸 GD 类似)。对于强凸函数,SGD 可达到 (统计学习率)。
五、一阶优化方法
5.1 动量法与Nesterov加速
动量法(Momentum)累积历史梯度方向,加速收敛并减少震荡:
直观理解:动量项使得更新方向包含了过去梯度的指数加权平均,从而在高曲率方向抑制震荡,在低曲率方向加速。
Nesterov 动量(Nesterov Accelerated Gradient, NAG)更激进,先”看”一步的方向再校正:
等价形式(使用”速度” 的表述):
Nesterov 加速梯度(NAG)的收敛率:
- 强凸函数:,显著优于标准 GD 的 (线性收敛,但常数更优)
- 一般凸函数:,优于标准 GD 的
Nesterov 加速的直观理解
想象一个小球从山坡滚下。普通梯度下降每次只看当前坡度,而 Nesterov 先借助动量”预测”未来位置,然后在那里看坡度,相当于”向前看”。这使得小球在下坡时更快,在上坡时及时减速。
5.2 自适应学习率方法
AdaGrad(Adaptive Subgradient):
AdaGrad 对稀疏特征有优势,因为更新会除以历史梯度平方和的平方根。但问题是 随 单调增长,导致学习率不断衰减。
RMSProp:引入指数加权移动平均来解决 AdaGrad 的问题:
Adam(Adaptive Moment Estimation)结合了动量和自适应学习率:
Adam 自动调整每个参数的学习率,在实践中效果极佳,是深度学习的主流优化器之一。但 Adam 也有缺陷(如可能不收敛,泛化性能不如 SGD 等),AdaBound、LAMB 等变体尝试改进。
5.3 近端梯度法
近端算子(Proximal Operator):对于函数 (可能是非光滑的),其近端算子定义为:
近端算子可以理解为”软阈值”操作的推广。
近端梯度法(Proximal Gradient Method, PGM)处理复合目标函数:
其中 光滑(可微), 可能是非光滑的凸函数(如 范数)。
迭代格式:
ISTA(Iterative Shrinkage-Thresholding Algorithm)是 PGM 的一个特例,用于 LASSO:
FISTA(Fast ISTA):Nesterov 加速版本的 ISTA,达到 收敛率。
5.4 交替方向乘子法(ADMM)
ADMM(Alternating Direction Method of Multipliers)用于分布式凸优化,是大尺度问题的主流方法。
考虑问题:
增广拉格朗日:
ADMM 交替最小化 和 :
收敛性:ADMM 在适当条件下以 速率收敛到原始-对偶最优解。对于强凸函数,收敛率可提升为线性。
分布式实现:ADMM 的天然优势是可以分布式执行。目标函数 可以每个节点独立计算 的更新,仅通过一致性约束 进行协调。这使得 ADMM 非常适合 MapReduce 或 parameter-server 架构。
5.5 镜像下降(Mirror Descent)
镜像下降通过 Bregman 散度而非欧氏距离来测量步长:
其中 是由凸函数 定义的 Bregman 散度。
特殊情形:
- : 是欧氏距离,镜像下降退化为标准梯度下降。
- :产生类似于 AdaGrad 的自适应学习率行为。
六、二阶优化方法
6.1 牛顿法
牛顿法:
牛顿法的收敛率:对于强凸函数,达到 (二次收敛),远超线性收敛。二次收敛意味着每一步有效数字位数大约翻倍。
几何直觉:牛顿法不是沿梯度方向走固定步长,而是将目标函数在当前点二阶近似(用 Hessian 作为曲率信息),然后跳到二次近似的最小点。
但牛顿法的问题:
- 需要计算 Hessian 矩阵( 存储)
- 需要求解 Hessian 线性系统 ( 计算,若用直接法)
- Hessian 可能不正定(对于非凸问题)
阻尼牛顿法与信赖域法:为保证收敛,可以加入步长控制(阻尼牛顿)或信赖域约束(限制步长范围)。
信赖域法(Trust Region Method):
其中 , 是信赖域半径。相对于线搜索方法,信赖域法在处理非凸问题时更稳定。
6.2 拟牛顿法
拟牛顿法用低秩矩阵逼近 Hessian 或其逆,避免直接计算 Hessian。
BFGS(Broyden-Fletcher-Goldfarb-Shanno)直接逼近 Hessian:
其中 ,。
Sherman-Morrison 公式使 BFGS 可以 更新(而非 求逆):
其中 。
L-BFGS(Limited-memory BFGS):只存储最近 对 ,逼近 通过这些历史信息,达到 存储(而非 )。
OWL-QN(Orthant-Wise Limited-memory Quasi-Newton):用于 正则化问题,结合 L-BFGS 和正交象限优化。
6.3 牛顿法的实际考量
Hessian-vector 积:在深度学习中,直接计算完整的 Hessian 矩阵不可行,但可以高效计算 Hessian-vector 积: 通过反向传播两次即可得到(利用雅可比链式法则)。这使得共轭梯度法(CG)可以用于求解牛顿步长 :
共轭梯度法在 步内(在 特征值分布良好的假设下)给出 维 Krylov 子空间中的最优解,且无需显式构造 。
自然梯度(Natural Gradient):在黎曼流形上,牛顿方向对应于在黎曼度量下的最速下降方向。在概率分布空间(由 Fisher 信息矩阵定义黎曼度量),自然梯度方法具有更好的理论性质。Natural Evolution Strategies (NES) 和 Natural Gradient Policy Gradient 等方法体现了这一思想。
七、约束优化的投影方法
7.1 投影梯度法
投影梯度法:
其中 是到凸集 的投影。
投影是度量空间中最近点映射(metric projection),对于闭凸集 ,投影算子存在且唯一。
投影的性质:
这称为投影定理,等价于变分不等式。
对于简单约束(如箱约束 ),投影有闭式解:
对于球约束 ,投影为 。
收敛性:对于凸集上的凸函数,投影梯度法达到 收敛率(无加速)或 (Nesterov 加速版本)。
7.2 Frank-Wolfe算法
Frank-Wolfe算法(也称条件梯度法)是处理线性约束凸优化问题的投影自由方法:
初始化:(可行域内)
迭代:
- 线性最小化子问题:求解
- 步长计算:(或线搜索)
- 更新:
Frank-Wolfe 的优势:
- 投影自由:只需解决线性最小化,而非投影到复杂集合
- 当 是多面体时,线性最小化可能比投影更高效
- 稀疏解:解天然是原子的凸组合(原子分解)
- 存储优势:只需存储当前解 ,不需要投影算子
Frank-Wolfe 的劣势:
- 收敛速度较慢: 而非
- 对于非多面体约束集合,线性最小化可能仍困难
- 收敛到解的边界(可能导致数值不稳定)
SVM与Frank-Wolfe
支持向量机的对偶问题 可以用 Frank-Wolfe 求解。线性最小化子问题退化为寻找支持向量,复杂度与活跃约束数成正比。
7.3 条件梯度滑动(Conditional Gradient Sliding)
条件梯度滑动(CGS)结合了 Frank-Wolfe 与 Nesterov 加速的思想:
通过使用梯度评估次数来衡量复杂度,CGS 在光滑凸优化上达到了最优的复杂度 (其中 是维度, 是精度)。这里的”滑动”体现在解在两步之间平滑移动。
7.4 增广拉格朗日法
增广拉格朗日(Augmented Lagrangian)通过在拉格朗日函数中加入惩罚项来改善对偶函数的曲率:
二次惩罚项 改善了拉格朗日函数的 Hessian 条件数,使得对偶变量的更新更容易收敛。
ADMM 是增广拉格朗日法的多块推广,已经在第五章讨论。
八、凸优化的计算复杂性
8.1 问题复杂度分类
在理论计算机科学中,优化问题按照其计算难度分为多个类别:
| 问题类型 | 示例 | 多项式时间算法? |
|---|---|---|
| P | 线性规划、二次规划 | 是(内点法) |
| NP-hard | 整数规划、组合优化 | 否(除非 P=NP) |
| 平滑凸优化 | Lipschitz 凸函数 | 是(一阶方法) |
| 一阶 oracle | 光滑凸函数 | 是(梯度法) |
一阶 oracle 模型:算法只能通过 oracle 查询(函数值、梯度等)来获取信息,不利用问题的代数结构。
复杂度下界:在一阶 oracle 模型下,光滑凸函数的收敛率下界为 ,Nesterov 加速梯度达到了这个下界(因而是最优的)。这称为最优一阶方法(optimal first-order method)。
8.2 局部最优与全局最优
非凸优化的现状:在实际机器学习中,绝大多数问题是非凸的(神经网络、协同过滤、围棋等)。但”局部最优即全局最优”的好消息是:
- 过参数化网络:在过度参数化的神经网络中,梯度下降可以收敛到全局最优(参见 Allen-Zhu, Song 等人 2018-2019 的工作)。
- 矩阵补全:在 RIP (Restricted Isometry Property) 条件下,可证明不存在”坏”的局部最优。
- 相位恢复:在 Generic 条件下,损失函数 landscape 的局部最优都是全局最优。
鞍点问题:在高维非凸优化中,鞍点比局部极小更常见(根据随机矩阵理论,Hessian 的负特征值期望约为维度的一半)。逃离鞍点可以通过:
- 随机扰动
- 带有噪声的梯度下降(SGD 的隐式正则化效应)
- 曲率信息(使用 Hessian-vector 积)
8.3 零阶优化
零阶优化(Zero-order Optimization)仅使用函数值 来优化,不依赖梯度信息。当梯度不可得时(如模拟优化、超参数调优、黑盒系统)这是唯一选择。
随机估计梯度:
其中 是均匀分布在单位球面上的随机方向。这是一个无偏的梯度估计( 偏差)。
坐标采样:在离散决策空间(如神经网络架构搜索)中,可以随机采样有限个子方向进行评估。
零阶方法由于信息利用率极低,收敛速度远慢于一阶和二阶方法,复杂度差距可达 倍( 是维度)。
九、应用专题
9.1 机器学习中的凸优化
支持向量机(SVM):,这是一个凸 QP。
逻辑回归:,凸优化(目标函数是凸的, 正则是凸的)。
LASSO(Least Absolute Shrinkage and Selection Operator):,其中 正则项促进稀疏解。使用近端梯度法(如 ISTA/FISTA)高效求解。
K-means 聚类:-means 目标函数 不是凸的,但 Lloyd 算法是实践中有效的启发式算法。
主成分分析(PCA): 等价于 ,是半正定规划(SDP),虽然非凸但所有局部最优都是全局最优。
9.2 控制理论中的凸优化
线性矩阵不等式(LMI): 定义了凸约束。LMI 出现在 Lyapunov 稳定性分析、 控制、状态估计等问题中。
模型预测控制(MPC):在约束 MPC 中,每个控制步需要求解一个有限时域优化问题:
当 较大或控制频率高时,快速求解是挑战。凸优化与定制内点法、fast MPC 是核心工具。
9.3 信号处理中的凸优化
压缩感知(Compressed Sensing):信号恢复问题 ,在 RIP 条件下, 最小化可以精确恢复稀疏信号。
去噪:TV(Total Variation)去噪 ,利用图像的梯度稀疏性进行去噪。
矩阵补全:,其中 是核范数(奇异值之和),促进低秩解。应用于推荐系统(协同过滤)、相位恢复、鲁棒 PCA 等。
9.4 博弈论与凸优化
二人零和博弈与线性规划:给定支付矩阵 ,Player 1 的最优混合策略 ,可以通过 LP 求解。
纳什均衡:有限策略空间下的二人零和博弈的纳什均衡等价于一个 LP。多人非合作博弈的均衡计算通常是非凸的,但贸易市场等特殊博弈结构可以转化为凸优化。
社会福利最大化:在市场出清价格计算中,求解竞争均衡可以转化为一个凸优化问题(最大 GDP 等目标)。
十、算法实现细节与数值稳定性
10.1 线搜索与步长选择
Armijo 条件(充分下降条件):
其中 是搜索方向,(通常 )。
曲率条件(Wolfe 条件):
其中 (通常 )。
Armijo 条件保证足够下降,Wolfe 条件避免步长过小。结合两者即为 Wolfe 线搜索。
回溯线搜索:从较大的步长 开始,若不满足 Armijo 条件则按比例缩小 (,如 )。
10.2 数值稳定性的实践考量
病态问题:当 Hessian 条件数 很大时,梯度下降收敛极慢。预处理(Preconditioning)通过变换变量 来改善条件数。
NaN/Inf 处理:在高曲率区域,梯度可能极大或极小。使用梯度裁剪(gradient clipping)、学习率衰减、数值稳定公式(对 等使用 safe 版本)是常见实践。
双精度 vs 单精度:深度学习中常用单精度(FP32)甚至混合精度(FP16/BF16),但凸优化求解器通常需要双精度以避免累积误差。
10.3 大规模问题的策略
- 坐标下降:当目标函数在某个坐标方向上”解耦”时,坐标下降可以非常高效。
- 随机化:使用随机采样来近似梯度(适用于有限和目标)。
- 分布式优化:ADMM、一致性优化(consensus optimization)、联邦学习中的凸聚合。
- 二阶信息的低秩近似:利用 Kronecker 结构、Hessian-free 优化、Krylov 子空间方法。
十一、算法选择指南
11.1 问题类型与推荐算法
| 场景 | 推荐算法 |
|---|---|
| 小规模光滑无约束 | 牛顿法、BFGS、L-BFGS |
| 中等规模凸问题 | 内点法、SCS、OSQP |
| 大规模光滑无约束 | L-BFGS、Nesterov 加速梯度 |
| 大规模稀疏约束 | Frank-Wolfe、随机方法 |
| 包含 正则 | ISTA/FISTA、近端梯度法 |
| 分布式/联邦学习 | ADMM、Gradient Descent/ADMM |
| 实时控制 | 定制内点法、fast MPC |
| 黑盒/仿真优化 | 零阶方法、贝叶斯优化 |
11.2 编程工具生态
Python:
scipy.optimize:提供了 SLSQP(序列最小二乘规划)、COBYLA 等约束优化算法。cvxpy:优雅的凸优化建模语言,支持 LP、QP、SOCP、SDP,自动选择求解器。osqp、ecos、scs:高效的一阶 SDP/QP 求解器。mosek、gurobipy、cplex:商业求解器,适合大规模 LP/QP/SOCP/SDP。
MATLAB:
fmincon:通用约束优化(序列二次规划 SQP 是默认算法)。linprog、quadprog、semidefinite:针对特定问题类型的求解器。CVX:最流行的凸优化建模工具之一(由 Stanford 的 Grant 和 Boyd 开发)。
Julia:
JuMP:类似 cvxpy 的建模语言,支持多种求解器后端。Convex.jl:专门面向凸优化。ProximalAlgorithms.jl:近端算法框架。
十二、历史注记与延伸阅读
12.1 发展简史
- 1947:Dantzig 提出单纯形法,线性规划进入可计算时代。
- 1948:von Neumann 提出对偶理论。
- 1963:Dantzig 和 Wolfe 提出分解原理,处理大规模 LP。
- 1967:Kuhn 和 Tucker 提出 KKT 条件(实际上 Karush 1939 年已在硕士论文中给出)。
- 1979:Khachiyan 的椭球法首次证明 LP 的多项式时间可解性。
- 1984:Karmarkar 的内点法给出比椭球法更实用的多项式时间算法,掀起内点法革命。
- 1988:Nesterov 提出加速梯度法,达到 最优收敛率。
- 1990s:二阶锥规划和半定规划的内点法成熟。
- 2000s:伴随机器学习和大数据的兴起,一阶方法(随机优化、近端方法、ADMM)成为大规模问题的主流。
- 2010s:深度学习优化(Adam、AdamW、LAMB 等自适应方法的广泛使用)。
12.2 经典教材
- Boyd & Vandenberghe (2004). Convex Optimization. Cambridge University Press. —— 入门必读,覆盖全面,配套公开课。
- Nesterov (2018). Lectures on Convex Optimization (2nd ed.). Springer. —— 深入理论,最优算法设计的权威著作。
- Bertsekas (1999). Nonlinear Programming (2nd ed.). Athena Scientific. —— 非线性规划的百科全书。
- Rockafellar (1970). Convex Analysis. Princeton University Press. —— 凸分析的数学基础。
- Bottou, Curtis & Nocedal (2018). Optimization Methods for Large-Scale Machine Learning. SIAM Review. —— 现代大规模优化的综述。
- Nocedal & Wright (2006). Numerical Optimization (2nd ed.). Springer. —— 数值优化的经典教材。
十三、典型习题
习题 1:凸集判定
判断下列集合是否为凸集,并说明理由:
- ( 范数单位球)
- (稀疏集合, “范数”不超过 )
- (正象限的等积区域)
答案:1 是凸的( 球是多面体);2 不是凸的(稀疏约束不是凸的);3 是凸的(因为对数化后为仿射约束 , 是凹函数, 凹函数定义的是凸集)。
习题 2:共轭函数
求函数 ()的 Fenchel 共轭 。
答案:。由驻点条件 得 ,代入即得。
习题 3:KKT条件应用
用 KKT 条件求以下问题的最优解:
答案:引入乘子 ,拉格朗日 。 平稳性:,。 结合约束 ,解得 ,。最优值 。
习题 4:收敛率推导
设 为 -强凸且 -Lipschitz 连续梯度。证明梯度下降法在步长 下满足:
提示:使用强凸性 和 Lipschitz 条件,结合 。
习题 5:ADMM 分布式实现
考虑分布式优化问题 (每个 在节点 上计算),使用 ADMM 的一致性(consensus)形式。写出分布式更新规则,并说明如何通过消息传递实现。
习题 6:SVM 的对偶推导
从 SVM 原问题 推导出其对偶问题,并说明支持向量的几何意义。
十四、进阶专题预告
以下专题因篇幅所限未能详述,列出供进一步研究:
- 锥规划的内点法:自步 барьер 函数到预测-校正方法,再到专为 SDP 设计的求解器结构。
- 凸优化的随机近似(SVRG、SAGA、Finito):方差缩减技术如何帮助 SGD 类方法在有限和问题中达到线性收敛。
- 分散式凸优化:一致性(consensus)方法、交换-平均(exchange-average)方法、联邦学习中的通信压缩。
- 鲁棒优化:椭球不确定性集下的 min-max 优化与 SDP 松弛。
- 割平面法(Cutting Plane Methods):Delunay 割平面、Kelley’s 方法、Bundle 方法(用于非光滑凸优化)。
- 机会约束规划(Chance-Constrained Programming):概率约束下的凸优化。
- 单调算子与分裂方法:Douglas-Rachford 分割、Primal-Dual 混合梯度(PDHG)。
- 非凸优化的松弛与近似:《Beyond Convex》——流形优化、矩阵完备化的凸松弛近似比分析。
十五、线性规划的深入专题
15.1 单纯形法的几何与代数
单纯形法的代数框架:将标准形 LP 的可行域视为多面体。基变量集合 (大小为 )对应一组线性无关列向量 ,基矩阵 ,非基矩阵 。
基本可行解(Basic Feasible Solution, BFS):对于基 ,设 ,,则 是 BFS。BFS 对应多面体的一个顶点(极点)。
最优性检验:对于基 ,简约成本 。若所有 ,则当前 BFS 是最优解。
出基/入基规则(Bland 规则避免循环):选择最小的 作为入基变量(消除循环),出基变量由最小比值规则 决定。
单纯形法两步走
LP: 引入松弛变量 ,得到标准形。 初始基 ,,。 和 构成单纯形表。 , 入基。 比值 , 出基。 迭代直到所有简约成本非负。
15.2 内点法的完整推导
障碍函数法(Barrier Method):在原问题中加入对数障碍项,将约束内化:
当 时,障碍函数的极小点趋近于原始问题的最优解。
中心路径(Central Path):随着 增大,障碍问题的解序列 在可行域内形成一条通向最优解的路径。中心路径的存在性是内点法收敛的关键。
原始-对偶内点法:同时追踪原始变量 和对偶变量 ,通过牛顿法求解 KKT 条件的修正方程:
其中 ,, 是对偶间隙的度量参数。
预测-校正(Predictor-Corrector):在内点法中,正则方程的数值稳定性至关重要。Mehrotra 的预测-校正方法通过两步(预测方向和校正方向)改善了收敛速度和数值稳定性。
15.3 整数规划与分支定界
整数线性规划(ILP):LP 变量限制为整数。当变量数为布尔型时(0-1 规划),问题为 NP-hard。
分支定界法(Branch and Bound):
- 根 LP 松弛:忽略整数约束,求解 LP 得到上界(对于最大化问题)
- 分支:选择非整数变量 ,创建两个子问题 和
- 定界:每个子节点求解 LP 松弛,更新全局界
- 剪枝:若子问题的 LP 解是整数解(或 LP 下界超过当前最优),则剪枝
- 递归直到所有分支被剪枝
割平面法(Cutting Plane):Gomory 割从 LP 最优表中提取有效不等式,逐步切割非整数可行解空间。
现代 ILP 求解器(CPLEX、Gurobi):结合分支定界、割平面、启发式(rounding、fix-and-optimize)、预处理(probing、tightening)和并行计算,在实际问题上可求解百万变量规模。
十六、非线性规划的深入理论
16.1 约束品性条件的完整讨论
约束品性(Constraint Qualification, CQ)确保 KKT 条件与最优性之间的桥梁。
线性约束独立(LICQ):在可行点 处,所有有效约束的梯度 线性无关。LICQ 是最强也最常用的 CQ。
Mangasarian-Fromovitz CQ(MFCQ):对于等式约束的梯度线性无关;对于不等式约束,存在方向 使得 (活跃不等式)。
Slater 条件(凸优化 CQ):存在点 使得所有不等式约束严格成立、所有等式约束成立。Slater 条件 MFCQ。
Abadie CQ:可行方向锥等于线性化可行方向锥。
Cottle CQ:活跃约束的梯度张成的空间与积极锥的极锥有非零交集。
16.2 二阶最优性条件
二阶必要性条件:若 是局部极小点且满足适当 CQ,则存在 KKT 乘子使得:
其中 是可行方向锥(Critical Cone)。
二阶充分性条件:若存在 KKT 乘子使得 Hessian 在 Critical Cone 上正定,则 是严格局部极小。
16.3 增广拉格朗日的深层性质
Uryasev 方法:对不等式约束 ,使用指数型惩罚:
这在障碍函数和惩罚函数之间建立联系。
精确惩罚(Exact Penalty):若 是局部极小且满足强二阶充分条件,则存在 使得原始约束问题等价于惩罚问题 。
十七、流形优化与结构化优化
17.1 流形优化的基础
流形是局部同构于欧氏空间的拓扑空间。在优化中,我们经常遇到约束在流形上的问题,如正交约束()、锥约束()、秩约束()。
黎曼几何基础:
- 流形 上的点 处的切空间
- 黎曼度量
- 黎曼梯度: 是切空间中使得 上升最快的方向
- 黎曼 Hessian: 是切空间上的线性算子
** retraction**(回撤):将切向量映射回流形:,满足 ,且在零点的一阶导数为恒等映射。常见 retraction:正交投影到 Stiefel 流形、QR retraction on 鸟。
17.2 典型流形
球面流形 :单位向量集合 。切空间是 , retraction 是 。
Stiefel 流形 :正交列框架。正交投影到其法空间给出 retraction。
广义 Stiefel 流形:如固定秩矩阵流形 ,或固定行列式流形。
正定矩阵流形 :对称正定矩阵。黎曼度量通常选为仿射不变度量 ,对应自然梯度 。
17.3 流形上的优化算法
黎曼梯度下降:
黎曼共轭梯度:在流形上定义共轭方向,需使用并行传输(parallel transport)将梯度从一点传输到另一点。
随机梯度流形下降(RSGD):用于矩阵分解(如推荐系统中的非负矩阵分解)等问题。
Barzilai-Borwein 步长:一种无需线搜索的梯度下降步长选择规则,在欧氏空间和流形空间均有应用。
十八、凸优化的概率与统计视角
18.1 随机凸优化
当目标函数是随机函数的期望 时,梯度下降需要用随机梯度 近似真实梯度 。
SGD 的收敛性:对于强凸 ,适当步长 给出 收敛率(噪声是 量级);对于恒定步长 ,给出 的最终收敛半径。
方差缩减:SVRG、SAGA、Finito 等方法通过周期性重置或平均历史梯度,将方差降低到 ,从而实现线性收敛。
18.2 鲁棒优化与随机规划
鲁棒优化:优化问题中参数不确定,构造不确定性集 ,求解 。
- 椭球不确定性:,导致 SOCP 或 SDP 可处理的鲁棒 LP。
- 盒不确定性:,导致顶点检查。
两阶段随机规划(Stochastic Programming): recourse 决策在观测到随机变量后执行:
使用 Benders 分解处理大尺度问题。
18.3 分布式凸优化
参数服务器架构:多个 worker 节点计算局部梯度,server 节点聚合并广播更新。
环 AllReduce:在环形拓扑中,每个节点只与两个邻居通信,适合 GPU 集群的高效通信。
梯度压缩:量化(Quantization)、稀疏化(Sparsification)、熵编码等方法将通信量从 降低到 或更低,同时保持收敛性。
联邦学习中的凸聚合:各客户端有本地数据,各自优化本地模型。服务器通过加权平均聚合。差分隐私和通信压缩是联邦学习的核心挑战。
十九、凸优化与机器学习的深度结合
19.1 正则化与稀疏优化
LASSO 的几何解释: 范数约束的等值面是旋转对称的钻石形,与误差椭球 的交点倾向于落在坐标轴上,从而产生稀疏解。
Elastic Net:,结合 和 正则化,对高相关特征组有更好的选择稳定性。
Group Lasso:对特征分组施加组间稀疏性( 混合范数),用于选择相关的特征组。
Fused Lasso:促进解的空间平滑性(相邻系数接近),适用于时间序列或空间数据的去噪。
近端算子的实际计算:
| 函数 | 近端算子 |
|---|---|
| (核范数) | 对奇异值做软阈值 |
| (指示函数) | 投影到 |
19.2 稳健回归
Huber 损失:,结合了 (小残差)和 (大残差)的优点。
Tukey biweight:在深度学习对抗训练中用于鲁棒优化。
回归(Chebyshev 拟合):使用切比雪夫范数最小化最大误差,可转化为 LP。
19.3 相位恢复与低秩矩阵恢复
相位恢复:从幅度测量 恢复信号 。 最小化在稀疏先验下是有效的。
低秩矩阵补全:,由组稀疏性(秩)推动。使用奇异值阈值(SVT)迭代求解:
其中 是奇异值软阈值算子。
Robust PCA:,将观测矩阵分解为低秩分量()和稀疏噪声()。应用于背景建模(视频监控)、异常检测、协同过滤去噪。
二十、凸优化的软件工具与实践
20.1 建模语言
CVX(MATLAB/Python):Disciplined Convex Programming (DCP) 规范。通过 CVXIF 接口集成到其他语言。
cvx_begin
variable x(n)
minimize(norm(A*x - b, 2))
subject to
x >= 0
sum(x) == 1
cvx_endCVXPY(Python):CVX 的 Python 版本,支持 NumPy 和 SciPy。
import cvxpy as cp
x = cp.Variable(n)
objective = cp.Minimize(cp.norm(A @ x - b, 2))
constraints = [x >= 0, cp.sum(x) == 1]
prob = cp.Problem(objective, constraints)
prob.solve(solver=cp.SCS)JuMP(Julia):高性能建模语言,支持 LP、QP、SOCP、SDP、混合整数规划。
20.2 求解器选择指南
| 问题类型 | 开源求解器 | 商业求解器 |
|---|---|---|
| LP | CLP, HiGHS, GLPK | Gurobi, CPLEX, MOSEK |
| QP | OSQP, qpOASES | Gurobi, CPLEX |
| SOCP/SDP | SCS, ECOS | MOSEK, Gurobi |
| 非线性规划 | Ipopt | KNITRO, FILTERSD |
| ILP/MILP | CBC, GLPK, HiGHS | Gurobi, CPLEX |
SCS(Splitting Conic Solver):一阶方法,支持 LP、SOCP、SDP 的中等规模问题。GPU 加速版本使大规模问题处理更快。
OSQP:专门针对 QP 的一阶求解器,使用 ADMM,在控制理论和 MPC 中广泛使用。
20.3 数值稳定性实践
- 缩放:对系数矩阵 和右端项 进行均衡缩放(如按列缩放使条件数改善)
- 热启动:从一个可行的初始点开始,而非从零开始
- 精度设置:理解求解器的 tolerance 设置(primal feasibility、dual feasibility、duality gap)
- 结果验证:解出后验证 KKT 残差
参考文献
- Boyd, S., & Vandenberghe, L. (2004). Convex Optimization. Cambridge University Press.
- Nesterov, Y. (2018). Lectures on Convex Optimization (2nd ed.). Springer.
- Bertsekas, D. P. (1999). Nonlinear Programming (2nd ed.). Athena Scientific.
- Rockafellar, R. T. (1970). Convex Analysis. Princeton University Press.
- Bottou, L., Curtis, F. E., & Nocedal, J. (2018). Optimization Methods for Large-Scale Machine Learning. SIAM Review, 60(2), 223-311.
- Nocedal, J., & Wright, S. J. (2006). Numerical Optimization (2nd ed.). Springer.
- Grant, M., & Boyd, S. (2014). CVX: Matlab Software for Disciplined Convex Programming. Version 2.1.
- Domke, J. (2012). Generic Methods for Optimization-Based Modeling. AISTATS, 1162-1170.
- Goemans, M. X., & Williamson, D. P. (1995). Improved Approximation Algorithms for Maximum Cut and Satisfiability Problems Using Semidefinite Programming. J. ACM, 42(6), 1115-1145.
- Tieleman, T., & Hinton, G. (2012). Lecture 6.5 - RMSProp. COURSERA: Neural Networks for Machine Learning.
- Kingma, D. P., & Ba, J. (2015). Adam: A Method for Stochastic Optimization. ICLR.
- Beck, A., & Teboulle, M. (2009). A Fast Iterative Shrinkage-Thresholding Algorithm. SIAM J. Imaging Sciences, 2(1), 183-202.
- Glowinski, R., & Marrocco, A. (1975). Sur l’approximation par éléments finis d’ordre un, et la résolution par pénalisation-dualité d’une classe de problèmes de Dirichlet non linéaires. Rev. Française Automat. Informat. Recherche Opérationnelle, 9(R2), 41-76.
- Boyd, S., Parikh, N., Chu, E., Peleato, B., & Eckstein, J. (2011). Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers. Foundations and Trends in Machine Learning, 3(1), 1-122.
- Choromanska, A., Henaff, M., Mathieu, M., Arous, G. B., & LeCun, Y. (2015). The Loss Surfaces of Multilayer Networks. AISTATS, 192-204.
- Allen-Zhu, Z., Li, Y., & Song, Z. (2019). A Convergence Theory for Deep Learning via Over-Parameterization. ICML, 242-252.