# 正規化層 ## 定義 正規化層(normalization layer)とは、正規化関数(normalization function、活性値を統計情報に基づき変換する関数)を適用する層であり、典型的には接続層の直後・活性化関数の直前に置かれる。統計情報を元に各次元の値が平均0・分散1になるように変換することが基本形であり、統計量をどの軸に沿って求めるかによってバッチ正規化・層正規化・サンプル正規化・グループ正規化などの変種がある。活性値ではなく重みを正規化する重み正規化・重み標準化、次元間の相関まで取り除く白色化も同じ枠組みに含まれる。(Source: [[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 4 ディープラーニングの発展]] §4.2) ## なぜ活性値の正規化が学習に重要か 『ディープラーニングを支える技術』第4章は、活性値の正規化が学習に重要な理由を3つ挙げる。(1) ReLUのような区分線形の活性化関数を使う場合、活性値が偏ると非線形性が失われ表現力が線形関数まで落ちるが、正規化により入力が正負に散らばれば非線形性を保てる。(2) 入力の各次元の符号やスケールが揃っていないと勾配降下法による更新方向が偏り収束が遅くなるが、正規化により学習が高速化・安定化する。(3) 正規化により活性値・勾配が安定し学習率を大きくできるようになり、大きな学習率は汎化性能の高い「フラットな解」への到達を助ける。当初は正規化層が近似するノイズが意図せず正則化として働いていると考えられていたが、現在の理解ではこの学習率を大きくできる効果と、最終層直前のノルムの増大を抑える効果が汎化改善の主因とされる。(Source: [[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 4 ディープラーニングの発展]] §4.2) ## バッチ正規化と変種 バッチ正規化(batch normalization、BatchNorm、BN)は最も広く使われる正規化層であり、ReLU・スキップ接続と並ぶ「ディープラーニングの学習を成功させた三大発明」の一つとされる。ミニバッチBから平均m_B・分散v_Bを推定し、u^(i)=γ(h^(i)-m_B)/√v_B+βという学習可能なパラメータγ・βを伴う変換で活性値を正規化する。γは出力スケールを、βは出力の疎密(ReLU適用後にどれだけの値が0になるか)を制御する。バッチ正規化は活性値のスケール情報を失うため、Softmax・シグモイド直前や回帰問題の出力層付近では不適切であり、スケール情報の喪失は敵対的ノイズへの脆弱性にもつながる。またバッチ内の他データへの依存性があるため、バッチサイズを小さくせざるを得ない物体検出やRNN・Transformerのような問題では、統計量をとる軸を変えた層正規化(サンプルごと)・サンプル正規化(サンプル×チャンネルごと)・グループ正規化(サンプル×チャンネルグループごと)が使われる。活性値ではなく重みを対称的に正規化する重み正規化・重み標準化もあり、次元間の相関まで取り除く白色化(ZCA変換)はさらに勾配降下法の収束を速める。(Source: [[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 4 ディープラーニングの発展]] §4.2) ## 横断的知見 1 ソース目のため、複数ソースの突き合わせによる横断的知見は今後の蓄積に委ねる。[[深層学習の汎化]]・[[暗黙的正則化]]・[[残差学習]]は、本ページが挙げる「フラットな解への到達」「正則化として働くという当初の誤解」「バッチ正規化を使っても劣化問題は解決しない(残差学習が必要)」という3つの論点でそれぞれ本ページと接続しうる既存 concept であり、各ページ側の横断的知見に個別の突き合わせを記載した。 ## 未解決の問い - バッチ正規化が汎化性能を改善する主因(学習率を大きくできること/最終層直前のノルム抑制)は、層正規化・グループ正規化のような他の正規化手法でも同様に成り立つか。 - 白色化(ZCA変換)は理論上もっとも強力な正規化に見えるが、計算量の制約からグループ単位でしか適用されていない。計算量を抑えたまま次元間相関を取り除く手法はどこまで進展しているか。 - 重み正規化がもたらす「学習率を自動的に下げていく効果」は、活性値の正規化(バッチ正規化)がもたらす効果とどのように理論的に統一して説明できるか。 - Transformer や RNN で層正規化が選ばれる理由(サンプルごとに活性値分布が大きく異なる)は、具体的にどのような分布の違いとして測定・検証されているか。 ## 関連 - source: [[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 4 ディープラーニングの発展]] - concept: [[残差学習]] / [[深層学習の汎化]] / [[暗黙的正則化]] / [[Transformer]] / [[RNN]] ## 出典 - 岡野原大輔, 『ディープラーニングを支える技術』, 技術評論社, 2022, 第4章, §4.2.