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