优化理论
本笔记面向深度学习科研人员,系统讲解优化理论的数学基础,涵盖经典方法、自适应学习率、自然梯度、K-FAC 以及信任域方法。每部分包含严格的数学推导与直觉解释。
1. 经典优化方法
1.1 梯度下降法 (Gradient Descent)
基本更新规则
给定目标函数
其中
一阶收敛速度分析
定理 1.1 (梯度下降的收敛速率)
假设
证明:
由于
代入更新规则
取最优步长
由强凸性,
迭代
直觉解释:
- 条件数
决定了收敛速率。病态(ill-conditioned)问题收敛慢。 - 步长选择
是最优的,过大会发散,过小会收敛缓慢。 - 梯度下降仅利用一阶信息,在强凸二次函数上收敛时间为
。
1.2 牛顿法 (Newton’s Method)
二阶收敛性
牛顿法利用二阶导数信息加速收敛:
其中
定理 1.2 (牛顿法局部二阶收敛)
设
证明:
将
因此:
代入展开式:
当
牛顿法的优势与局限
| 方面 | 说明 |
|---|---|
| 优势 | 二阶收敛(比梯度下降的线性收敛快得多) |
| 局限 | 需要计算 |
| 适用场景 | 小规模问题(如逻辑回归、神经网络精调) |
| 深度学习问题 |
信赖域解释: 牛顿法可视为在每一步求解如下信赖域子问题:
当
1.3 共轭梯度法 (Conjugate Gradient Method)
基本思想
共轭梯度法旨在无需显式存储 Hessian 矩阵的情况下,求解线性系统
共轭方向定义
一组方向
引理 1.1
算法流程
初始化: x_0, r_0 = b - A x_0, p_0 = r_0
for k = 0, 1, 2, ...:
α_k = (r_k^T r_k) / (p_k^T A p_k)
x_{k+1} = x_k + α_k p_k
r_{k+1} = r_k - α_k A p_k
if ||r_{k+1}|| < ε: break
β_k = (r_{k+1}^T r_{k+1}) / (r_k^T r_k)
p_{k+1} = r_{k+1} + β_k p_k
定理 1.3 (共轭梯度收敛性)
对于对称正定矩阵
其中
与优化联系: 求解二次优化
直觉: 共轭梯度法结合了正交搜索方向(像梯度下降)与共轭性(避免方向重复),在二次函数上具有最优收敛性。
2. 自适应学习率方法
深度学习的核心挑战:高维非凸优化、梯度稀疏、特征尺度不一。经典 SGD 对所有参数使用统一学习率,难以适应。
2.1 AdaGrad
算法推导
AdaGrad 源自「对不同参数自适应调整学习率」的思想,核心是对历史梯度平方累积:
更新规则:
其中:
为第 个参数在时间 的梯度 为累积梯度平方矩阵(对角元素为 ) 为数值稳定项(通常 )
对角形式的推导:
假设参数独立,近似目标函数为:
其中
对每个参数做二阶展开并求解最优步长:
若用累积梯度平方
学习率衰减分析
引理 2.1 (AdaGrad 学习率衰减)
对于稀疏梯度特征(梯度只在少数时间出现),AdaGrad 对应的有效学习率为:
其中
直觉: AdaGrad 实际上对频繁出现的特征施加更小的学习率,对稀疏特征保留更大的学习率。这对于 NLP 中的词嵌入等稀疏特征特别有效。
缺陷:
2.2 RMSProp
指数加权移动平均的引入
RMSProp 通过指数加权移动平均(EWMA)替代简单累积,解决 AdaGrad 学习率过度衰减的问题:
对角形式更新:
参数含义:
控制历史梯度平方的衰减率(通常取 )- 近期梯度对
影响更大,学习率适应更快
与 AdaGrad 的关系:
| 方法 | 累积方式 | 学习率 |
|---|---|---|
| AdaGrad | 持续衰减 | |
| RMSProp | 稳定衰减 |
直觉: RMSProp 通过 EWMA 使
收敛性: RMSProp 并非保证凸收敛,但实践中对非凸问题(如深度网络训练)效果显著。
2.3 Adam (Adaptive Moment Estimation)
融合动量与 RMSProp
Adam 结合了两大思想:
- 动量 (Momentum):加速收敛、抑制震荡
- RMSProp:对梯度二阶矩自适应
算法流程:
初始化: θ_0, m_0 = 0, v_0 = 0, t = 0
for each iteration do:
t += 1
g_t = ∇_θ L(θ_{t-1}) # 梯度
m_t = β_1 * m_{t-1} + (1-β_1) * g_t # 一阶矩(动量)
v_t = β_2 * v_{t-1} + (1-β_2) * g_t^2 # 二阶矩(梯度平方的 EWMA)
m_hat = m_t / (1 - β_1^t) # 偏差校正(bias correction)
v_hat = v_t / (1 - β_2^t)
θ_t = θ_{t-1} - α * m_hat / (√v_hat + ε)
偏差校正的完整推导
问题: 初始化时
一阶矩偏差分析:
展开
真实期望为
特别地,当
因此无偏估计为:
类似地,对二阶矩:
无偏估计为:
偏差校正的作用:
- 初期(
小): 和 接近 0,放大估计值 - 后期(
大): ,校正项趋于 1,影响可忽略
Adam 更新公式的直观理解
更新方向为
- 动量项
提供方向加速 - 归一化因子
提供自适应学习率
收敛性保证: 在适当假设下,Adam 可证明
直觉: Adam 如同「带阻尼的物理球」在损失曲面滚动,动量提供惯性,RMSProp 提供摩擦系数(随梯度变化调整)。
2.4 AdamW (Adam with Weight Decay)
问题背景
标准 Adam+L2 正则化等价于在损失函数上添加
更新为:
问题: Adam 的自适应学习率会与 L2 正则化项耦合,导致正则化强度随参数规模变化,实际有效权重衰减不等于
权重衰减的正确形式
AdamW 将权重衰减独立于自适应学习率:
而非标准 Adam 的
AdamW 与 Adam+L2 的本质区别
核心观点:AdamW 与 Adam+L2 绝对不等价。 AdamW 提出的初衷就是解决 Adam 中 L2 正则与自适应学习率耦合畸变问题。
-
标准 Adam + L2 正则(错误耦合) 损失加
,梯度混入 :权重衰减强度被自适应学习率缩放,超参
失去物理意义。 -
AdamW 正确分离式更新(行业标准) 先独立做权重衰减,再执行 Adam 梯度更新,二者完全解耦:
实践意义:
| 特性 | Adam+L2 | AdamW |
|---|---|---|
| 正则化强度 | 依赖参数尺度 | 显式控制 |
| 权重衰减 | 与自适应学习率耦合 | 独立于学习率 |
| 超参解释性 | 差 | 好 |
直觉: AdamW 把权重衰减从梯度项中剥离,不再被一阶梯度、二阶矩自适应学习率影响,让
3. 自然梯度 (Natural Gradient)
3.1 从欧氏度量到黎曼度量
经典梯度的局限
经典梯度下降
KL 散度作为局部度量
两个概率分布
其中
定义 3.1 (黎曼度量张量)
令
3.2 Fisher 信息矩阵的推导
定理 3.1 (Fisher 信息矩阵)
对参数化概率分布
推导:
对数似然梯度
第二项为零,因为:
因此:
性质:
半正定 ,其中 为对数似然的 Hessian- 对指数族分布,
与 Hessian 一致
与 Hessian 的联系:
对损失函数
取期望:
若模型正确(
3.3 自然梯度更新
定义
自然梯度定义为损失函数梯度在黎曼度量下的最速上升方向:
定理 3.2 (自然梯度更新)
在 KL 散度约束下,自然梯度更新为:
推导:
考虑约束优化问题:
一阶近似约束:
使用拉格朗日乘子法:
对
令步长
3.4 与置信域方法的关系
置信域 (Trust Region) 方法 同样在约束区域内近似目标函数:
其中
类比:
- 经典 TRR:用
(欧氏度量) - 自然梯度 TR:用
(黎曼度量)
差异:
- 欧氏度量假设参数空间各向同性
- 黎曼度量基于 Fisher 信息,考虑了参数变化对分布的影响
直觉: 自然梯度告诉你「在概率分布空间中最有效的下降方向」,而非「在参数空间中欧氏意义下最陡的方向」。这对于涉及概率输出的模型(如分类器、生成模型)尤为重要。
4. K-FAC (Kronecker-Factored Approximate Curvature)
4.1 动机:解决 Fisher 矩阵的计算瓶颈
自然梯度更新
- 计算
( , 为参数数量,可达百万) - 求逆
( )
K-FAC 的核心思想: 用低秩 Kronecker 积近似 Fisher 矩阵,实现
4.2 Kronecker 分解的数学基础
定义 4.1 (Kronecker 积)
对
关键性质:
-
矩阵-向量乘积的分解计算: 若
,则对向量 :这允许高效计算而不需要显式构造
。 -
求逆公式:
4.3 对角近似 vs Kronecker 近似的权衡
对角近似
假设
- 存储:
- 求逆:
- 更新:
优点: 极其简单高效
缺点: 忽略参数间相关性,对于高度相关的参数(如深度网络跨层参数)精度差
Kronecker 近似
假设
优点: 捕获局部结构相关性
缺点: 需要选择合适的分解维度(通常对应网络层或权重矩阵结构)
权衡对比
| 近似方式 | 存储复杂度 | 计算复杂度 | 精度 |
|---|---|---|---|
| 完整 Fisher | 最高 | ||
| 对角近似 | 最低 | ||
| Kronecker | 中等 |
4.4 Fisher 矩阵的块对角 Kronecker 分解
分块结构
对于全连接层参数
K-FAC 将
其中:
,捕获输入激活间的相关性 ,捕获输出梯度间的相关性
近似推导:
利用方差拆分:
其中
则:
自然梯度计算的高效实现
给定梯度
利用 Kronecker 性质:
其中
算法复杂度:
| 操作 | 复杂度 |
|---|---|
| 存储 | |
| 计算 | |
| 梯度计算 |
相比完整 Fisher 的
4.5 K-FAC 的实践要点
超参选择:
- 块大小:通常按层划分(每层独立 Kronecker 分解)
- 移动平均衰减:
- 小批量大小:影响估计方差
训练稳定性:
- 添加 damping
以保证数值稳定 通常取 到
效果:
- 在大规模 CNN、RNN 中效果显著
- 可达 SGD with momentum 的 2-10 倍加速
5. 信任域方法 (Trust Region Methods)
5.1 从信赖域到 TRPO
信赖域方法概述
信赖域方法在每一步于当前位置
其中
TRPO 的优化目标
Trust Region Policy Optimization (TRPO) 将策略优化问题建模为最大化期望回报,同时约束策略更新的幅度:
推导为单步优化问题:
对每个状态
定义
5.2 KL 散度约束下的拉格朗日乘子法
将 KL 散度约束加入目标:
最优性条件(一阶):
近似求解:
使用一阶近似
令
5.3 共轭梯度法求解子问题
子问题的建立
将 TRPO 的约束优化问题近似为二次规划:
其中:
(Fisher 信息矩阵)散 度 项 (或根据度量变化)
等价的无约束形式:
引入拉格朗日乘子
最优性条件:
即
共轭梯度求解步骤
输入:
输出: 步长
d_0 = 0, r_0 = g, z_0 = M r_0
for k = 0, 1, 2, ...:
if ||r_k|| < ε: break
α = (r_k^T z_k) / (p_k^T H p_k) # 计算步长
d_{k+1} = d_k + α p_k
r_{k+1} = r_k - α H p_k
z_{k+1} = M r_{k+1}
β = (r_{k+1}^T z_{k+1}) / (r_k^T z_k)
p_{k+1} = z_{k+1} + β p_k
终止判据: 当步长
Hessian-vector product 的高效计算
深度网络中,完整的
利用 Kronecker 性质:
只需存储
5.4 TRPO 的完整流程
输入: 策略参数 θ_old, 约束 Δ
1. 计算梯度: g = ∇_θ J(θ_old)
2. 构建 Fisher 信息矩阵估计: F ≈ K-FAC(A, B)
3. 用共轭梯度法解 (F + λI)d = -g,约束 ||d|| ≤ Δ
4. 线搜索确保满足 KL 约束:
θ_new = θ_old + α d, α ∈ {0.1, 0.3, 0.5, 0.8, 1.0}
直到 D_KL(π_old || π_new) ≤ Δ
5. 更新: θ_old = θ_new
关键特性:
- 约束显式控制策略变化幅度(相比 Adam/AdamW 的隐式控制)
- 共轭梯度保证
步求解( 为参数维度) - 线搜索确保收敛稳定性
6. 总结与对比
6.1 方法对比
| 方法 | 复杂度 | 收敛速度 | 自适应学习率 | 收敛保证 |
|---|---|---|---|---|
| 梯度下降 | 线性 | 否 | 凸/强凸 | |
| 牛顿法 | 二阶 | 否 | 局部 | |
| 共轭梯度 | 线性(条件数依赖) | 否 | 二次 | |
| AdaGrad | 次线性 | 是 | 凸 | |
| RMSProp | 实践有效 | 是 | 无 | |
| Adam | 实践有效 | 是 | 次线性 | |
| 自然梯度 | 快速 | 天然 | 局部 | |
| K-FAC | 实践有效 | 是 | 近似 | |
| TRPO | 稳定 | 否 | 有约束 |
6.2 选择建议
小规模问题(
- 牛顿法、共轭梯度法优先
大规模深度学习(
- Adam/AdamW 作为默认选择
- 若需二阶信息,用 K-FAC 近似自然梯度
策略优化(Reinforcement Learning):
- TRPO 提供稳定收敛
直觉总结:
- 一阶方法(梯度下降、SGD)简单但慢
- 自适应方法(Adam/RMSProp)在深度学习中平衡效率与效果
- 二阶方法(Newton、K-FAC)在计算允许时能提供更快的收敛
- 约束方法(TRPO)在策略更新中提供安全性保证
附录 A:关键数学结论
A.1 强凸与平滑的定义
定义 A.1 (
函数
定义 A.2 (
函数
A.2 矩阵微积分常用公式
向量梯度:
Kronecker 性质:
本笔记基于优化理论与深度学习交叉领域的经典工作编写,重点在于建立从理论到实践的桥梁。