1行定義
レイヤー正規化とは、1つのサンプルの中で、その層のすべてのユニットの値をまとめて平均0・分散1にそろえる正規化の手法のことです。
くわしく
レイヤー正規化は、バッチ正規化の弱点を補う手法として、2016年にBaらが提案しました。現在はTransformerの標準的な部品として広く使われています。
バッチ正規化との違い
違いは、平均と分散を計算する範囲です。
- バッチ正規化:ミニバッチ内の複数のサンプルにまたがって、特徴(チャネル)ごとに計算します。
- レイヤー正規化:1つのサンプルの中で、その層のすべてのユニットの値をまとめて計算します。
求めた平均と分散で値を平均0・分散1にそろえ、学習するパラメータで拡大と平行移動を加える点は、バッチ正規化と同じです。
利点
他のサンプルを使わないため、ミニバッチの大きさに左右されません。バッチサイズが1でも同じように計算できます。また、学習時と推論時でまったく同じ計算をします。バッチ正規化のように、学習中に統計量を記録しておく必要はありません。
RNNとの相性もよい手法です。RNNは時刻ごとに計算し、系列の長さもデータごとに異なります。バッチ正規化では時刻ごとの統計量を扱いにくいのに対し、レイヤー正規化は各時刻でサンプルごとに計算できます。提案論文では、RNNの隠れ状態の変化を安定させる効果が報告されています。
使われる場面と限界
元のTransformerでは、Attentionなどの各サブ層の出力に入力を足し合わせた(スキップ結合)後に、レイヤー正規化をかけます。配置は変わりつつも、BERTやGPT系のモデルでも使われています。
一方、CNNでは、すべてのチャネルを同じ統計量でそろえる方法が合わない場合があります。提案論文も、CNNでの予備実験ではバッチ正規化のほうが高い性能を示したと述べています。CNNではバッチ正規化やグループ正規化、RNNやTransformerではレイヤー正規化、という使い分けが目安になります。
覚え方
「バッチは仲間と比べ、レイヤーは自分の中で比べる」と覚えます。
G検定での出題
出題のされ方
平均と分散を計算する範囲がバッチ正規化とどう違うか、ミニバッチの大きさに左右されない利点、RNNやTransformerで使われる理由が問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| レイヤー正規化このページの用語 | 1つのサンプルの中で、その層のすべてのユニットの値をまとめて平均0・分散1にそろえる正規化の手法 |
| バッチ正規化 | ミニバッチ内のデータから特徴ごとの平均と分散を求め、層への入力を平均0・分散1にそろえて学習を安定させる手法 |
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
レイヤー正規化は、ミニバッチのサイズが1でも、学習時と同じ計算で正規化できる。
答えを見る
答え ◯ 正しい
統計量を1つのサンプルの中だけで計算するためです。他のサンプルを必要としないので、バッチサイズに左右されません。
-
レイヤー正規化は、推論時に、学習中に記録しておいた平均と分散を使って正規化する。
答えを見る
答え × 誤り
それはバッチ正規化の推論時の扱いです。レイヤー正規化は、推論時も入力されたサンプルからその場で平均と分散を計算します。
-
元のTransformerでは、各サブ層の処理の後にレイヤー正規化が使われている。
答えを見る
答え ◯ 正しい
Attentionなどのサブ層の出力と、その入力を足し合わせた後にレイヤー正規化をかけています。