滑动平均记录了每个参数一段时间内过程值的平均,可以增加模型的泛化性。
影子变量shadow在t时刻记为,
为变量shadow在t时刻的取值,在不使用滑动平均法时
上式中,。并且
=min{MOVING_AVERAGE_DECAY,(1+轮数)/(10+轮数)},MOVING_AVERAGE_DECAY是基础值。
不使用滑动平均 | 使用滑动平均 | global step |
0.0 | 0.0 | 0 |
1.0 | 0.9 | 0 |
10.0 | 1.6445453 | 100 |
10.0 | 2.3281732 | 100 |
10.0 | 2.955868 | 100 |
10.0 | 3.532206 | 100 |
10.0 | 4.061389 | 100 |
10.0 | 4.547275 | 100 |
10.0 | 4.9934072 | 100 |
上述表格是MOVING_AVERAGE_DECAY=0.99时影子值跟随情况。
通过影子值变化的情况可以看出来,影子值能更好的应对训练过程中参数的突变情况,使参数变化更为平缓。