正規化層が4種類あって、図を見てもどこがどう違うんか分からん
【疑問】バッチ正規化・レイヤー正規化・インスタンス正規化・グループ正規化、どこで平均をとるかの違いって何?【G検定】
前提のおさらい。畳み込み層の出力は「データの枚数 × チャンネル × 縦 × 横 」の4次元。正規化層は、このどこかの範囲で平均と分散を出して、値をそろえる
>>1
やることはどれも同じで、範囲内の値から平均を引いて標準偏差で割り、そのあと学習するパラメータ (倍率)と (ずらし)をかける
値が 2, 4, 6, 8 なら、平均5・分散5で、 は約 −1.34, −0.45, 0.45, 1.34
>>3
違うのは、平均と分散をどの範囲でとるか
バッチ正規化:チャンネルごとに、ミニバッチの全部のデータ・全部の画素で
レイヤー正規化:データ1件ごとに、全部のチャンネル・全部の画素で
インスタンス正規化:データ1件・チャンネル1つごとに、その画素だけで
グループ正規化:データ1件ごとに、チャンネルをいくつかのグループに分けて、グループ内で
>>4
グループ正規化はあいだを取ったもの。32チャンネルを8グループにすると、4チャンネルずつで平均をとる
グループを1つにすればレイヤー正規化、32グループ(1チャンネルずつ)にすればインスタンス正規化と同じになる
>>4
なんで4つもあるん?バッチ正規化だけでええやん
>>6
バッチ正規化は、ミニバッチの中のほかのデータを使って平均をとるから、ミニバッチが小さいと平均がぶれる
画像が大きくて1回に2枚しか入らん検出やセグメンテーションでは困る。グループ正規化はデータ1件の中だけで計算するから、ミニバッチの大きさに左右されん
>>7
文の長さがばらばらな系列のデータでも、バッチ正規化は使いにくい。だからRNNやTransformerではレイヤー正規化を使う
>>4
インスタンス正規化は、画像のスタイル変換でよく使われる。1枚ごと・チャンネルごとに明るさやコントラストのくせを消すから、絵のタッチを入れかえやすい
>>3
バッチ正規化は、学習のときと予測のときで計算が違うのも注意。予測のときはミニバッチがないから、学習中にためておいた平均と分散を使う
>>10
正規化を入れると、層ごとの値の大きさがそろって、学習率を大きめにしても学習が安定しやすい。勾配消失や爆発の対策の1つに数えられるのはそのため
管理人のひとこと
- 正規化層は範囲内で平均を引き標準偏差で割り、 をかける。2, 4, 6, 8 なら約 −1.34, −0.45, 0.45, 1.34。
- 範囲の違い:バッチ正規化はチャンネルごとにミニバッチ全体、レイヤー正規化はデータ1件の全チャンネル、インスタンス正規化はデータ1件・チャンネル1つ、グループ正規化はデータ1件のチャンネルのグループ。
- バッチ正規化はミニバッチが小さいとぶれる。グループ正規化は大きさに左右されず、RNNやTransformerではレイヤー正規化を使う。インスタンス正規化はスタイル変換で使われる。
- バッチ正規化は予測時に学習中にためた平均と分散を使う。