バッチ正規化

対象となる層の活性を正規化し、入力の偏りによる内部共変量シフトを抑制する。
重みの初期値をあまり気にしなくてもよくなり、過学習も抑制される。

入力の平均値と分散を求め、各入力に対して、平均値を引いた後、標準偏差で割る(標準化)。その後、スケール、平行移動して、出力の分布を作成する。

\( \displaystyle \mu = \frac{1}{n} \sum^n_{i=1}x_i \)
\( \displaystyle \sigma ^2 = \frac{1}{n} \sum^2_{i=1}(x_i-\mu)^2\)
\( \displaystyle \hat{x_i} = \frac{x_i-\mu}{\sqrt{\sigma^2+\epsilon}} \)
\( \displaystyle y_i = \gamma\hat{x_i} + \beta \)

\( y_i \)が出力の分布。\( \gamma \)と\( \beta \)は重みと共に学習されていくパラメータなので、推論時にはこれらの保存も必要。

初期値を気にしなくて済むのは良いですね。重みが無駄に偏る心配がないのは良いかと。その分、\( \gamma \)と\( \beta \)を保存しておかなくてはならないのが面倒ですね。