常用的优化算法及横向对比
1. 梯度下降法(Gradient Descent, GD)
1.1 原理
沿当前点梯度的负方向做局部线性逼近:
最速下降方向为 。
1.2 算法步骤
设初始点 ,给定步长策略
:
-
计算梯度
。
-
更新:
-
若满足停止准则(如
足够小或迭代次数达到上限),则终止;否则 k→k+1。
步长选择
-
固定步长
(要求 0<α<2/L)。
-
精确或非精确线搜索,满足 Armijo 或 Wolfe 条件。
1.3 收敛分析
-
强凸+L−光滑假设 下取固定 α=1/L:
即线性收敛率,因子
。
-
一般凸+L−光滑,最优线搜索下有 O(1/k) 的次线性收敛:
1.4 优缺点
-
优点:实现简单;每步仅需梯度;易于大规模和随机化扩展
-
缺点:收敛慢(特别是条件数大时);对步长敏感;只能保证收敛到局部最优或鞍点
2. 共轭梯度法(Conjugate Gradient, CG)
专门用于求解对称正定二次型问题 。
2.1 原理
构造一组 A-共轭方向 ,在这些方向上精确搜索,可在至多 n 步内(无舍入误差)收敛。
2.2 算法步骤
-
参数定义:
-
残差
-
搜索方向
-
步长
,共轭系数
-
-
迭代:
-
若 k=0 ,令
,
。
-
否则计算
-
重复直至
足够小或达最大迭代数。
-
2.3 收敛分析
-
在精确算术下,至多 n 步收敛至精确解。
-
实际舍入误差下,收敛速率近似受条件数
控制:
2.4 优缺点
-
优点:无需存储或分解 Hessian,仅需矩阵—向量乘法;内存消耗低;对大稀疏系统高效
-
缺点:仅限对称正定;对舍入误差敏感
3. 牛顿法(Newton’s Method)
3.1 原理
在当前点用二阶泰勒展开构造二次近似:
令该近似最小,解线性方程 。
3.2 算法步骤
-
参数:梯度
,
,方向
。
-
更新:
-
求解
。
-
。
-
若
非正定,则需修正(参见阻尼 Newton)。
-
3.3 收敛分析
-
在 f 二阶连续可导、
正定且初值足够近时,牛顿法呈二次收敛:
3.4 优缺点
-
优点:局部收敛极快;迭代次数极少
-
缺点:每步求解线性系统
;需保存/计算 Hessian;对初值敏感
4. 阻尼牛顿法(Damped/Newton with Line Search)
4.1 原理
为保证全局收敛,在牛顿方向上采用步长缩减 ,其中
,
满足 Armijo 或 Wolfe 条件。
4.2 算法步骤
-
计算
。
-
设初始
,做回溯线搜索直至
-
更新
。
4.3 收敛分析
-
在标准 Armijo/Wolfe 条件下,对凸 f 保证全局收敛,且一旦进入二次收敛域,
恢复二次速率。
4.4 优缺点
-
优点:兼顾全局与局部二次收敛;更鲁棒
-
缺点:每步多次函数/梯度评估;实现复杂度提高
5. 拟牛顿法(Quasi-Newton)
5.1 原理
用对称正定矩阵 近似
,通过每次迭代的
,
满足拟牛顿条件
。
5.2 通用步骤
-
初始化
、正定
(通常取单位矩阵)。
-
计算方向
。
-
线搜索得
,更新
,
。
-
用某种更新公式构造
。
5.3 收敛分析
-
在 f 强凸+L−光滑假设下,拟牛顿方法(如 BFGS)可获得超线性收敛:
5.4 优缺点
-
优点:避免显式 Hessian;收敛快于单纯一阶方法;无需调整过多参数
-
缺点:每步存储/更新矩阵开销
;对非光滑不适用
6. DFP 拟牛顿法
6.1 更新公式
6.2 特点
-
保正定性:若
且
。
-
相较 BFGS 数值略逊,收敛稍慢。
7. BFGS 拟牛顿法
7.1 更新公式
7.2 特点
-
更稳定的数值性质;实践中最常用拟牛顿方法。
8. Nelder–Mead 单纯形法
8.1 原理
在 n 维空间维护一个 n+1 顶点的单纯形,通过反射α 、扩展γ 、收缩β 、全收缩δ 操作更新单纯形顶点。
-
典型参数:
-
反射系数 α>0 (常取1)
-
扩展系数 γ>1 (常取2)
-
收缩系数 β∈(0,1) (常取0.5)
-
全收缩系数 δ∈(0,1) (常取0.5)
-
8.2 算法步骤
-
构造初始单纯形
。
-
对顶点按 f 值排序,记最优、最差及次差为
。
-
反射:
视
与其他值决定是否扩展/收缩。
-
迭代至单纯形径向收敛或函数值变化足够小。
8.3 收敛分析
-
无严格收敛率保证;在低维连续光滑下常有效,但对高维/非凸存在早熟收敛风险。
8.4 优缺点
-
优点:无需梯度;易实现;对噪声鲁棒
-
缺点:无收敛率保证;高维效率差
9. ADMM(交替方向乘子法)
9.1 问题形式与参数
-
增广拉格朗日函数:
其中 y 为拉格朗日乘子,ρ>0 为惩罚参数。
-
常用标度形式定义 u=y/ρ 。
9.2 算法步骤(标度形式)
初始化 。对 k=0,1,…:
-
x–update:
x -
z–update:
-
双变量更新:
9.3 收敛分析
-
对凸问题保证全局收敛,且典型的**O(1/k)** 边际收敛率(Ergodic)。
-
参数 ρ 的选择影响收敛速度与数值稳定性。
9.4 优缺点
-
优点:天然适合分布式/并行;对非光滑项(如
)友好
-
缺点:收敛率慢;对 ρ 调参敏感;非凸问题无收敛保证
10.横向对比
算法 | 梯度信息 | Hessian 信息 | 收敛率 | 每步计算成本 | 主要适用场景 | 优点 | 缺点 |
---|---|---|---|---|---|---|---|
GD | 一阶 | 无 | O(n) | 大规模/深度学习 | 简单;易并行/随机化 | 慢;需调步长 | |
CG | 一阶 | 无 | n 步内收敛/线性加速 | 二次型方程组 | 内存低;对称正定高效 | 仅限二次型;对精度敏感 | |
Newton | 一阶 | 二阶 | 本地二次 | 小维高精度 | 极快收敛 | Hessian 代价大;需正定性 | |
Damped Newton | 一阶 | 二阶 | 全局+二次 | 工程/优化库 | 更鲁棒;全局收敛 | 实现复杂;多次函数/梯度评估 | |
Quasi-Newton | 一阶 | 近似二阶 | 超线性 | 中维凸优化 | 收敛快于一阶;无需 Hessian | 内存/计算仍高于纯一阶 | |
DFP | 一阶 | 近似二阶 | 超线性 | 光滑凸 | 保正定 | 数值不如 BFGS 稳定 | |
BFGS | 一阶 | 近似二阶 | 超线性 | 中维凸 | 最常用;稳定性好 | 高维内存占用大 | |
Nelder–Mead | 无 | 无 | 无保证 | 无梯度/带噪声 | 简单;鲁棒 | 高维易失效;收敛慢/不稳定 | |
ADMM | 可选 | 无 | O(1/k)(Ergodic) | 视子问题复杂度而定 | 分布式、稀疏、含非光滑 | 分布式并行;适合非光滑正则化 | 慢;需调 ρ;非凸无保证 |
11.参数与符号约定
-
:目标函数
-
:决策变量
-
:全局最优解(假定存在且惟一)
-
:梯度向量
-
:Hessian矩阵
-
L:梯度 Lipschitz 常数,即
-
μ>0 :强凸常数,即
-
:条件数
-
对于二次型
,令
对称正定,特征值记为
其它符号将在对应算法中定义。