18 了解指数加权平均
一、什么是指数加权平均?
指数加权平均是一种高效计算时间序列数据滑动平均值的方法,广泛应用于深度学习中的优化算法(如 Momentum、RMSProp、Adam 等)。
其核心思想是:对近期数据赋予更高权重,对远期数据赋予指数衰减的权重。
二、核心公式
指数加权平均的递推公式为:
\[v_t = \beta v_{t-1} + (1 - \beta) \theta_t\]其中:
- $v_t$:第 $t$ 步的指数加权平均值;
- $\theta_t$:第 $t$ 步的原始观测值(例如第 $t$ 天的温度);
- $\beta \in [0, 1)$:平滑参数(smoothing factor),控制“记忆长度”。
初始化:通常设 $v_0 = 0$。
三、直观理解:展开公式
以 $\beta = 0.9$ 为例,展开 $v_{100}$ 可得:
\[\begin{aligned} v_{100} &= 0.1 \theta_{100} + 0.1 \cdot 0.9 \, \theta_{99} + 0.1 \cdot 0.9^2 \, \theta_{98} \\ &\quad + 0.1 \cdot 0.9^3 \, \theta_{97} + \cdots \end{aligned}\]一般形式为:
\[v_t = (1 - \beta) \sum_{k=0}^{t-1} \beta^k \theta_{t-k}\]这表明:
- 权重按 $\beta^k$ 指数衰减;
- 所有系数之和近似为 1(严格来说需偏差修正,见下文);
- 因此 $v_t$ 是一个加权平均,且越近的数据权重越大。
四、$\beta$ 与“有效记忆窗口”的关系
虽然 EWA 理论上使用了所有历史数据,但因指数衰减,实际有效记忆长度有限。
一个经验法则:
当 $\beta = 1 - \varepsilon$ 时,EWA 大致等效于对最近 $\frac{1}{\varepsilon} = \frac{1}{1 - \beta}$ 个时间步的平均。
示例:
| $\beta$ | 有效天数(近似) | 说明 |
|---|---|---|
| 0.9 | $\frac{1}{0.1} = 10$ 天 | 红线,响应较快 |
| 0.98 | $\frac{1}{0.02} = 50$ 天 | 绿线,更平滑 |
| 0.5 | $\frac{1}{0.5} = 2$ 天 | 黄线,噪声大 |
数学依据:$\beta^{1/(1-\beta)} \approx \frac{1}{e} \approx 0.368$,即权重衰减到峰值的约 1/3。
五、实现方式(高效!)
实际代码中无需存储所有历史 $\theta_t$,只需维护一个变量 $v$:
1
2
3
v = 0
for t in range(1, T+1):
v = beta * v + (1 - beta) * theta[t]
优势:
- 内存效率高:仅需存储一个标量 $v$;
- 计算高效:每步仅一次乘加操作;
- 适合大规模参数:如神经网络中百万级参数的梯度平滑。
⚠️ 注意:这不是最精确的平均(如滑动窗口平均更准),但在深度学习中速度与内存优势远大于精度损失。
六、偏差修正(Bias Correction)——预告
由于初始 $v_0 = 0$,早期 $v_t$ 会系统性偏低(尤其当 $\beta$ 接近 1 时)。
解决方案:偏差修正(Bias Correction)
修正公式(下一讲内容):
\[\hat{v}_t = \frac{v_t}{1 - \beta^t}\]- 当 $t$ 较小时,$\beta^t$ 不可忽略,$\hat{v}_t$ 更准确;
- 当 $t$ 很大时,$\beta^t \to 0$,$\hat{v}_t \approx v_t$。
Adam 优化器就使用了这种修正。
七、总结要点
| 要点 | 说明 |
|---|---|
| 公式 | $v_t = \beta v_{t-1} + (1 - \beta) \theta_t$ |
| 权重分布 | 指数衰减:$(1-\beta)\beta^k$ |
| 有效窗口 | 约 $\frac{1}{1 - \beta}$ 步 |
| 优点 | 内存 O(1),计算快,适合高维数据 |
| 缺点 | 初期有偏差(可用 bias correction 修正) |
| 应用 | Momentum、RMSProp、Adam 等优化算法的基础 |
掌握指数加权平均,是理解现代深度学习优化器的关键第一步。它体现了工程实践中对效率与效果的权衡智慧。
[!NOTE] ✏️ 和梯度下降的关系 指数加权平均(Exponentially Weighted Averages, EWA)本身不是优化算法,但它是现代梯度下降改进算法的核心组件。它与标准梯度下降(Vanilla Gradient Descent)的关系,可以理解为:EWA 为梯度下降“赋能”,使其更智能、更快、更稳定。
下面从几个关键角度详细说明它们的关系:
1. 标准梯度下降的局限性
标准梯度下降更新参数的公式为:
\[\theta_{t+1} = \theta_t - \alpha \nabla_\theta J(\theta_t)\]其中 $\nabla_\theta J(\theta_t)$ 是当前批次(或样本)计算出的瞬时梯度。
问题:
- 梯度可能噪声大(尤其在小批量或随机梯度下降中);
- 在损失函数的“峡谷”或“崎岖”区域,容易震荡或卡在局部平台;
- 学习率 $\alpha$ 需要手动精细调整。
2. EWA 如何改进梯度下降?——引入“动量”思想
核心思想:不要只看当前梯度,而要看近期梯度的“趋势” 。
这正是 EWA 的用武之地!✅ 应用 1:Momentum(动量法)
Momentum 使用 EWA 来平滑梯度,形成“速度”(velocity):
\[\begin{aligned} v_t &= \beta v_{t-1} + (1 - \beta) \nabla_\theta J(\theta_t) \quad \text{(EWA 计算梯度的指数加权平均)} \\ \theta_{t+1} &= \theta_t - \alpha v_t \end{aligned}\]
- 这里的 $v_t$ 就是梯度的 EWA(通常省略 $1-\beta$,直接写成 $v_t = \beta v_{t-1} + g_t$,本质相同);
效果:
- 抑制震荡(反向梯度被平均掉);
- 加速沿一致方向的移动(如穿过峡谷);
- 类似物理中的“惯性”。
📌 关系:Momentum = 梯度下降 + 梯度的 EWA(作为更新方向)
✅ 应用 2:RMSProp(自适应学习率)
RMSProp 对梯度的平方使用 EWA,动态调整每个参数的学习率:
\[\begin{aligned} s_t &= \beta s_{t-1} + (1 - \beta) (\nabla_\theta J(\theta_t))^2 \quad \text{(EWA of squared gradient)} \\ \theta_{t+1} &= \theta_t - \frac{\alpha}{\sqrt{s_t + \epsilon}} \nabla_\theta J(\theta_t) \end{aligned}\]
- $s_t$ 是梯度平方的 EWA,反映近期梯度的幅度;
效果:
- 梯度大的参数 → $s_t$ 大 → 实际步长小(防止振荡);
- 梯度小的参数 → $s_t$ 小 → 实际步长大(加速收敛)。
📌 关系:RMSProp = 梯度下降 + 梯度平方的 EWA(用于自适应学习率)
✅ 应用 3:Adam(最流行的优化器)
Adam 同时结合了 Momentum 和 RMSProp,即对梯度和梯度平方都做 EWA:
\[\begin{aligned} v_t &= \beta_1 v_{t-1} + (1 - \beta_1) g_t \quad &\text{(1st moment: gradient EWA)} \\ s_t &= \beta_2 s_{t-1} + (1 - \beta_2) g_t^2 \quad &\text{(2nd moment: squared gradient EWA)} \\ \hat{v}_t &= \frac{v_t}{1 - \beta_1^t}, \quad \hat{s}_t = \frac{s_t}{1 - \beta_2^t} \quad &\text{(bias correction)} \\ \theta_{t+1} &= \theta_t - \frac{\alpha}{\sqrt{\hat{s}_t} + \epsilon} \hat{v}_t \end{aligned}\]📌 关系:Adam = 梯度下降 + 两个 EWA(梯度 + 梯度平方)+ 偏差修正
3. 为什么 EWA 特别适合优化?
特性 对优化的帮助 低内存 只需存储 $v_t$ 或 $s_t$,适合百万级参数 计算快 每步仅几次乘加,不拖慢训练 平滑噪声 抑制随机梯度的方差,稳定更新 捕捉趋势 利用历史信息,避免“短视”更新 4. 总结:EWA 与梯度下降的关系
方法 是否使用 EWA 作用 标准梯度下降 ❌ 直接用瞬时梯度更新 Momentum ✅(对梯度) 引入惯性,加速收敛,减少震荡 RMSProp ✅(对梯度平方) 自适应学习率,处理非平稳目标 Adam ✅✅(梯度 + 梯度平方) 结合两者优点,当前默认选择 💡 简单说:
梯度下降告诉你“往哪走”,EWA 告诉你“怎么走得更聪明” 。
没有 EWA,梯度下降就像蒙眼走路;有了 EWA,它就有了“记忆”和“预判”。因此,理解 EWA 是掌握现代深度学习优化器(Momentum / RMSProp / Adam)的基石。吴恩达先讲 EWA,正是为了后续讲解这些高级优化算法做铺垫。