“Layer Normalization”(Layer正規化)は、
深層学習モデルの最適化手法の一つで、ニューラルネットワークの各レイヤーごとに入力データを正規化する手法です。
バッチ正規化とは異なり、ミニバッチ内ではなく各レイヤーごとに平均と分散を計算します。
以下にLayer正規化の要点を説明します。
Layer正規化のアルゴリズムは、主に以下の手順で行われます:
各レイヤーごとの平均と分散の計算:
各レイヤーごとに、同じ位置(特徴次元)に位置するデータの平均と分散を計算します。
これにより、各レイヤー内でのデータ分布の正規化が行われます。
平均と分散の正規化:
計算された各レイヤーの平均と分散を使用して、各レイヤー内のデータを正規化します。具体的には、各特徴に対して、以下の式に基づいて正規化を行います
(\(\epsilon\)は数値安定性のための小さな値):
![](https://neo-dive.com/wp-content/uploads/2023/08/image-2.png)
ここで、\(x_{ij}\)はレイヤー内のi番目のデータ、\(\mu_j\)はj番目の特徴の平均、\(\sigma_j^2\)はj番目の特徴の分散です。
スケールとシフトの適用:
正規化されたデータに対して、スケール(スケーリング係数)とシフト(シフト係数)を適用して、変換されたデータを得ます。
これにより、モデルがデータの変換を学習することが可能になります。
学習可能なパラメータの導入:
スケールとシフトのパラメータは、学習可能なパラメータとしてモデルに導入されます。
これにより、ネットワーク自体がデータの正規化と変換を最適な形で学習することができます。
Layer正規化は、バッチ正規化と比較して、ミニバッチのサイズに対する感度が低く、少ないデータでも安定して動作するとされています。
また、畳み込みニューラルネットワークや自然言語処理タスクなどで広く使用されることがあります。