Batch Normalization|DeepLearning論文の原文を読む #17

f:id:lib-arts:20190224210548p:plain

#16はXceptionについて取り扱いました。

 #17ではBatch Normalizationについて取り扱います。

[1502.03167] Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
以下論文の目次です。基本的な書き方の流れとしてはAbstractは和訳&補足、それ以外の章に関しては要約を中心にまとめます(省く章もあるかもしれません)

0. Abstract
1. Introduction
2. Towards Reducing Internal Covariate Shift
3. Normalization via Mini-Batch Statistics
4. Experiments
5. Conclusion

 

0 Abstract
Abstractは論文の要旨がまとまっているので一文ずつ精読していければと思います。

Training Deep Neural Networks is complicated by the fact that the distribution of each layer’s inputs changes during training, as the parameters of the previous layers change. This slows down the training by requiring lower learning rates and careful parameter initialization, and makes it notoriously hard to train models with saturating nonlinearities.

和訳:『DeepLearningの学習は前の層のパラメータが変化するにつれて各層の入力の分布が学習の間に変化する事実によって問題が複雑になる。このことで学習率を下げたり注意深いパラメータの初期化したりが必要になり学習が遅くなり、収束する非線形関数でのモデルの学習を難しくする。』
DeepLearningを行う上で必ず考慮しなければならないのが学習時間であり、学習率を下げると収束が遅まってしまいます。これを防ぐためにどうするかを考えるにあたって、入力データを正規化しようというのがBatch Normalizationの研究です。また、saturatingは飽和が直訳だが収束(convergence)と同様な意味合いで捉えておくと良いです。

We refer to this phenomenon as internal covariate shift, and address the problem by normalizing layer inputs. Our method draws its strength from making normalization a part of the model architecture and performing the normalization for each training mini-batch. Batch Normalization allows us to use much higher learning rates and be less careful about initialization. It also acts as a regularizer, in some cases eliminating the need for Dropout.

和訳:『我々はこの現象を内部共変量シフト(covariate shift)と名付け、層(layer)の入力を正規化することによってこの問題に取り組む。我々の手法は正規化をモデルの構造の一部としそれぞれの学習のミニバッチに作用させることに強みがある。Batch Normalizationを使うことによって、我々はよりずっと高い学習率を用いたり初期化に対し慎重にならなくても良くなったりすることが可能になる。Batch Normalizationは正則化としても機能し、いくつかのケースではDropoutの必要性もなくしてくれる。』
統計などで馴染みの正規化処理を用い入力の安定化をはかることで、高い学習率を用いて学習を行えるため学習が早まるとされています。また、Batch Normalizationは誤学習を正則化としても機能するので、しばしばDropoutの必要もなくなるともされています。

Applied to a state-of-the-art image classification model, Batch Normalization achieves the same accuracy with 14 times fewer training steps, and beats the original model by a significant margin.

和訳:『SOTAの画像識別モデルに適用することで、Batch Normalizationは14分の1の学習時間でこれまでと同様の精度を実現でき、大差をつけてオリジナルのモデルを打ち負かしている。』
どちらかというと新しいモデルではなくモジュールの研究なので、ネットワーク構造自体のは従来のモデルを用いてそこにBatch Normalizationを組み込んで検証がなされています。14分の1に学習ステップを短縮できたとされています。

Using an ensemble of batch-normalized networks, we improve upon the best published result on ImageNet classification: reaching 4.9% top-5 validation error (and 4.8% test error), exceeding the accuracy of human raters.

和訳:『Batch Normalizationを用いたネットワークのアンサンブルを用いることで、我々はImageNetの分類においてベストの公開されている結果を向上させ、4.9%のValidation error(4.8%のtest error)を出し人間の判断の精度を上回った。』
研究成果として精度の言及もなされています。

 

1. Introduction
1stパラグラフではDeepLearningの学習にあたってSGDについて触れた上で、mini-batch学習法についても言及がされています。またmini-batch学習法の有用な点として、(1)mini-batchの勾配は学習データセット全体に対する勾配の推定値であること、(2)単体のデータをm回学習させるよりもサイズmのミニバッチで学習させた方がはるかに計算効率が良いことなどが挙げられています。2ndパラグラフではAbstactで述べたのと同様に、SGDは有用であるものの学習率などのハイパーパラメータや初期値の設定が難しいということについて言及されています。3rdパラグラフでは共変量シフト(covariate shift)について言及されています。4thパラグラフでは同様の話を簡単な数式に基づいて行われています。5thパラグラフでは上述の内部共変量シフトの問題への対策としてBatch Normalizationについて言及されています。6thパラグラフではBatch Normalizationのパフォーマンスについて言及されています。

 

 2. Towards Reducing Internal Covariate Shift
学習中のネットワークのパラメータの変化が理由でネットワークの活性の分布が変化することを内部共変量シフトと定義しており、それに対して白色化(whitening; 平均0、分散1に正規化すること)を行うことで対策することについてなど言及されています。
この白色化に対し、良いところを引き継いだ上で提案手法が3節で説明されていきます。


3. Normalization via Mini-Batch Statistics

f:id:lib-arts:20190307120838p:plain
まず手始めとして上記を用いてデータを正規化することが提案されています。が、通常通り行ってはSGDを用いて逐次勾配を計算する際は望ましくないので、下記のようにミニバッチ単位で正規化することについて言及が行われています。

f:id:lib-arts:20190224210548p:plain

続く3.1では、推論時の正規化も含めて言及されています。下記のように推論時は学習データで作成したパラメータの値を元に正規化を行うとされています。

f:id:lib-arts:20190307121343p:plain

以降は読み流しました。


4. Experiments

f:id:lib-arts:20190307121921p:plain

上図のように学習の収束にあたっての学習ステップ(training step)を減らせていることが諸々言及されていました。

 

5. Conclusion
省略します。