1.滑动平均
记录了一段时间神经模型中所有参数的平均值,针对所有参数进行优化:w和b。利用滑动平均可以增强模型的泛化能力,也就是对新鲜样本的适应能力。滑动平均值也叫影子值。
2.滑动平均值计算公式
影子值 = 衰减率 * 影子 + (1 - 衰减率)*参数
- 衰减率 = min{MOVING_AVERAGE_DECAY,}
- 影子初值等于参数初值
3.tensorflow函数
Tensorflow中用tf.train.ExponentialMovingAverage()定义滑动平均模型的类。
ema = tf.train.ExponentialMovingAverage(MOVING_AVERAGE_DECAY,global_step)
- MOVING_AVERAGE_DECAY:是一个超参数,滑动平均衰减率;
- global_step:记录了当前训练了多少轮,为不可训练参数。
ema_op = ema.apply(tf.trainable_varia