EECS498 Note 1: 信息与优化 | Feixiang Tao
Secret Blueprint
EECS598-1 2026-01-22 30 MIN READ

EECS498 Note 1: 信息与优化

#Math #Deep Learning #Information Theory

Part 1: 信息、编码与优化

优化过程本质上是在寻找一个模型分布 QQ,使其以“最小的编码代价”来描述真实数据分布 PP

1. 信息的度量:为什么是 log\log

我们首先需要来衡量“信息量”。香农给出了一组公设决定了这把尺子的唯一性。

  • 直觉:

    • 必然事件(太阳升起)发生,信息量为 0。
    • 极小概率事件(中彩票)发生,信息量巨大。
    • 两个独立事件同时发生的信息量,应该等于它们各自信息量之和(可加性)。
  • 公设导出定义: 设事件 xx 发生的概率为 p(x)p(x),其信息量 I(p)I(p) 必须满足:

    1. I(p)0I(p) \ge 0 (非负性)
    2. I(1)=0I(1) = 0 (必然性)
    3. I(p1p2)=I(p1)+I(p2)I(p_1 p_2) = I(p_1) + I(p_2) (独立事件可加性)
    4. I(p)I(p) 是连续单调递减函数。

    唯一满足上述条件的函数形式就是对数: I(x)=logbp(x)I(x) = -\log_b p(x) (通常取 b=2b=2 单位为比特,或 b=eb=e 单位为奈特)

  • 最佳编码长度 这不仅是“惊讶度”,更是描述该事件所需的最小比特数。如果一个事件发生概率是 1/21/2,我们需要 1 bit;如果是 1/81/8,我们需要 3 bits。

2. 两个分布的距离:KL 散度

在优化中,我们有两个分布:

  1. 真实分布 P(x)P(x)(上帝视角):这是客观存在的真理。
  2. 模型分布 Q(x;θ)Q(x; \theta)(我们的神经网络):这是我们试图去拟合真理的假设。

当我们用 QQ 去模拟 PP 时,我们一定会付出额外的代价。

  • 场景模拟:

    • 真实数据来自于 PP,所以事件 xx 出现的频率遵循 P(x)P(x)
    • 但是,我们在设计编码本(Encoder)时,是根据我们的模型 Q(x)Q(x) 设计的。也就是说,对于事件 xx,我们分配的编码长度是 logQ(x)-\log Q(x)
  • 平均编码长度(交叉熵): H(P,Q)=ExP[logQ(x)]=xP(x)logQ(x)H(P, Q) = \mathbb{E}_{x \sim P} [-\log Q(x)] = -\sum_x P(x) \log Q(x) 这是我们实际付出的平均比特数。

  • 理想编码长度(熵): 如果我们要用 PP 自己的编码本(上帝视角),代价是最低的: H(P)=ExP[logP(x)]=xP(x)logP(x)H(P) = \mathbb{E}_{x \sim P} [-\log P(x)] = -\sum_x P(x) \log P(x)

  • 额外的浪费 : KL 散度正好就是**“实际代价”减去“理想代价”**: DKL(PQ)=H(P,Q)H(P)=xP(x)logP(x)Q(x)D_{KL}(P || Q) = H(P, Q) - H(P) = \sum_x P(x) \log \frac{P(x)}{Q(x)}

  • 几何意义: KL 散度衡量了当我们误把 QQ 当作 PP 时,损失了多少信息。 在参数更新前后(θt\theta_t vs θt+1\theta_{t+1}),KL 散度衡量了模型分布变化了多少。这比参数欧氏距离 θt+1θt2||\theta_{t+1} - \theta_t||^2 更能反映模型行为的变化.

3. 为什么是交叉熵?

在训练神经网络时,为什么 Loss Function 几乎总是交叉熵?

L=P(x)logQ(x)\mathcal{L} = -\sum P(x) \log Q(x)

结合上面的推导,我们可以给出三个维度的解释:

A. 信息论视角:最小化编码长度

DKL(PQ)=H(P,Q)交叉熵H(P)数据熵D_{KL}(P || Q) = \underbrace{H(P, Q)}_{\text{交叉熵}} - \underbrace{H(P)}_{\text{数据熵}}

  • 我们的目标是让 QQ 尽可能接近 PP,即最小化 DKL(PQ)D_{KL}(P || Q)
  • 注意 H(P)H(P) 仅仅取决于真实数据(训练集),对于优化器来说,它是常数(Constant)。
  • 结论: 最小化 KL 散度     \iff 最小化交叉熵。 (注:这就是为什么我们不需要算 KL 的后半部分,只要算前半部分就行。)

B. 统计学视角:最大似然估计

假设我们有数据集 D={x1,x2,,xN}\mathcal{D} = \{x_1, x_2, \dots, x_N\} 采样自 PP。 我们要最大化模型生成这些数据的概率: maxθi=1NQ(xi;θ)\max_\theta \prod_{i=1}^N Q(x_i; \theta) 取对数变加法(Log-Likelihood): maxθi=1NlogQ(xi;θ)\max_\theta \sum_{i=1}^N \log Q(x_i; \theta) 等价于最小化负对数似然(NLL): minθ1Ni=1NlogQ(xi;θ)\min_\theta -\frac{1}{N} \sum_{i=1}^N \log Q(x_i; \theta) 结论: 当样本量 NN \to \infty 时,NLL 就是交叉熵(的蒙特卡洛近似)。所以交叉熵本质上就是 MLE。

C. 几何视角:投影

在分布流形上,寻找最优的 QQ 其实是一个I-Projection 的过程。 Q=argminQQDKL(PQ)Q^* = \arg\min_{Q \in \mathcal{Q}} D_{KL}(P || Q) 交叉熵引导我们将模型分布投影到离真实数据分布最近的流形点上。


4. 总结:Part 1

在进入具体的 SGD、Adam 之前,我们建立了优化的世界观:

  1. 参数 θ\theta 只是载体,我们真正优化的是它背后的概率分布 QθQ_\theta
  2. 优化的本质:是在信息空间中,寻找一种编码方式 QQ,使得它对真实世界 PP 的描述最省流。
  3. 度量标准:不是参数走了多远,而是信息损失了多少。

Part 2: 统计流形

在 Part 1 中,我们确立了优化问题的核心目标:最小化真实分布 PP 与模型分布 PθP_\theta 之间的信息差异(即 KL 散度)。

在这一部分,我们将深入探讨参数空间与分布空间的几何结构差异。我们将证明,参数空间并非平坦的欧氏空间,而是一个弯曲的黎曼流形。通过对 KL 散度的二阶展开,我们将导出该流形的度量张量——Fisher 信息矩阵。

1. 统计流形

考虑一组由参数 θRd\theta \in \mathbb{R}^d 决定的概率密度函数族 SSS={p(x;θ)θΘRd}S = \{ p(x; \theta) \mid \theta \in \Theta \subseteq \mathbb{R}^d \} 其中 xx 是随机变量,θ\thetadd 维参数向量。

我们将 SS 视为一个几何对象,称为统计流形

  • 每一个点 p(x;θ)p(x; \theta) 代表一个概率分布。
  • 参数 θ=[θ1,,θd]T\theta = [\theta_1, \dots, \theta_d]^T 是这个流形上的局部坐标系。

在欧氏空间中,参数的变化量 Δθ2||\Delta \theta||^2 衡量了两点间的距离。但在统计流形上,参数的微小变化并不等同于分布的本质变化。为了衡量分布的变化,我们需要定义流形上的距离。由 Part 1 可知,KL 散度是衡量分布差异的自然度量。

2. 黎曼度规的导出

为了在流形上进行微积分运算,我们需要找到局部的度量张量。这就要求我们分析当参数 θ\theta 发生微小位移 δ\delta 时的局部行为。

设当前参数为 θ\theta,偏移后的参数为 θ+δ\theta + \delta,其中 δ0\delta \to 0。我们关注两者之间的 KL 散度: DKL(PθPθ+δ)=ExPθ[logp(x;θ)logp(x;θ+δ)]D_{KL}(P_\theta || P_{\theta+\delta}) = \mathbb{E}_{x \sim P_\theta} \left[ \log p(x; \theta) - \log p(x; \theta+\delta) \right]

2.1 对数似然的泰勒展开

首先,我们将项 logp(x;θ+δ)\log p(x; \theta+\delta)θ\theta 处进行二阶泰勒展开:

logp(x;θ+δ)logp(x;θ)+θlogp(x;θ)Tδ+12δTθ2logp(x;θ)δ\log p(x; \theta+\delta) \approx \log p(x; \theta) + \nabla_\theta \log p(x; \theta)^T \delta + \frac{1}{2} \delta^T \nabla^2_\theta \log p(x; \theta) \delta

将此展开式代入 KL 散度的定义式中:

DKL(PθPθ+δ)ExPθ[logp(x;θ)(logp(x;θ)+θlogp(x;θ)Tδ+12δTθ2logp(x;θ)δ)]=ExPθ[θlogp(x;θ)Tδ12δTθ2logp(x;θ)δ]\begin{aligned} D_{KL}(P_\theta || P_{\theta+\delta}) &\approx \mathbb{E}_{x \sim P_\theta} \left[ \log p(x; \theta) - \left( \log p(x; \theta) + \nabla_\theta \log p(x; \theta)^T \delta + \frac{1}{2} \delta^T \nabla^2_\theta \log p(x; \theta) \delta \right) \right] \\ &= \mathbb{E}_{x \sim P_\theta} \left[ - \nabla_\theta \log p(x; \theta)^T \delta - \frac{1}{2} \delta^T \nabla^2_\theta \log p(x; \theta) \delta \right] \end{aligned}

利用期望的线性性质,将其拆分为一阶项和二阶项:

DKLExPθ[θlogp(x;θ)]Tδ一阶项12δTExPθ[θ2logp(x;θ)]δ二阶项D_{KL} \approx \underbrace{- \mathbb{E}_{x \sim P_\theta} [\nabla_\theta \log p(x; \theta)]^T \delta}_{\text{一阶项}} \underbrace{- \frac{1}{2} \delta^T \mathbb{E}_{x \sim P_\theta} [\nabla^2_\theta \log p(x; \theta)] \delta}_{\text{二阶项}}

2.2 一阶项的消去

我们来考察一阶项中的期望 ExPθ[θlogp(x;θ)]\mathbb{E}_{x \sim P_\theta} [\nabla_\theta \log p(x; \theta)]。 利用对数导数技巧(Log-derivative trick):logp=pp\nabla \log p = \frac{\nabla p}{p},我们有:

ExPθ[θlogp(x;θ)]=p(x;θ)θlogp(x;θ)dx=p(x;θ)θp(x;θ)p(x;θ)dx=θp(x;θ)dx=θp(x;θ)dx(假设满足积分与求导交换的正则性条件)\begin{aligned} \mathbb{E}_{x \sim P_\theta} [\nabla_\theta \log p(x; \theta)] &= \int p(x; \theta) \nabla_\theta \log p(x; \theta) \, dx \\ &= \int p(x; \theta) \frac{\nabla_\theta p(x; \theta)}{p(x; \theta)} \, dx \\ &= \int \nabla_\theta p(x; \theta) \, dx \\ &= \nabla_\theta \int p(x; \theta) \, dx \quad \text{(假设满足积分与求导交换的正则性条件)} \end{aligned}

由于概率密度函数的积分为 1(p(x;θ)dx=1\int p(x; \theta) dx = 1),常数的导数为 0,因此: θ(1)=0\nabla_\theta (1) = 0

结论: KL 散度展开式的一阶项恒为 0。这也符合距离度量的性质(在 PθP_\theta 处距离取极小值 0,故一阶导数为 0)。

2.3 二阶项与 Fisher 信息矩阵

现在 KL 散度的近似式简化为仅剩二阶项: DKL(PθPθ+δ)12δTExPθ[θ2logp(x;θ)]δD_{KL}(P_\theta || P_{\theta+\delta}) \approx - \frac{1}{2} \delta^T \mathbb{E}_{x \sim P_\theta} [\nabla^2_\theta \log p(x; \theta)] \delta

我们需要处理海森矩阵的期望 E[2logp]\mathbb{E}[\nabla^2 \log p]。利用等式 2logp=2pp(pp)(pp)T\nabla^2 \log p = \frac{\nabla^2 p}{p} - (\frac{\nabla p}{p})(\frac{\nabla p}{p})^T,两边求期望:

E[2logp]=p(2pp(logp)(logp)T)dx=2pdx=2pdx=0p(logp)(logp)Tdx=E[(θlogp(x;θ))(θlogp(x;θ))T]\begin{aligned} \mathbb{E} [\nabla^2 \log p] &= \int p \left( \frac{\nabla^2 p}{p} - (\nabla \log p)(\nabla \log p)^T \right) dx \\ &= \underbrace{\int \nabla^2 p \, dx}_{= \nabla^2 \int p \, dx = 0} - \int p (\nabla \log p)(\nabla \log p)^T dx \\ &= - \mathbb{E} \left[ (\nabla_\theta \log p(x; \theta)) (\nabla_\theta \log p(x; \theta))^T \right] \end{aligned}

定义 Fisher 信息矩阵 为 Score Function 的协方差矩阵: F(θ)ExPθ[θlogp(x;θ)θlogp(x;θ)T]\mathbf{F}(\theta) \triangleq \mathbb{E}_{x \sim P_\theta} \left[ \nabla_\theta \log p(x; \theta) \nabla_\theta \log p(x; \theta)^T \right]

代回 KL 散度展开式,负号抵消,得到最终的局部距离公式:

DKL(PθPθ+δ)12δTF(θ)δD_{KL}(P_\theta || P_{\theta+\delta}) \approx \frac{1}{2} \delta^T \mathbf{F}(\theta) \delta

2.4 度规

在黎曼几何中,流形上微元距离的平方 ds2ds^2 由度量张量 GG 定义:ds2=ijgijdθidθjds^2 = \sum_{ij} g_{ij} d\theta_i d\theta_j。 对比上式,我们可以确认:Fisher 信息矩阵 F(θ)\mathbf{F}(\theta) 正是统计流形上的黎曼度量张量 G(θ)G(\theta)

这表明,在统计流形上,衡量参数变化大小的正确方式不是欧氏距离 δ2=δTIδ||\delta||^2 = \delta^T I \delta,而是马氏距离形式的 δTFδ\delta^T \mathbf{F} \delta


3. 从 SGD 到 自然梯度

优化问题的目标是最小化损失函数 L(θ)\mathcal{L}(\theta)。我们希望在每一步更新中,Loss 下降得越多越好。这可以形式化为最速下降问题。

3.1 欧氏空间的最速下降

若假设参数空间是平坦的欧氏空间,我们将步长限制在固定半径 ϵ\epsilon 内:

minδL(θ+δ)s.t.δ2ϵ\begin{aligned} \min_{\delta} \quad & \mathcal{L}(\theta + \delta) \\ \text{s.t.} \quad & ||\delta||^2 \le \epsilon \end{aligned}

L\mathcal{L} 进行一阶泰勒展开:L(θ+δ)L(θ)+LTδ\mathcal{L}(\theta + \delta) \approx \mathcal{L}(\theta) + \nabla \mathcal{L}^T \delta。 构建拉格朗日函数: LEuclid=LTδ+λ(δTIδϵ)L_{Euclid} = \nabla \mathcal{L}^T \delta + \lambda (\delta^T I \delta - \epsilon)δ\delta 求导并令为 0: L+2λδ=0    δ=12λL\nabla \mathcal{L} + 2\lambda \delta = 0 \implies \delta = -\frac{1}{2\lambda} \nabla \mathcal{L} 这就导出了我们熟悉的 标准梯度下降 (SGD)θt+1=θtηL(θt)\theta_{t+1} = \theta_t - \eta \nabla \mathcal{L}(\theta_t) 几何上,这是沿着等高线的法线方向移动。

3.2 统计流形的最速下降

若我们要在这个弯曲的统计流形上进行最速下降,限制条件应由流形的内蕴距离给出。即我们希望在改变分布程度固定的前提下,最大化 Loss 的下降:

minδL(θ+δ)L(θ)+LTδs.t.DKL(PθPθ+δ)ϵ\begin{aligned} \min_{\delta} \quad & \mathcal{L}(\theta + \delta) \approx \mathcal{L}(\theta) + \nabla \mathcal{L}^T \delta \\ \text{s.t.} \quad & D_{KL}(P_\theta || P_{\theta+\delta}) \le \epsilon \end{aligned}

利用我们在 2.3 节导出的二次型近似,约束条件变为: 12δTFδϵ\frac{1}{2} \delta^T \mathbf{F} \delta \le \epsilon

构建拉格朗日函数: LNatural=LTδ+λ(12δTFδϵ)L_{Natural} = \nabla \mathcal{L}^T \delta + \lambda \left( \frac{1}{2} \delta^T \mathbf{F} \delta - \epsilon \right)

δ\delta 求导: LNaturalδ=L+λFδ=0\frac{\partial L_{Natural}}{\partial \delta} = \nabla \mathcal{L} + \lambda \mathbf{F} \delta = 0

解出最优更新方向 δ\deltaFδ=1λL    δ=1λF1L\mathbf{F} \delta = -\frac{1}{\lambda} \nabla \mathcal{L} \implies \delta = -\frac{1}{\lambda} \mathbf{F}^{-1} \nabla \mathcal{L}

我们将标量系数 1/λ1/\lambda 吸收进学习率 η\eta 中,得到 自然梯度下降 的更新公式:

θt+1=θtηF1L(θt)\theta_{t+1} = \theta_t - \eta \mathbf{F}^{-1} \nabla \mathcal{L}(\theta_t)

3.3 逆变与协变

从微分几何的角度来看:

  • 损失函数的梯度 L\nabla \mathcal{L} 是一个 余切向量,也就是一个 1-form(协变),其分量随坐标变换而逆变。
  • 参数更新量 δ\delta 是一个 切向量(逆变)。
  • 在黎曼流形上,切空间与余切空间不是自然同构的。我们需要通过度量张量(及其逆)来建立映射:
    • \sharp 算子:将余切向量映射为切向量。
    • 在局部坐标下,这对应于左乘度规的逆矩阵 G1G^{-1}(即 F1F^{-1})。

因此,自然梯度 ~L=F1L\tilde{\nabla} \mathcal{L} = \mathbf{F}^{-1} \nabla \mathcal{L} 才是流形上真正的梯度方向,它指向了黎曼流形上函数下降最快的方向。它试图沿着流形的 测地线 前进,从而消除了参数化方式带来的畸变。


Part 3: 自适应优化 —— 寻找低成本的二阶近似

在 Part 2 中,我们推导出了自然梯度下降θt+1=θtηF1L\theta_{t+1} = \theta_t - \eta \mathbf{F}^{-1} \nabla \mathcal{L} 以及类似的牛顿法θt+1=θtηH1L\theta_{t+1} = \theta_t - \eta \mathbf{H}^{-1} \nabla \mathcal{L}

然而,在深度学习中,这两个方法都有一个致命的缺陷:计算复杂度。 如果参数量 d=107d = 10^7,那么矩阵 F\mathbf{F}H\mathbf{H} 的大小为 107×10710^7 \times 10^7。存储它需要数百 TB 的显存,计算其逆矩阵 O(d3)O(d^3) 更是天方夜谭。我们无法随身携带这样一个巨大的度规矩阵。

因此,现代优化器的核心哲学是:用一阶梯度的历史信息,去构造一个对角化的二阶矩阵近似。

1. 一般化的牛顿法

为了不局限于交叉熵损失,我们先从最通用的函数最小化角度审视二阶优化。

设损失函数为 L(θ)\mathcal{L}(\theta),我们在当前点 θt\theta_t 处进行二阶泰勒展开(假设 L\mathcal{L} 是二阶可微的):

L(θt+δ)L(θt)+L(θt)Tδ+12δTH(θt)δ\mathcal{L}(\theta_t + \delta) \approx \mathcal{L}(\theta_t) + \nabla \mathcal{L}(\theta_t)^T \delta + \frac{1}{2} \delta^T \mathbf{H}(\theta_t) \delta

其中:

  • LRd\nabla \mathcal{L} \in \mathbb{R}^d 是梯度向量。
  • H=2LRd×d\mathbf{H} = \nabla^2 \mathcal{L} \in \mathbb{R}^{d \times d} 是黑塞矩阵,描述了 Loss 曲面的局部曲率。

1.1 牛顿更新

我们的目标是找到一个步长 δ\delta,使得近似后的 Loss 最小。这是一个关于 δ\delta 的二次型求极值问题。 对 δ\delta 求导并令其为 0:

δ(L(θt)+LTδ+12δTHδ)=L+Hδ=0\nabla_\delta \left( \mathcal{L}(\theta_t) + \nabla \mathcal{L}^T \delta + \frac{1}{2} \delta^T \mathbf{H} \delta \right) = \nabla \mathcal{L} + \mathbf{H} \delta = 0

解得最优步长: δ=H1L\delta = - \mathbf{H}^{-1} \nabla \mathcal{L}

这便是标准的牛顿法。

1.2 牛顿法与自然梯度的关系

  • 牛顿法使用的是 Hessian (H\mathbf{H}):它衡量的是 Loss 曲面 的几何弯曲程度。
  • 自然梯度使用的是 Fisher Matrix (F\mathbf{F}):它衡量的是 概率分布流形 的弯曲程度。

联系: 当损失函数为负对数似然,即 L(θ)=E[logp(xθ)]\mathcal{L}(\theta) = -\mathbb{E}[\log p(x|\theta)] 时,可以证明海森矩阵的期望渐近等于 Fisher 信息矩阵: ExPdata[2L]F\mathbb{E}_{x \sim P_{\text{data}}} [\nabla^2 \mathcal{L}] \approx \mathbf{F} 因此,在深度学习常见的分类任务中,牛顿法与自然梯度法在期望意义上是等价的。它们都试图通过“除以曲率”来拉伸或压缩梯度,使得在平坦方向步子大一点,陡峭方向步子小一点。


自适应优化

在 Part 2 中,我们得到了自然梯度 d=F1Ld = -\mathbf{F}^{-1} \nabla \mathcal{L}。 为了工程落地,现代优化器做出了两个核心的数学假设与近似。我们需要通过推导来看看,这每一步近似到底是在优化什么。

1. 对角化近似:经验 Fisher 矩阵

首先,我们解决矩阵 F\mathbf{F} 太大的问题。 假设 1: 参数之间相互独立,即 F\mathbf{F} 是对角矩阵。 假设 2: 用单次采样的梯度的外积来近似 Fisher 矩阵的期望。

Fisher 矩阵定义为 Score Function 的协方差: F=ExPθ[logp(x)logp(x)T]\mathbf{F} = \mathbb{E}_{x \sim P_\theta} [\nabla \log p(x) \nabla \log p(x)^T]

如果我们取对角线元素 Fii\mathbf{F}_{ii},并用当前的梯度 gtg_t 进行单点估计: F^iigt,i2\hat{F}_{ii} \approx g_{t,i}^2

如果是 Adam/RMSProp,我们会用指数移动平均(EMA)来获得更稳定的估计(即二阶动量 vtv_t): vt,iE[gt,i2]Fiiv_{t,i} \approx \mathbb{E}[g_{t,i}^2] \approx F_{ii}

停!这里有一个巨大的陷阱。 如果我们直接照搬牛顿法/自然梯度 θθF1g\theta \leftarrow \theta - \mathbf{F}^{-1} g,那么更新公式应该是: Δθigivi=gigi2=1gi\Delta \theta_i \propto - \frac{g_i}{v_i} = - \frac{g_i}{g_i^2} = - \frac{1}{g_i} 这非常荒谬! 如果梯度很小,步长反而变成无穷大?这显然不是 Adam 的做法(Adam 是除以 v\sqrt{v})。 这说明:Adam 并不是简单的“对角化自然梯度”。它背后的优化目标变了。

2. 为什么是根号?

要推导出 gv\frac{g}{\sqrt{v}},我们需要引入**缩放不变性 ** 或者 **信赖域 ** 的约束。

路径 A:维度分析

假设我们将 Loss 函数放大 kk 倍:L~=kL\tilde{\mathcal{L}} = k \mathcal{L}

  • 理想的优化器,其参数更新轨迹 θt+1θt\theta_{t+1} - \theta_t 应该不随 kk 的变化而变化。
  1. 梯度下降 (SGD): Δθg\Delta \theta \propto g. 如果 LkL\mathcal{L} \to k\mathcal{L},则 gkgg \to kg。步长变大 kk 倍。 结论:SGD 不具有缩放不变性。

  2. 牛顿法 : ΔθH1g\Delta \theta \propto H^{-1} g. gkgg \to kg,海森矩阵 HkHH \to kHΔθ(kH)1(kg)=k1kH1g=H1g\Delta \theta \to (kH)^{-1} (kg) = k^{-1} k H^{-1} g = H^{-1} g. 结论:牛顿法具有缩放不变性。 (这是二阶方法的优点)

  3. Adam (g/vg / \sqrt{v}): vv 是梯度平方的期望,所以 vk2vv \to k^2 vΔθgvkgk2v=kgkv=gv\Delta \theta \propto \frac{g}{\sqrt{v}} \to \frac{kg}{\sqrt{k^2 v}} = \frac{kg}{k\sqrt{v}} = \frac{g}{\sqrt{v}} 结论:Adam 具有缩放不变性。

洞察: Adam 的分母 v\sqrt{v} 其实是在做一个归一化。它消除了梯度幅值的影响,只保留了梯度的符号信噪比。这就是为什么 Adam 有时被称为 “Sign Gradient Descent” 的平滑版。

路径 B:最优信赖域

我们换一个更数学的优化目标。我们不限制步长的欧氏距离(SGD),也不限制步长的 KL 散度(Natural Gradient),我们要限制的是“标准化后的步长”。

我们希望在每一步 tt,找到一个更新量 δ\delta,最大化 Loss 的下降,但是要满足一个几何约束:步长在各个维度上的分量,应该根据该维度的不确定性进行加权。

优化问题: minδLTδ\min_{\delta} \quad \nabla \mathcal{L}^T \delta s.t.δD2ϵ2\text{s.t.} \quad || \delta ||_{\mathbf{D}}^2 \le \epsilon^2

这里的 D||\cdot||_{\mathbf{D}} 是一个加权的范数: δD2=i=1dδi2αi2|| \delta ||_{\mathbf{D}}^2 = \sum_{i=1}^d \frac{\delta_i^2}{\alpha_i^2} 其中 αi\alpha_i 是第 ii 个维度的**特征尺度 **。

  • 如果第 ii 维梯度波动很大(gi2g_i^2 大),说明这里很陡峭/不稳定,我们应该谨慎,特征尺度 αi\alpha_i 应该小?还是大?
  • AdaGrad (Duchi et al., 2011) 的原始论文证明中,为了最小化 Regret Bound(遗憾界),最优的加权矩阵 D\mathbf{D} 的对角元应该是梯度平方和的根号

让我们用拉格朗日乘子法解这个几何约束问题:

  1. 拉格朗日函数: L(δ,λ)=igiδi+λ(iδi2αi2ϵ2)L(\delta, \lambda) = \sum_i g_i \delta_i + \lambda \left( \sum_i \frac{\delta_i^2}{\alpha_i^2} - \epsilon^2 \right)

  2. δi\delta_i 求导并令为 0: gi+2λδiαi2=0g_i + 2\lambda \frac{\delta_i}{\alpha_i^2} = 0 δi=αi22λgi\delta_i = - \frac{\alpha_i^2}{2\lambda} g_i

  3. 确定最优的特征尺度 αi\alpha_i AdaGrad/RMSProp 的核心洞见在于:我们应该用过去梯度的均方根 (RMS) 来定义这个特征尺度 αi\alpha_i αi2E[gi2]=vi\alpha_i^2 \approx \mathbb{E}[g_i^2] = v_i (注意:这里 α\alpha 对应的是 scaling factor,在 AdaGrad 的遗憾界推导中,最优的 Preconditioner G=diag(g2)G = \text{diag}(\sqrt{\sum g^2}),这直接导致了分母是根号)。

    如果我们取 αi2vi\alpha_i^2 \propto \sqrt{v_i} (这里稍微有点绕,让我们回到最直接的 RMSProp 定义): 我们定义度量矩阵 M=diag(vi)\mathbf{M} = \text{diag}(\sqrt{v_i})。 我们希望步长 δ\delta 在度量 M\mathbf{M} 下是单位长度: δTMδϵ\delta^T \mathbf{M} \delta \le \epsilon (这就相当于我们在一个被 v\sqrt{v} 拉伸过的空间里走 SGD)。

    等一下,让我们回到最本质的 AdaGrad 结论。Duchi 证明了,要最小化在线凸优化的 Regret: R(T)=t=1Tft(θt)minθt=1Tft(θ)R(T) = \sum_{t=1}^T f_t(\theta_t) - \min_{\theta} \sum_{t=1}^T f_t(\theta) 最优的对角预处理矩阵 G\mathbf{G} 具有形式: Gii=t=1Tgt,i2G_{ii} = \sqrt{\sum_{t=1}^T g_{t,i}^2}

    因此更新规则变成了: θt+1=θtηg2gt\theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{\sum g^2}} g_t

    这就是根号的数学来源:它是 Regret Minimization 问题的解析解。

3. Adam 的完整形态:动量 + RMS 缩放

现在我们把拼图拼起来。Adam 其实是做两件事的组合:

  1. 分子 mtm_t (First Moment): 这不是简单的梯度 gtg_t,而是梯度的 EMA。 mtβ1mt1+(1β1)gtm_t \leftarrow \beta_1 m_{t-1} + (1-\beta_1) g_t 物理意义: 这是一个低通滤波器。它过滤掉了高频的震荡噪声,提取了梯度的主要下降方向。

  2. 分母 vt\sqrt{v_t} (Second Moment Root): 这是梯度的均方根 (RMS)。 vtβ2vt1+(1β2)gt2v_t \leftarrow \beta_2 v_{t-1} + (1-\beta_2) g_t^2 物理意义: 这是一个自适应的信噪比度量Step SizeiηE[gi]E[gi2]\text{Step Size}_i \approx \eta \cdot \frac{\mathbb{E}[g_i]}{\sqrt{\mathbb{E}[g_i^2]}}

    • 如果某维度梯度一直很大且稳定(mm 大,v\sqrt{v} 大),步长接近 η\eta
    • 如果某维度梯度很小(mm 小,v\sqrt{v} 小),步长也接近 η\eta
    • 关键点: Adam 试图把所有维度的更新步长归一化到同一个量级(大约是 η\eta)。它不在乎地形是陡峭还是平坦,它只在乎方向是否确定。

4. 总结:Adam 到底近似了什么?

我们在可以这样总结 Adam :

Adam 不是 直接近似牛顿法(H1g\mathbf{H}^{-1} g)。 Adam 近似了 符号梯度下降,并引入了 Trust Region 的概念。

它通过 D=diag(vt)\mathbf{D} = \text{diag}(\sqrt{v_t}) 这个度规矩阵,将原始的参数空间变换成了一个**超立方体 **。在这个变换后的空间里,所有参数维度的梯度幅度都是 1(或者说信噪比一致)。然后,它在这个“标准化”的空间里,沿着平滑后的一阶动量方向 mtm_t 前进。

这就是为什么 Adam 对学习率 η\eta 不敏感,且收敛极快的原因——因为它消除了参数空间的**尺度差异 **。

END_OF_FILE