2019-06-21こしあんTweetPocket大きいバッチサイズで訓練する際は、バッチサイズの増加にともなう精度低下が深刻になります。Augmentationのようなデータ増強・正則化による精度向上とは何が違うのでしょうか。それを調べてみました。結果まとめコードきっかけこの記事を書いたときに、「Warmupってバッチサイズを大きくしても、確かに精度が劣化しにくい。Augmentationでバッチサイズを上げたときの精度劣化ってどう違うの?」って思ったのです。Augmentationによる劣化の違いを比較します。ここでの精度劣化とは、バッチサイズを上げることによる副作用で、バッチサイズをどんどん上げていくと、あるところから急に精度が下落するという点です。実験この記事を拡張した実験をCIFAR-10で行います。以下の4条件を比較します。Augmentation。Augmentation。4ピクセルの上下左右シフトと、水平反転。Augmentation。具体的にはこの記事のmode-4のジェネレーター。Warmupを使うケース(比較用)。Augmentationは2(中程度)と同じ。1~3はWarmupなし。WarmupのコードはQiitaの記事を参照してください。1~3のコードは末尾に示します。Augmentationは低いバッチサイズで確かに高い精度を出しているのですが、バッチサイズを大きくするともっとも早く精度が急落しやすいということがわかりました。Augmentationで精度を上げたからといって必ずしも急落が改善される(急落がくるのを遅らせられる)というわけではないということです。Augmentationでも、Warmupを使ったケースでは高バッチサイズ(2^12=2048)で最も高い精度を出しているので、Warmupのような急落を遅らせる技術というのも確かに存在するようです。Augmentationによる精度の向上の場合は、必ずしもバッチサイズの増加による精度の急落を改善できるわけではない。「低いバッチサイズで精度が上がったから、イコール高いバッチサイズ領域でも高い精度を出しますよ」は必ずしも成立はしない。Augmentationによる精度向上とWarmupによる精度向上は、次元の違う話である。Commentコメントをキャンセルメールアドレスが公開されることはありません。