什么是EMA?
滑动平均(exponential moving average),或者叫做指数加权平均(exponentially weighted moving average),可以用来估计变量的局部均值,使得变量的更新与一段时间内的历史取值有关。
滑动平均可以看作是变量的过去一段时间取值的均值,相比对变量直接赋值而言,滑动平均得到的值在图像上更加平缓光滑,抖动性更小,不会因为某次的异常取值而使得滑动平均值波动很大,如图 1所示。
假设我们得到一个参数 θ \theta θ在不同的 epoch 下的值
θ 1 , θ 2 , . . . , θ t \theta_1,\theta_2,...,\theta_t θ1,θ2,...,θt
当训练结束的 θ \theta θ的MovingAverage 就是:
v t = β ∗ v t − 1 + ( 1 − β ) ∗ v t v_t=\beta*v_{t-1}+(1-\beta)*v_t vt=β∗v

指数加权平均(EMA)用于估计参数的局部均值,减少异常值影响,提高模型在测试数据上的表现。通过在训练过程中应用EMA,平滑权重更新,增强模型的健壮性。TensorFlow提供了tf.train.ExponentialMovingAverage实现,PyTorch则需自定义实现。
最低0.47元/天 解锁文章
1884





