一、概念
EMA,全称是指数移动平均,是一种给予近期数据更高权重的平均方法,详细的介绍可以参考:深度学习: 指数加权平均。
二、在哪见过
深度学习中常见的Adam、RMSProp和Momentum等优化算法内部都使用了EMA,由于使用了EMA这些算法常被称为自适应优化算法,可以随着训练过程的推移,自适应的调整参数的优化方向和步长,可以参考:深度学习中的Momentum算法原理。
三、提高训练稳定性
假设有一个模型参数 ![\theta](https://latex.csdn.net/eq?%5Ctheta) ,EMA在优化器层面是一种局部时间窗口的加权平均,它只能通过对过去一个小的时间窗口内的梯度做加权并更新模型参数 ![\theta](https://latex.csdn.net/eq?%5Ctheta),如下图所示的三个矩形框所示,每次反向传播之后,参数 ![\theta](https://latex.csdn.net/eq?%5Ctheta) 的增量是一个加权平均后的梯度,模型参数每次都会更新(设**g1,g2,g3**是三次迭代通过EMA计算得到的梯度,每个箭头表示进行一次梯度更新)。
如果进一步对g1,g2和g3进行一次EMA,并将EMA后的结果对参数 ![\theta](https://latex.csdn.net/eq?%5Ctheta) 进行更新,那么参数![\theta](https://latex.csdn.net/eq?%5Ctheta)将会综合多个时间步的梯度信息,相当于进行了细粒度的平均,多个时间步的梯度综合了更加可靠的信息,模型训练的相应也会更加稳定。
四、参考
- 【炼丹技巧】指数移动平均(EMA)的原理及PyTorch实现
- EMA(指数移动平均)及其深度学习应用
- 深度学习中的Momentum算法原理
- 深度学习: 指数加权平均
本文转载自: https://blog.csdn.net/gaoxueyi551/article/details/125410840
版权归原作者 Paul-LangJun 所有, 如有侵权,请联系我们删除。
版权归原作者 Paul-LangJun 所有, 如有侵权,请联系我们删除。