G検定 › Web参考書 › 第5章

正規化層(バッチ正規化、レイヤー正規化、インスタンス正規化、グループ正規化)

第5章 ディープラーニングの要素技術 / 節 3

シラバスのキーワード: バッチ正規化レイヤー正規化インスタンス正規化グループ正規化

本文を読んだあと、覚えているか確認してください。

正規化層の役割

学習が進むと各層の入力の分布が変わり続けるため、深いネットワークでは学習が不安定になります。正規化層は各層の入力を平均0・分散1に整え、学習可能なスケールとシフトのパラメータで変換することで、学習を安定・高速化し、大きめの学習率を使えるようにします。

正規化の単位による違い

手法 統計量を取る単位 主な用途
バッチ正規化 ミニバッチ内の同じチャネル CNNの画像分類
レイヤー正規化 1つのサンプル内の全チャネル RNN、Transformer(系列長やバッチサイズに依存しない)
インスタンス正規化 1つのサンプルの1つのチャネル スタイル変換、画像生成
グループ正規化 1つのサンプルのチャネルをグループ分け バッチサイズが小さい物体検出など

バッチ正規化の注意点

ミニバッチのサイズが極端に小さいと統計量が不安定になり効果が薄れます。推論時は学習中に蓄積した移動平均の統計量を使います。軽い正則化効果があるとされますが、過学習を必ず解消するものではありません。

Transformerや自然言語処理で可変長の系列を扱う場合は、バッチの構成に依存しないレイヤー正規化が標準です。

試験で問われる観点

この節の練習問題(5問)

答えを見る前に選んでから開いてください。同じ問題は章別演習でランダム出題されます。

  1. 問1
    バッチ正規化の説明として、最も適切なものを選びなさい。
    1. 1学習中にミニバッチのサイズを損失の変化に応じて自動で増減させ、学習の初期は小さく、終盤は大きくすることで学習を安定させ高速化する手法
    2. 2重みの二乗和にペナルティ項を加えて損失関数を最小化することで、重みが大きくなりすぎるのを抑え、過学習を防ぐ正則化手法
    3. 3各層の入力をミニバッチ単位で平均0・分散1に正規化してからスケールとシフトを学習させることで、学習を安定させ高速化し、過学習の抑制にも寄与する手法
    4. 4学習データ全体をあらかじめ0〜1の範囲に変換してから学習を始める前処理で、各層の出力には手を加えず、入力のスケールだけをそろえる手法
    答えと解説

    正解: 3

    バッチ正規化は、各層への入力の分布が学習中に変わってしまう問題(内部共変量シフト)に対処するため、ミニバッチごとにチャネル単位で平均と分散を揃え、学習可能なスケールとシフトを掛ける層です。学習率を大きくでき、初期値への依存が減り、正則化に似た効果もあります。データ全体の前処理、バッチサイズの調整、L2正則化とは異なります。

  2. 問2
    正規化層の種類と正規化の単位の組み合わせとして正しいものを選びなさい。
    1. 1バッチ正規化: 1サンプルの全チャネルで正規化。レイヤー正規化: ミニバッチ内の同じチャネルで正規化。インスタンス正規化: 1サンプルの1チャネルで正規化。グループ正規化: 1サンプルのチャネルをいくつかのグループに分けて正規化
    2. 2バッチ正規化: ミニバッチ内の同じチャネルで正規化。レイヤー正規化: 1サンプルの1チャネルで正規化。インスタンス正規化: 1サンプルの全チャネルで正規化。グループ正規化: ミニバッチをいくつかのグループに分けて正規化
    3. 3バッチ正規化: 全データの同じチャネルで正規化。レイヤー正規化: ネットワークの全層の出力をまとめて正規化。インスタンス正規化: ミニバッチ内の1サンプルの全チャネルで正規化。グループ正規化: ミニバッチをいくつかのグループに分けて正規化
    4. 4バッチ正規化: ミニバッチ内の同じチャネルで正規化。レイヤー正規化: 1サンプルの全チャネルで正規化。インスタンス正規化: 1サンプルの1チャネルで正規化。グループ正規化: 1サンプルのチャネルをいくつかのグループに分けて正規化
    答えと解説

    正解: 4

    正規化層は「どの範囲で平均と分散を取るか」で区別されます。バッチ正規化はミニバッチをまたいで同じチャネルの値を正規化するためバッチサイズが小さいと不安定になります。レイヤー正規化は1サンプル内の全チャネル(全特徴)で正規化するためバッチサイズに依存せず、TransformerやRNNで使われます。インスタンス正規化は1サンプルの1チャネルごとで、画風変換などに使われます。グループ正規化はチャネルをグループに分けて正規化し、小さいバッチでも安定します。

  3. 問3
    バッチ正規化に関する記述として、誤っているものを選びなさい。
    1. 1バッチ正規化を入れると過学習が必ず解消されるため、他の正則化は一切不要になる
    2. 2各層の入力をミニバッチ単位で平均0・分散1に整えてから、学習可能なスケールとシフトのパラメータで変換する
    3. 3学習が安定して速くなり、大きめの学習率を使えるようになる効果がある
    4. 4ミニバッチのサイズが極端に小さいと統計量が不安定になるため、効果が薄れることがある
    答えと解説

    正解: 1

    バッチ正規化には軽い正則化の効果があるとされますが、過学習を必ず解消するものではなく、ドロップアウトや重み減衰などと併用されることも多くあります。ミニバッチ単位での正規化、学習の安定化と高速化、小さいバッチでの不安定さに関する記述は正しい内容です。

  4. 問4
    Transformerや自然言語処理モデルで、バッチ正規化ではなくレイヤー正規化が使われることが多い理由として、最も適切なものを選びなさい。
    1. 1バッチ正規化はミニバッチ内の全サンプルで統計量を取るため系列の長さの違いには強いが、GPUのメモリ消費が大きくTransformerの規模では計算できないため
    2. 2レイヤー正規化は1つのサンプル内の全ノードで統計量を取るため、系列の長さがサンプルごとに異なったりバッチサイズが小さかったりしても安定して動作するため
    3. 3レイヤー正規化は学習可能なパラメータを持たないため、モデルサイズと推論時の計算量を大幅に減らせ、系列が長くなるほどバッチ正規化との差が広がるため
    4. 4レイヤー正規化はチャネル方向の統計量を空間位置ごとに取るため画像に適した手法であり、テキストではバッチ正規化が使えないので消去法で採用されているため
    答えと解説

    正解: 2

    バッチ正規化はミニバッチ内の同じ特徴について統計量を取るため、可変長の系列データや小さなバッチでは統計量が不安定になります。レイヤー正規化はサンプルごとに層内の全ノードで正規化するため、バッチの構成に依存せず、RNNやTransformerで標準的に使われます。レイヤー正規化もスケールとシフトのパラメータを持ち、画像専用ではありません。

  5. 問5
    高解像度画像の物体検出モデルで、GPUメモリの制約からバッチサイズを2にしたところ、バッチ正規化の効果が不安定になった。最も適切な対応を選びなさい。
    1. 1サンプル内のチャネルを分けて統計を取るグループ正規化を使う
    2. 2ミニバッチ内の同じチャネルで統計を取るバッチ正規化をそのまま続ける
    3. 3正規化層をすべて取り除き、学習率を大きくする
    4. 4正規化層の代わりにドロップアウトを追加する
    答えと解説

    正解: 1

    バッチ正規化はミニバッチ内の統計量を使うため、バッチサイズが極端に小さいと統計量が不安定になります。1つのサンプル内でチャネルをグループに分けて正規化するグループ正規化はバッチサイズに依存せず、物体検出などで使われます。正規化層を外して学習率を上げると学習が不安定になり、ドロップアウトは過学習対策で正規化の代わりにはなりません。