指数移动平均:技术入门

yo3nglau

2026/05/15

Categories: Deep Learning Tags: Optimization Signal Processing Mathematics

View English Version

引言

指数移动平均(Exponential Moving Average,EMA),又称指数加权移动平均,是一种递归平滑技术,对历史观测值赋予按几何级数衰减的权重。与简单移动平均对固定窗口内所有观测一视同仁不同,EMA 赋予最近数据最大的影响权重,而较旧的观测值则以指数速率衰减。这一概念起源于信号处理与控制工程,最初用于在测量噪声存在的情况下追踪缓慢变化的物理量,如今已成为机器学习中使用最为频繁的基础数值算子之一。

EMA 能如此自然地从工程迁移至人工智能领域,根本原因在于机器学习始终面临同一基本矛盾:如何将噪声大、变化快的信号与稳定、融合历史信息的基准相结合。训练过程中梯度估计随批次剧烈波动;强化学习中的价值目标随策略改进而移位;编码器产生的表示随权重更新而持续变化。在上述情形中,对目标信号维护一个缓慢演变的 EMA,能够提供一种时间惯性——一个平滑、保守的估计,既能抵抗个别离群值的干扰,又对持续性趋势保持敏感。本文从基本原理出发推导 EMA 的数学基础,并考察其在当代人工智能研究四大领域中的作用:自适应梯度优化、强化学习中的目标网络、自监督学习中的动量编码器,以及生成模型训练中的参数平均。

数学基础

观测序列 $x_1, x_2, \ldots$ 的 EMA 由如下递推式定义

$$v_t = \beta \, v_{t-1} + (1 - \beta) \, x_t$$

其中 $v_t$ 为第 $t$ 步的平滑估计,$x_t$ 为第 $t$ 步的原始观测值,$\beta \in (0, 1)$ 为衰减系数(也称平滑系数或动量参数)。令 $v_0 = 0$ 并展开递推,可以看出平滑估计实为所有历史观测值的加权叠加:

$$v_t = (1 - \beta) \sum_{k=0}^{t-1} \beta^k \, x_{t-k} + \beta^t v_0$$

其中 $k$ 表示观测值距当前时刻的步数,分配给 $k$ 步之前的观测值 $x_{t-k}$ 的权重以 $\beta^k$ 的速率衰减。观测值的权重之和为 $1 - \beta^t$,当 $t \to \infty$ 时趋向于 $1$,因此对于较大的 $t$,估计值趋近于历史输入的真正凸组合。接近 $1$ 的衰减系数(例如 $\beta = 0.999$)能产生高度平滑、变化缓慢的估计,在较大的有效窗口上进行平均;而较小的值(例如 $\beta = 0.5$)使估计对最近输入的响应更为灵敏,但代价是对噪声的敏感性也更强。

当 $v_0 = 0$ 时,早期步骤的估计系统性地偏向零,因为观测值权重之和仅为 $1 - \beta^t < 1$ 而非 $1$。这一初始化偏差通过如下重新缩放加以修正:

$$\hat{v}_t = \frac{v_t}{1 - \beta^t}$$

其中 $\hat{v}_t$ 为偏差修正后的估计。该修正仅在前 $O(1/(1-\beta))$ 步内有实质意义,这对应于 EMA 的有效记忆长度;对于较大的 $t$,分母 $1 - \beta^t$ 与 $1$ 无异,$\hat{v}_t \approx v_t$。几何加权结构还带来两个重要的分析性质:其一,EMA 是输入序列的线性滤波器,在频域中表现为低通滤波器,衰减高频波动同时保留低频趋势;其二,被平均的有效观测数约为 $1/(1-\beta)$,因此选择 $\beta = 0.9$ 隐含着对约十步数据的平均,而 $\beta = 0.99$ 则将有效窗口延伸至约一百步。

核心直觉

理解 EMA 最直观的方式是将其视为一种衰减记忆。每一步,当前运行估计由新到来的观测值与已有记忆按 $(1-\beta) : \beta$ 的比例混合而成。因此,任何单一观测值随后续观测的到来,其贡献权重以几何级数衰减:在 $k$ 步之后,该观测值对当前估计的残余影响与 $\beta^k$ 成正比。这一影响降至初始值一半所需的步数——即观测值的半衰期——为 $\log 2 / \log(1/\beta) \approx 0.693/(1-\beta)$,在 $\beta$ 接近 $1$ 时成立。这一关系为实践者调节 $\beta$ 参数提供了直观依据:若目标半衰期为一百步,则意味着 $\beta \approx 1 - 0.693/100 \approx 0.993$。

最常见的误解是认为较大的 $\beta$ 总是更好,因为它产生更平滑的信号。然而,平滑以滞后为代价:高 $\beta$ 的 EMA 对底层信号的突然、持续性变化追踪极为缓慢,需要很多步才能赶上新的状态。在优化问题中,这种权衡体现为在稳定但迟钝的估计(高 $\beta$)与有噪声但响应灵敏的估计(低 $\beta$)之间做出选择。另一个值得注意之处是初始化偏差:即使真实信号从第一步起就保持恒定,估计值 $v_t$ 也只能缓慢地上升至其真实值,因为早期步骤中 $\beta^t \gg 0$,修正系数 $1 - \beta^t$ 远小于 $1$。偏差修正形式 $\hat{v}_t$ 消除了这一伪影,在流程的最初几步需要精确估计的场合至关重要。

在人工智能中的应用

自适应梯度优化

EMA 在机器学习中最为普遍的应用存在于自适应梯度方法之中,在那里它为一阶和二阶梯度统计量提供稳定、低噪声的估计。Adam 优化器(Kingma & Ba, 2015)在每个训练步骤维护两个 EMA 量:一阶矩估计 $m_t = \beta_1 m_{t-1} + (1 - \beta_1) g_t$,追踪梯度 $g_t$ 的运行均值;以及二阶矩估计 $s_t = \beta_2 s_{t-1} + (1 - \beta_2) g_t^2$,追踪梯度的未中心化方差。偏差修正后,每个坐标的参数更新量与 $\hat{m}_t / (\sqrt{\hat{s}_t} + \epsilon)$ 成正比,其中 $\epsilon$ 为小的稳定常数。该比值将梯度除以其近期幅度的估计,使单一全局学习率能够同时服务于所有参数:梯度始终较大的坐标获得相对较小的更新,而很少被激活的参数则获得较大的更新。

偏差修正在 Adam 中并非可选的精细化处理,而是操作上的必要之举。按推荐默认值 $\beta_2 = 0.999$,第一步的未修正二阶矩 $s_t$ 为 $(1 - 0.999) g_1^2 = 0.001 \, g_1^2$,比真实梯度的平方小一千倍。若不加修正,更新量 $g_t / \sqrt{s_t}$ 将被放大约 $\sqrt{1000} \approx 32$ 倍,导致早期迭代中参数发生灾难性的大幅变化。偏差修正后的 $\hat{s}_1 = s_1 / (1 - 0.999) = g_1^2$ 恢复了正确的量级。RMSProp 是一种较早的自适应方法,它在不引入偏差修正或一阶矩的情况下使用梯度平方的 EMA,展示了相同的 EMA 机制在不同统计严谨程度下的应用。

深度强化学习中的目标网络

在基于价值的深度强化学习中,基于 EMA 的软更新解决了一个根本性的稳定问题:当同一网络既定义当前策略,又为自身训练提供回归目标时,目标随每次参数更新而变化,形成一个可能导致学习过程不稳定乃至发散的"移动目标"问题。最初的Deep Q-Network(Mnih et al., 2013)引入了目标网络——在线网络的一个滞后副本——其参数在规定步数内保持固定,随后以硬拷贝的方式替换为当前权重。尽管此方法有效,但每次执行硬拷贝时目标信号出现突变,可能在后续训练阶段引发震荡。

Deep Deterministic Policy Gradient 算法(Lillicrap et al., 2016)将周期性硬拷贝替换为软更新:在每个训练步骤,目标网络参数 $\theta^-$ 通过如下方式向在线参数 $\theta$ 混合:

$$\theta^- \leftarrow \tau \, \theta + (1 - \tau) \, \theta^-$$

其中 $\tau \in (0, 1)$ 为软更新系数,通常设置为 $0.005$ 这样的小值。由于 $\tau \ll 1$,目标网络每步仅发生微小变化,其产生的目标值平稳而缓慢地移动。在线网络追逐的目标持续移动,但速率远慢于自身——这种时间尺度的分离显著稳定了回归问题。EMA 形式相比于硬拷贝在连续控制场景中更为优越,因为它不会将目标网络骤然重置到全新位置;目标以由 $\tau$ 完全控制的可调滞后量跟踪在线网络的参数轨迹。

自监督学习中的动量编码器

EMA 的第三个主要应用出现在对比自监督学习中。在那里,维护一个庞大且一致的负样本表示字典至关重要,但若通过对大批量数据进行梯度下降来实现,计算代价极高。Momentum Contrast(He et al., 2020)通过动量编码器解决了这一问题:键编码器的参数 $\theta_k$ 并非由反向传播直接优化,而是每步通过对查询编码器参数 $\theta_q$ 进行 EMA 更新:

$$\theta_k \leftarrow m \, \theta_k + (1 - m) \, \theta_q$$

其中 $m$ 为动量系数,在原始论文中设置为 $0.999$。由于键编码器演化极为缓慢,其在连续训练步骤中产生的表示彼此保持近似一致:在第 $t$ 步和第 $t - 1000$ 步编码的键由几乎相同的编码器产生,因此可以在对比损失中进行有意义的比较,而不会引入大的系统误差。这种时间一致性使 MoCo 能够维护多达 $65{,}536$ 个来自近期小批量数据的负键组成的队列——远超任何可行的单一批量——同时保证这些键相对于当前编码器近似符合分布。慢速更新的动量编码器不仅仅是计算上的捷径;它施加了一种特定的学习动态,确保对比损失信号足够稳定,从而使在线编码器学到有意义的表示,而非陷入平凡解。

生成模型参数平均

在基于扩散的生成模型训练中,对网络自身参数轨迹进行 EMA,充当了优化路径上的事后去噪步骤。Denoising Diffusion Probabilistic Models(Ho et al., 2020)维护去噪网络权重的一个影子副本 $\bar{\theta}$,该副本从不通过梯度下降更新,而是在每个训练迭代中通过 EMA 追踪梯度更新的权重 $\theta$。推理时,生成过程专门使用 $\bar{\theta}$,而 $\theta$ 在训练过程中继续通过梯度步骤演化。Ho et al.(2020)观察到,相比于任意给定步骤的在线检查点,EMA 权重能够显著提升 Fréchet 初始距离得分与视觉样本质量,这一做法此后已成为扩散模型训练流程的标准组成部分。

其理论动机可追溯至 Polyak-Ruppert 平均(Polyak & Juditsky, 1992),该理论证明了对于强凸随机优化问题,随机梯度下降的时间平均迭代以极小极大最优速率收敛,且在有限时间内通常优于最终的 SGD 迭代点。在扩散模型训练的非凸损失景观中,形式化保证并不直接适用,但经验机制相同:SGD 迭代点 $\theta_1, \theta_2, \ldots$ 在局部极小值的盆地附近振荡,而其运行平均值 $\bar{\theta}$ 比任何单一迭代点都更接近盆地中心。通过维护指数加权运行平均而非均匀平均,EMA 赋予近期迭代更多权重,并随学习率调度引起的有效损失景观缓慢变化而更平滑地调整。

核心要点

指数移动平均是一种将噪声大或变化快的信号转化为稳定、信息丰富的估计的机制,仅需一个可调的衰减系数 $\beta$ 和一行递推公式即可实现。其几何加权结构将其直接联系到一阶低通滤波和经典的 Polyak-Ruppert 随机优化平均理论,赋予它支撑广泛应用的数学底蕴。在现代人工智能中,EMA 作为通用的稳定化算子发挥作用,其具体角色因情境而异——在 Adam 中平滑梯度矩、在强化学习中维护滞后目标、在对比编码器中保证时间一致性、在生成模型训练中平均随机噪声——但底层机制始终如一:历史信息以指数速率折损,使估计始终由近期相关观测主导。深入理解 $\beta$ 的半衰期解释、偏差修正的操作意义以及平滑与滞后之间的根本权衡,将使实践者能够精确调整 EMA 而非凭感觉猜测,并发现其表面上的简单性背后蕴含着值得深入分析的丰富行为。

参考文献