优化理论

本笔记面向深度学习科研人员,系统讲解优化理论的数学基础,涵盖经典方法、自适应学习率、自然梯度、K-FAC 以及信任域方法。每部分包含严格的数学推导与直觉解释。


1. 经典优化方法

1.1 梯度下降法 (Gradient Descent)

基本更新规则

给定目标函数 ,梯度下降法沿负梯度方向进行迭代更新:

其中 为学习率(步长)。

一阶收敛速度分析

定理 1.1 (梯度下降的收敛速率)

假设 -平滑(-Lipschitz 梯度)且 -强凸,则梯度下降法以线性速率收敛:

证明:

由于 -平滑,利用二次上界(Quadratic Upper Bound):

代入更新规则

取最优步长

由强凸性,,代入得:

迭代 次即得所证。

直觉解释:

  • 条件数 决定了收敛速率。病态(ill-conditioned)问题收敛慢。
  • 步长选择 是最优的,过大会发散,过小会收敛缓慢。
  • 梯度下降仅利用一阶信息,在强凸二次函数上收敛时间为

1.2 牛顿法 (Newton’s Method)

二阶收敛性

牛顿法利用二阶导数信息加速收敛:

其中 为 Hessian 矩阵。

定理 1.2 (牛顿法局部二阶收敛)

二阶连续可微,Hessian 在最优解 处非奇异,且 。则牛顿法局部二阶收敛:

证明:

处 Taylor 展开:

因此:

代入展开式:

时,,故 ,于是:

牛顿法的优势与局限

方面说明
优势二阶收敛(比梯度下降的线性收敛快得多)
局限需要计算 的 Hessian 矩阵并求逆
适用场景小规模问题(如逻辑回归、神经网络精调)
深度学习问题 可达百万至十亿,Hessian 计算不现实

信赖域解释: 牛顿法可视为在每一步求解如下信赖域子问题:

正定时,解为 ,即牛顿步骤。


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 源自「对不同参数自适应调整学习率」的思想,核心是对历史梯度平方累积:

更新规则:

其中:

  • 为第 个参数在时间 的梯度
  • 为累积梯度平方矩阵(对角元素为
  • 为数值稳定项(通常

对角形式的推导:

假设参数独立,近似目标函数为:

其中 为 Hessian 对角元素。

对每个参数做二阶展开并求解最优步长:

若用累积梯度平方 估计 (假设 ),则:

学习率衰减分析

引理 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 结合了两大思想:

  1. 动量 (Momentum):加速收敛、抑制震荡
  2. 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 正则与自适应学习率耦合畸变问题。

  1. 标准 Adam + L2 正则(错误耦合) 损失加 ,梯度混入

    权重衰减强度被自适应学习率缩放,超参 失去物理意义。

  2. AdamW 正确分离式更新(行业标准) 先独立做权重衰减,再执行 Adam 梯度更新,二者完全解耦:

实践意义:

特性Adam+L2AdamW
正则化强度依赖参数尺度显式控制
权重衰减与自适应学习率耦合独立于学习率
超参解释性

直觉: AdamW 把权重衰减从梯度项中剥离,不再被一阶梯度、二阶矩自适应学习率影响,让 成为纯粹、可解释的权重衰减系数,解决了 Adam+L2 正则效果不稳定的问题。


3. 自然梯度 (Natural Gradient)

3.1 从欧氏度量到黎曼度量

经典梯度的局限

经典梯度下降 基于欧氏度量 ,即假设参数空间是均匀的。但在概率分布空间,KL 散度比欧氏距离更自然地度量「变化」。

KL 散度作为局部度量

两个概率分布 之间的 KL 散度在一阶近似下:

其中 Fisher 信息矩阵

定义 3.1 (黎曼度量张量)

,则参数空间配备黎曼度量:


3.2 Fisher 信息矩阵的推导

定理 3.1 (Fisher 信息矩阵)

对参数化概率分布 ,Fisher 信息矩阵定义为:

推导:

对数似然梯度 的协方差:

第二项为零,因为:

因此:

性质:

  1. 半正定
  2. ,其中 为对数似然的 Hessian
  3. 对指数族分布, 与 Hessian 一致

与 Hessian 的联系:

对损失函数 为数据分布),有:

取期望:

若模型正确(),第二项为零,故


3.3 自然梯度更新

定义

自然梯度定义为损失函数梯度在黎曼度量下的最速上升方向:

定理 3.2 (自然梯度更新)

在 KL 散度约束下,自然梯度更新为:

推导:

考虑约束优化问题:

一阶近似约束:

使用拉格朗日乘子法:

求导并令为零:

令步长 ,即得自然梯度更新。


3.4 与置信域方法的关系

置信域 (Trust Region) 方法 同样在约束区域内近似目标函数:

其中 为正定矩阵。

类比:

  • 经典 TRR:用 (欧氏度量)
  • 自然梯度 TR:用 (黎曼度量)

差异:

  • 欧氏度量假设参数空间各向同性
  • 黎曼度量基于 Fisher 信息,考虑了参数变化对分布的影响

直觉: 自然梯度告诉你「在概率分布空间中最有效的下降方向」,而非「在参数空间中欧氏意义下最陡的方向」。这对于涉及概率输出的模型(如分类器、生成模型)尤为重要。


4. K-FAC (Kronecker-Factored Approximate Curvature)

4.1 动机:解决 Fisher 矩阵的计算瓶颈

自然梯度更新 需要:

  1. 计算 为参数数量,可达百万)
  2. 求逆

K-FAC 的核心思想: 用低秩 Kronecker 积近似 Fisher 矩阵,实现 存储与 更新。


4.2 Kronecker 分解的数学基础

定义 4.1 (Kronecker 积)

,Kronecker 积为:

关键性质:

  1. 矩阵-向量乘积的分解计算:,则对向量

    这允许高效计算而不需要显式构造

  2. 求逆公式:


4.3 对角近似 vs Kronecker 近似的权衡

对角近似

假设 为对角矩阵 ,则:

  • 存储:
  • 求逆:
  • 更新:

优点: 极其简单高效

缺点: 忽略参数间相关性,对于高度相关的参数(如深度网络跨层参数)精度差

Kronecker 近似

假设 ,其中 ,总参数

优点: 捕获局部结构相关性

缺点: 需要选择合适的分解维度(通常对应网络层或权重矩阵结构)

权衡对比

近似方式存储复杂度计算复杂度精度
完整 Fisher最高
对角近似最低
Kronecker中等

4.4 Fisher 矩阵的块对角 Kronecker 分解

分块结构

对于全连接层参数 ,其 Fisher 信息矩阵为:

K-FAC 将 分解为:

其中:

  • ,捕获输入激活间的相关性
  • ,捕获输出梯度间的相关性

近似推导:

利用方差拆分:

其中 为输入激活, 为输出梯度。在 K-FAC 中,我们用样本估计:

则:

自然梯度计算的高效实现

给定梯度 ,自然梯度更新为:

利用 Kronecker 性质:

其中 的矩阵形式。

算法复杂度:

操作复杂度
存储
计算
梯度计算

相比完整 Fisher 的 ,K-FAC 实现了线性复杂度。


4.5 K-FAC 的实践要点

超参选择:

  • 块大小:通常按层划分(每层独立 Kronecker 分解)
  • 移动平均衰减:
  • 小批量大小:影响估计方差

训练稳定性:

  • 添加 damping 以保证数值稳定
  • 通常取

效果:

  • 在大规模 CNN、RNN 中效果显著
  • 可达 SGD with momentum 的 2-10 倍加速

5. 信任域方法 (Trust Region Methods)

5.1 从信赖域到 TRPO

信赖域方法概述

信赖域方法在每一步于当前位置 附近构建局部模型

其中 通常为二阶近似:

为曲率估计(可以是 Hessian、Hessian-free、或仅对角)。

TRPO 的优化目标

Trust Region Policy Optimization (TRPO) 将策略优化问题建模为最大化期望回报,同时约束策略更新的幅度:

推导为单步优化问题:

对每个状态 ,令 为状态访问分布,则目标可写为:

定义 为平均 KL 散度约束。


5.2 KL 散度约束下的拉格朗日乘子法

将 KL 散度约束加入目标:

最优性条件(一阶):

近似求解:

使用一阶近似 ,并假设 ,则:

,在 处展开二阶项,得到关于 的线性方程组。


5.3 共轭梯度法求解子问题

子问题的建立

将 TRPO 的约束优化问题近似为二次规划:

其中:

  • (Fisher 信息矩阵)
  • (或根据度量变化)

等价的无约束形式:

引入拉格朗日乘子

最优性条件:

共轭梯度求解步骤

输入: (可用 Hessian-vector product 近似),约束半径

输出: 步长

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 的高效计算

深度网络中,完整的 无法存储。K-FAC 提供近似:

利用 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 性质:


本笔记基于优化理论与深度学习交叉领域的经典工作编写,重点在于建立从理论到实践的桥梁。