EMA
というものをたまに見る。どうやら EMA(Exponential Moving Average)指数平滑移動平均線 | FX・外貨両替のマネーパートナーズ -外為を誠実に- のことらしい。
[1809.11096] Large Scale GAN Training for High Fidelity Natural Image Synthesis つまり BigGAN
の論文 [28 Sep 2018] でも登場する。この論文から下記の The Unusual Effectiveness of Averaging in GAN Training
が参照されている。
- [1611.01603] Bidirectional Attention Flow for Machine Comprehension [5 Nov 2016]
- [1806.04498] The Unusual Effectiveness of Averaging in GAN Training [12 Jun 2018]
- [2101.08482] Exponential Moving Average Normalization for Self-supervised and Semi-supervised Learning [21 Jan 2021]
- [2106.07759] Kaizen: Continuously improving teacher using Exponential Moving Average for semi-supervised speech recognition [14 Jun 2021]
でも登場するようだ。
TensorFlow には既に仕組みとして tf.train.ExponentialMovingAverage | TensorFlow Core v2.5.0 のように用意されているが、PyTorch では、How to apply exponential moving average decay for variables? - #10 by amsword - PyTorch Forums のように自分で用意する必要があるかもしれない。
BigGAN
の実装は以下とかが参考になるかもしれない:
- BigGAN-PyTorch/TFHub at master · ajbrock/BigGAN-PyTorch · GitHub
- GitHub - sxhxliang/BigGAN-pytorch: Pytorch implementation of LARGE SCALE GAN TRAINING FOR HIGH FIDELITY NATURAL IMAGE SYNTHESIS (BigGAN)
- Pretrained GANs in PyTorch: StyleGAN2, BigGAN, BigBiGAN, SAGAN, SNGAN, SelfCondGAN, and more | PythonRepo