概要
レイヤー正規化は、バッチ正則化と同様に、内部共変量シフトを抑えることで、学習を安定化する仕組みです。バッチ正規化は、バッチ単位で正規化を行うのに対して、レイヤー正規化では、層ごとに正規化を行います。バッチ正規化には、以下のような欠点がありました。
- バッチサイズへの依存性
- バッチ正規化はバッチ内の統計量に基づくため、特に小さなバッチサイズで学習する際に、統計的な不安定性が生じることがあります。
- 推論時の挙動の不確定性
- 学習時にはバッチ内の統計量を使用するため、推論時にミニバッチが使用できない場合、異なる統計量が利用されることがあります。そのため、学習時と推論時で挙動が異なる可能性があります。
これらのバッチ正規化の欠点を解消したのもが、レイヤー正規化といえます。
ここで、共変量シフトと内部共変量シフトについて整理します。
共変量シフト
共変量シフトは、訓練データとテストデータの間で入力の分布が異なる場合に生じる問題を指します。例えば、学習データは、平均値は0、分散が1に正規化されていても、検証データが正規化されていない場合、訓練データとテストデータ間のデータ分布の変化がモデルの性能に影響を与え、学習されたモデルがテストデータに対してうまく汎化できないことがあります。そのため、データ読み込み時に、正規化する手順が加えられます。
内部共変量シフト
内部共変量シフトは、ニューラルネットワークの層ごとに入力分布が変化する現象を指します。この変化は、学習の進行とともに、各層の入力分布が変動することに起因します。これは、層ごとの重みの更新によって発生し、学習の収束を遅らせたり、性能を低下させたりする可能性があります。
まとめると、共変量シフトは訓練データとテストデータ間の分布の不一致を指し、内部共変量シフトはニューラルネットワーク内の層ごとの入力分布の変化を指します。