TensorFlow滑动平均值

在采用梯度下降法训练的神经网络中,使用滑动平均模型都可以提高神经网络在测试模型中的表现。

TensorFlow 提供了tf.train.ExponentialMovingAverage来实现滑动平均值模型。

在初始化滑动平均模型是,要传入一个衰减率参数,这个衰减率用来控制模型的更新速度。

tf.train.ExponentialMovingAverage对每一个变量提供一个影子变量(shadow_variable)。

这个影子变量的初始值就是相应变量的初始值,而每次运行变量更新时,影子变量就会更新为:

shadow_variable = decay * shadow_variable + (1-decay)*variable

从公式中可以看到,decay越大,模型越趋于稳定。在实际应用中,decay一般取一个非常靠近1的小数。如0.99或0.9999