整理自以下两篇博客:
1). tensorflow ExponentialMovingAverage
一. 滑动平均的作用ExponentialMovingAverage()
滑动平均模型的作用是提高测试值上的健壮性。那它是如何实现这个功能的呢?其实滑动平均模型的原理就是一阶滞后滤波法,其表达式如下:
new_value=(1−a)×value+a×old_valuenew_value=(1−a)×value+a×old_value
其中a的取值范围[0,1],具体就是:本次滤波结果=(1-a)本次采样值+a上次滤波结果,采用此算法的目的是:
1、降低周期性的干扰;
2、在波动频率较高的场合有很好的效果。
二. Tensorflow中的ExponentialMovingAverage()
假如我们训练模型迭代了100K,每2K步保存一个snapshot。在evaluation时, 我们可以只使用最后得到的model-100K,也可以通过cross validation选出一最佳的model,如model-98K。 但Googlers发现(https://www.tensorflow.org/versions/r1.0/api_docs/python/tf/train/ExponentialMovingAverage):
When training a model, it is often beneficial<