Batch Normalization
Batch Normalization
Batch Normalization(バッチ正規化)とは
ひとことで
ニューラルネットワークの各層への入力を、ミニバッチごとに平均0・分散1になるよう正規化し、さらに学習可能なパラメータで調整する手法。学習を安定させて速くし、過学習の抑制にも効果がある。
たとえると
リレーの各区間で、バトンを受け取る前に毎回スタート位置と姿勢をそろえ直すようなものです。前の走者の調子がばらついても、次の走者はいつも同じ条件で走り出せるので、チーム全体の走りが安定します。
現場ではこう使う
深いネットワークで画像分類を学習していたチームは、学習率を少し上げただけで学習が不安定になることに困っていました。各層にバッチ正規化を加えたところ、大きめの学習率でも安定して学習が進むようになり、学習にかかる時間も短くなりました。
試験のポイント
EXAM POINT「各層の入力をミニバッチ単位で正規化」「学習の安定化・高速化」と出てきたらバッチ正規化です。学習時はミニバッチの平均と分散を使い、推論時は学習中に求めておいた平均と分散を使う点が問われます。名前の似た「正則化」とは別物です。Transformerでよく使われる、データ1件ごとに正規化するレイヤー正規化とも区別しましょう。
混同しやすい用語との違い
- Regularization損失関数に重みのペナルティを加えて過学習を抑える「正則化」。バッチ正規化は入力の分布をそろえる
- Dropoutニューロンをランダムに無効化して過学習を抑える。入力の正規化は行わない