レイヤー正規化とは

れいやーせいきかlayer normalization別名 Layer Normalization、LayerNorm、層正規化

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で使われる理由が問われます。

混同しやすい用語

用語意味
バッチ正規化ミニバッチ内のデータから特徴ごとの平均と分散を求め、層への入力を平均0・分散1にそろえて学習を安定させる手法

違いを表で比べる:バッチ正規化とレイヤー正規化、正規化と正則化

◯×チェック

  1. レイヤー正規化は、ミニバッチのサイズが1でも、学習時と同じ計算で正規化できる。

    答えを見る

    答え ◯ 正しい

    統計量を1つのサンプルの中だけで計算するためです。他のサンプルを必要としないので、バッチサイズに左右されません。

  2. レイヤー正規化は、推論時に、学習中に記録しておいた平均と分散を使って正規化する。

    答えを見る

    答え × 誤り

    それはバッチ正規化の推論時の扱いです。レイヤー正規化は、推論時も入力されたサンプルからその場で平均と分散を計算します。

  3. 元のTransformerでは、各サブ層の処理の後にレイヤー正規化が使われている。

    答えを見る

    答え ◯ 正しい

    Attentionなどのサブ層の出力と、その入力を足し合わせた後にレイヤー正規化をかけています。

練習問題

レイヤー正規化の問題(3問)
  1. 正規化手法と統計量の範囲
  2. バッチ正規化の推論時の統計量
  3. 場面に応じた正規化層の選択

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術19

改訂履歴

表示設定

テーマ
文字の大きさ
問題演習