レイヤー正規化とは
レイヤー正規化(Layer Normalization)は、2016年にBaらによって提案された正規化手法で、バッチ正規化のバッチサイズ依存性を解消する目的で開発されました。バッチ方向ではなく、各サンプルの特徴次元方向で平均と分散を計算して正規化します。Transformerアーキテクチャの標準的な正規化手法として広く採用されています。
| ひとことで言うと | 1つのデータの中だけで値をそろえる正規化。バッチサイズに左右されない。 |
|---|---|
| どこで使う | Transformer、RNNなど系列モデル。今のLLMはほぼこれを採用。 |
| 注意点 | CNNの画像分類では、バッチ正規化のほうが性能が出る場合が多い。 |
バッチ正規化との違い
バッチ正規化がミニバッチ内の同じ特徴について統計量を計算するのに対し、レイヤー正規化は単一サンプル内のすべての特徴について統計量を計算します。このため、バッチサイズに依存せず、推論時も訓練時と同じ計算を行うことができます。系列長が異なるデータや、バッチサイズ1での処理が必要な場面に適しています。
11データを取り出す他のデータは見ない
▶
2その層の全要素特徴量すべてを対象に
▶
3平均0・分散1に1件の中でそろえる
▶
4係数で調整学習可能な拡大・移動
※ バッチ正規化は「複数データの同じ位置」、レイヤー正規化は「1データの全位置」でそろえます。
Transformerにおけるレイヤー正規化
Transformerでは、各サブレイヤー(アテンションとフィードフォワード)の後にレイヤー正規化が適用されます(Post-LN)。近年の研究では、サブレイヤーの前にレイヤー正規化を適用するPre-LN構造がより安定した学習を実現することが示されており、GPTなどの大規模モデルではPre-LN方式が採用されています。
RMSNormなどの発展
レイヤー正規化の計算コストを削減するRMSNorm(Root Mean Square Normalization)が提案され、LLaMAなどの大規模言語モデルで採用されています。RMSNormは平均の計算を省略し、二乗平均平方根のみで正規化することで計算を簡略化します。このように、正規化手法の研究は現在も活発に進められています。