凸优化深度指南

文档概述

凸优化是现代机器学习与统计推断的理论支柱。本指南系统介绍凸集与凸函数的基本理论、典型优化问题(LP、QP、SOCP、SDP)、对偶理论与KKT条件、梯度下降法及其收敛性分析、投影方法与约束处理、以及各类一阶二阶优化方法的深入讨论。附录包含变分不等式、分散式优化、凸优化的计算复杂性等高级专题。


关键词

序号关键词英文核心概念
1凸集Convex Set
2凸函数Convex Function
3线性规划Linear Programming
4二次规划Quadratic Programming
5KKT条件Karush-Kuhn-Tucker最优性的必要条件
6对偶问题Dual Problem原问题的下界优化
7梯度下降Gradient Descent
8收敛率Convergence Rate
9Lipschitz连续Lipschitz Continuity
10强凸Strong Convexity
11Frank-WolfeFrank-Wolfe Algorithm线性约束优化的投影自由方法
12拉格朗日Lagrangian
13半定规划SDP
14二阶锥规划SOCP
15原对偶方法Primal-Dual同时追踪原变量和对偶变量的算法
16近端方法Proximal Methods
17交替方向乘子法ADMM分布式凸优化的经典框架
18镜像下降Mirror Descent通过Bregman散度定义的梯度类方法
19Nesterov加速Nesterov Acceleration达到 收敛率
20坐标下降Coordinate Descent沿坐标轴方向依次优化

一、凸集与凸函数

1.1 凸集的定义与性质

凸集:集合 是凸的,当且仅当对任意 ,有:

几何直观:凸集内任意两点的线段完全包含在集合内。换言之,用直尺连接凸集内任意两点,整条线段都不会”跑出去”。

凸集的代数理解:从仿射几何的角度,凸集可以视为所有仿射包的子集。对于任意有限点集 ,其凸包(convex hull)定义为:

凸包是包含给定点的最小凸集。

常见的凸集

  • 超平面,维数为
  • 半空间(闭半空间)或 (开半空间)
  • 多面体:有限个半空间和超平手的交集,记作
  • 范数球(任意范数
  • 范数锥
  • 仿射集,仿射集既是凸集也是凸锥的平移
  • 正象限
  • 概率单纯形
  • 半正定锥,这是一个自对偶锥

仿射变换保凸:若 是凸集,则其仿射像 和仿射逆像 都是凸集,其中

透视变换:透视函数 定义为 ,定义域要求 。透视变换将凸锥映射为凸集(反之,将凸集提升为凸锥)。

凸集的运算保凸性

  • 交集:凸集的交集仍是凸集。这是最重要的保凸运算之一。例如,多面体是多半空间的交集。
  • :如果 凸,则 凸( Minkowski 和)。
  • 直积 凸。
  • 仿射变换 保持凸性。
  • 透视变换:保持凸性。
  • 线性分式变换,定义域为 ,保持凸性。

凸集示例

  1. 单位球 是凸的。证明:任取 ,则
  2. 三角形的内部及边界是凸的。
  3. 圆盘(平面内)是凸的。
  4. 环形区域 不是凸的(因为不包含原点到边界点的线段)。
  5. 任意椭球 是凸的,其中

凸集的分离定理:分离定理是凸分析中最深刻的结果之一,也是对偶理论的基石。

  • 超平面分离定理:若 是不相交的凸集(即 ),则存在超平面将它们分离: 使得 对所有 成立, 对所有 成立。
  • 严格分离定理:若 是闭凸集且 ,则在适当条件下可严格分离。
  • 支撑超平面定理:每个凸集的边界点都有支撑超平面。

这些定理的几何直觉是:两个互不相交的凸集之间可以”塞”进一张无限薄的纸把它们隔开。

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条件为:

  1. 原始可行性
  2. 对偶可行性
  3. 互补松弛(即每个乘子与其对应约束的乘积为零)
  4. 拉格朗日平稳性

KKT的意义

在强对偶性成立的条件下,KKT条件是 为原问题最优解的充要条件。这使得我们可以将约束优化问题转化为解方程组。对于凸问题(且满足约束品性),KKT条件是最优性的充要条件;对于一般非凸问题,KKT条件是最优性的必要条件。

互补松弛的深入理解:对于每个不等式约束 ,有两种情况:

  • (约束未活跃),则 (乘子为零)
  • ,则 (约束在边界处)

这体现了”只对活跃约束付钱”的经济学直觉。

几何解释:在最优解处,梯度 可以表示为约束梯度的非负线性组合(在仿射等式约束子空间内),且约束在边界处必须”夹住”梯度方向。

KKT条件应用:支持向量机

SVM 原问题: KKT 条件给出 是支持向量的线性组合), (间隔约束的对偶约束), 且 ,互补松弛 。 这导致稀疏解:只有支持向量()的 ,其他

3.5 鞍点理论

(狭义) 鞍点(Saddle Point):点 的鞍点,当且仅当:

鞍点与最优性 是拉格朗日函数鞍点的充要条件是:

  • 是原始可行解
  • 是对偶可行解
  • 原-对偶目标函数值相等(即 ,对偶间隙为零)

因此,鞍点存在等价于强对偶性成立且存在最优解。


四、梯度下降与收敛性分析

4.1 梯度下降法

梯度下降是最基本的迭代优化方法:

其中 是步长(学习率)。

收敛性分析的基本假设

  1. Lipschitz连续梯度,即Hessian有界:(若 二阶可微)
  2. 步长选择:固定步长 或随迭代变化

梯度下降的一步分析:由 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 作为曲率信息),然后跳到二次近似的最小点。

但牛顿法的问题:

  1. 需要计算 Hessian 矩阵( 存储)
  2. 需要求解 Hessian 线性系统 计算,若用直接法)
  3. 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算法(也称条件梯度法)是处理线性约束凸优化问题的投影自由方法:

初始化(可行域内)

迭代

  1. 线性最小化子问题:求解
  2. 步长计算(或线搜索)
  3. 更新

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,自动选择求解器。
  • osqpecosscs:高效的一阶 SDP/QP 求解器。
  • mosekgurobipycplex:商业求解器,适合大规模 LP/QP/SOCP/SDP。

MATLAB

  • fmincon:通用约束优化(序列二次规划 SQP 是默认算法)。
  • linprogquadprogsemidefinite:针对特定问题类型的求解器。
  • 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 经典教材

  1. Boyd & Vandenberghe (2004). Convex Optimization. Cambridge University Press. —— 入门必读,覆盖全面,配套公开课。
  2. Nesterov (2018). Lectures on Convex Optimization (2nd ed.). Springer. —— 深入理论,最优算法设计的权威著作。
  3. Bertsekas (1999). Nonlinear Programming (2nd ed.). Athena Scientific. —— 非线性规划的百科全书。
  4. Rockafellar (1970). Convex Analysis. Princeton University Press. —— 凸分析的数学基础。
  5. Bottou, Curtis & Nocedal (2018). Optimization Methods for Large-Scale Machine Learning. SIAM Review. —— 现代大规模优化的综述。
  6. Nocedal & Wright (2006). Numerical Optimization (2nd ed.). Springer. —— 数值优化的经典教材。

十三、典型习题

习题 1:凸集判定

判断下列集合是否为凸集,并说明理由:

  1. 范数单位球)
  2. (稀疏集合, “范数”不超过
  3. (正象限的等积区域)

答案:1 是凸的( 球是多面体);2 不是凸的(稀疏约束不是凸的);3 是凸的(因为对数化后为仿射约束 是凹函数, 凹函数定义的是凸集)。

习题 2:共轭函数

求函数 )的 Fenchel 共轭

答案。由驻点条件 ,代入即得。

习题 3:KKT条件应用

用 KKT 条件求以下问题的最优解:

答案:引入乘子 ,拉格朗日 。 平稳性:。 结合约束 ,解得 。最优值

习题 4:收敛率推导

-强凸且 -Lipschitz 连续梯度。证明梯度下降法在步长 下满足:

提示:使用强凸性 和 Lipschitz 条件,结合

习题 5:ADMM 分布式实现

考虑分布式优化问题 (每个 在节点 上计算),使用 ADMM 的一致性(consensus)形式。写出分布式更新规则,并说明如何通过消息传递实现。

习题 6:SVM 的对偶推导

从 SVM 原问题 推导出其对偶问题,并说明支持向量的几何意义。


十四、进阶专题预告

以下专题因篇幅所限未能详述,列出供进一步研究:

  1. 锥规划的内点法:自步 барьер 函数到预测-校正方法,再到专为 SDP 设计的求解器结构。
  2. 凸优化的随机近似(SVRG、SAGA、Finito):方差缩减技术如何帮助 SGD 类方法在有限和问题中达到线性收敛。
  3. 分散式凸优化:一致性(consensus)方法、交换-平均(exchange-average)方法、联邦学习中的通信压缩。
  4. 鲁棒优化:椭球不确定性集下的 min-max 优化与 SDP 松弛。
  5. 割平面法(Cutting Plane Methods):Delunay 割平面、Kelley’s 方法、Bundle 方法(用于非光滑凸优化)。
  6. 机会约束规划(Chance-Constrained Programming):概率约束下的凸优化。
  7. 单调算子与分裂方法:Douglas-Rachford 分割、Primal-Dual 混合梯度(PDHG)。
  8. 非凸优化的松弛与近似:《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):

  1. 根 LP 松弛:忽略整数约束,求解 LP 得到上界(对于最大化问题)
  2. 分支:选择非整数变量 ,创建两个子问题
  3. 定界:每个子节点求解 LP 松弛,更新全局界
  4. 剪枝:若子问题的 LP 解是整数解(或 LP 下界超过当前最优),则剪枝
  5. 递归直到所有分支被剪枝

割平面法(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_end

CVXPY(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 求解器选择指南

问题类型开源求解器商业求解器
LPCLP, HiGHS, GLPKGurobi, CPLEX, MOSEK
QPOSQP, qpOASESGurobi, CPLEX
SOCP/SDPSCS, ECOSMOSEK, Gurobi
非线性规划IpoptKNITRO, FILTERSD
ILP/MILPCBC, GLPK, HiGHSGurobi, CPLEX

SCS(Splitting Conic Solver):一阶方法,支持 LP、SOCP、SDP 的中等规模问题。GPU 加速版本使大规模问题处理更快。

OSQP:专门针对 QP 的一阶求解器,使用 ADMM,在控制理论和 MPC 中广泛使用。

20.3 数值稳定性实践

  • 缩放:对系数矩阵 和右端项 进行均衡缩放(如按列缩放使条件数改善)
  • 热启动:从一个可行的初始点开始,而非从零开始
  • 精度设置:理解求解器的 tolerance 设置(primal feasibility、dual feasibility、duality gap)
  • 结果验证:解出后验证 KKT 残差

参考文献

  1. Boyd, S., & Vandenberghe, L. (2004). Convex Optimization. Cambridge University Press.
  2. Nesterov, Y. (2018). Lectures on Convex Optimization (2nd ed.). Springer.
  3. Bertsekas, D. P. (1999). Nonlinear Programming (2nd ed.). Athena Scientific.
  4. Rockafellar, R. T. (1970). Convex Analysis. Princeton University Press.
  5. Bottou, L., Curtis, F. E., & Nocedal, J. (2018). Optimization Methods for Large-Scale Machine Learning. SIAM Review, 60(2), 223-311.
  6. Nocedal, J., & Wright, S. J. (2006). Numerical Optimization (2nd ed.). Springer.
  7. Grant, M., & Boyd, S. (2014). CVX: Matlab Software for Disciplined Convex Programming. Version 2.1.
  8. Domke, J. (2012). Generic Methods for Optimization-Based Modeling. AISTATS, 1162-1170.
  9. 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.
  10. Tieleman, T., & Hinton, G. (2012). Lecture 6.5 - RMSProp. COURSERA: Neural Networks for Machine Learning.
  11. Kingma, D. P., & Ba, J. (2015). Adam: A Method for Stochastic Optimization. ICLR.
  12. Beck, A., & Teboulle, M. (2009). A Fast Iterative Shrinkage-Thresholding Algorithm. SIAM J. Imaging Sciences, 2(1), 183-202.
  13. 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.
  14. 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.
  15. Choromanska, A., Henaff, M., Mathieu, M., Arous, G. B., & LeCun, Y. (2015). The Loss Surfaces of Multilayer Networks. AISTATS, 192-204.
  16. Allen-Zhu, Z., Li, Y., & Song, Z. (2019). A Convergence Theory for Deep Learning via Over-Parameterization. ICML, 242-252.

相关文档