月初のフリースペースで、コーヒー片手に…
凡田(チームリーダー・38, 主人公)

あー、また気づいてしまった。「正規化」って広告時代に毎月やってた んだよな。月によって配信ボリュームが違うので、CTR とか CV 数を 「月の平均で割って標準化」 して、月次比較できるようにしてた。あれもう完全に 正規化 だわ。

大蔵(アシスタントマネージャー・35)

あら凡田さん、本日も 「気づきの広告時代」 シリーズですの? もう 第3話 ぐらいになりますわよね。次は 「広告時代の昼休み」 あたりが出てきそうですわ。

御託(シニアコンサル・39)

フッ、凡田、それは BatchNorm 系の発想だな。深層学習では LayerNorm もある。Transformer は基本 LayerNorm だ。

凡田

(御託さん、今日も 「妙に詳しい」 モード…昨夜の 3D LIVE.mp4 で推しが解説してたんだろうな)

月初のオフィスフリースペースで凡田がノートPCの月次比較表を前に気づきの表情、大蔵がコーヒー片手に呆れ気味、御託が背景でドヤ顔
このページのまとめ
  • 正規化(Normalization) = 各層の出力の 桁やばらつき(分布)を揃える こと。代表的な手法に BatchNormLayerNorm がある。
  • これが無いと深い層では 数値が暴れて学習が止まる活性化関数(#012)Optimizer(#017) と並ぶ、深い NN を安定して学習させる必須テクニック。
  • イメージは、比べる前に 単位や尺度を毎回そろえる 下ごしらえ。桁がバラバラな数字を同じ土俵に乗せてから次の層へ渡す。

活性化関数(#012)Optimizer(#017) の話で「深い NN を学習可能にする工夫」を扱ってきた。本記事はその3本目の柱、正規化(Normalization)

これが無いと、層を深く積むほど 各層の出力が暴走 して、学習が破綻する。それを防ぐために、各層の出力を毎回 「平均ゼロ、分散1付近」 に整える 仕組みが正規化。BatchNorm と LayerNorm の2大流派があり、現代の LLM はほぼ LayerNorm 系が支配している。

なぜ正規化が必要か — 深い層で 「分布が暴走」 する問題

NN は層を通過するたびに、入力が掛け算と足し算で変換される。1層通すと数値が10倍に、もう1層で100倍に、というように、値が層を経るごとに指数的に膨らんだり縮んだりする

これが起きると2つの致命的な問題が出る。

  1. 勾配爆発: 出力値が極端に大きくなると、勾配も巨大化、Optimizer が暴走
  2. 勾配消失: 逆に極端に小さくなると、勾配がほぼゼロになり、上流層の重みが全く更新されない(深い層が機能しない)

2012年の AlexNet 以前は、深い NN は 「訓練できないもの」 として知られていた。逆伝播も既にあったが、勾配が深い層で消失/爆発するせいで実用化できなかった。

正規化は、「各層の出力を、毎回 平均ゼロ・分散1 のあたりに揃え直す」 ことで、この暴走を防ぐ装置。これがあるおかげで、100層・1,000層 級の深いネットワークが学習可能になった。

2大流派: BatchNorm と LayerNorm

そもそも「バッチ」って何? — 訓練データを小分けにする単位

BatchNorm の話に入る前に、機械学習における 「バッチ」 を整理する。

NN の訓練(#013)では、データを一度に全部食べさせるのではなく、小分けにして 1ステップずつ食べさせる のが普通。この 「小分け」 の1単位が バッチ(= ミニバッチ)

なぜ小分けにするのか、理由は3つ。

整理すると、バッチ = 「1ステップで一緒に処理する事例のかたまり」。BatchNorm は、この 「1バッチ分(例: 32件)の中で」 各特徴の平均と分散を計算して正規化する手法、と理解すればよい。

BatchNorm と LayerNorm の比較図、何の軸で正規化するかを矩形で示す

図1: BatchNorm vs LayerNorm — 「何の軸で平均と分散を取るか」が違う

BatchNorm(2015 Ioffe & Szegedy)

ミニバッチ内の全サンプルで、特徴ごとに平均と分散を計算して正規化 する。

LayerNorm(2016 Ba, Kiros, Hinton)

1サンプル内で、特徴ごとに平均と分散を計算して正規化 する。バッチを跨がない。

どっちを使うかの判断基準

本質: 「各層の入口で、入力分布を毎回リセットする」

BatchNorm と LayerNorm の表面的な違い(どの軸で集計するか)の奥に、共通の本質がある。

正規化の本質は、各層の入口で、入力分布を毎回 「標準的な形」 にリセットする こと。これで、上流の層が何をやっても、下流の層は 「同じ入り口」 から計算を始められる。

これは 「層間の依存を切る」 工夫 とも言える。正規化が無いと:

正規化は、各層の入口に “翻訳機「 を挟むようなもの。上流が何を喋っても、下流には常に 」標準語” で届く。下流の層は、自分の仕事に集中できる。

結果として、深い NN(100層、1,000層)が訓練可能になった。これがあるから Transformer(96層)、深い CNN(152層)、LLM が現代の規模で動いている。

登場人物の反応 ①
赤崎(部長 / AI戦略推進室室長・42)

いいねいいね、正規化。…これ、私の 「ふわっとした方向感」 も、ある種の正規化なんだよね。誰の提案も 「いいね」分散ゼロ で揃える、究極の安定化装置。

川口(アナリスト・22)

赤崎部長、分散ゼロ は正規化ではなく 「潰し」 です。情報が消失します。むしろ BatchNorm の崩壊例 として論文に出てくるアンチパターンで…(無言で論文タブを2本開きはじめる)

大蔵

あら部長、お見事ですわね、「分散ゼロ」 経営。これは 「全員一律に 」いいね「 で評価する SGD 型人事」 の最終形ですわね。先日 D01 でも論じられた件、見事に体現されておりますわ。

赤崎

うーん、ふわっとした方向感としては、大蔵くんに 褒められた 気がするんだけど、表情が 微妙にひんやり しているのが気になるね。

会議室で赤崎が満面の笑みで提案資料を全部

コンサル感覚: KPI 標準化との対比

正規化の発想を、コンサル業務での KPI 標準化 に翻訳する。これは凡田が広告時代にやっていた話そのもの。

NN の正規化 業務での KPI 標準化
BatchNorm(バッチ内で平均化) 「今月の全部署の数値を集めて、その平均で各部署を比較」
LayerNorm(1サンプル内で平均化) 「1部署内で全 KPI を集めて、その部署の平均で各 KPI を比較」
勾配爆発を防ぐ 「ある部署の数値が異常に大きくて全体評価が引きずられないようにする」
共変量シフトを防ぐ 「先月と今月で評価基準がブレないように、毎月リセットして標準化」

つまり NN の正規化 = 評価データの 「前処理として平均で割る」 という、コンサルが手作業で毎月やっていることを、機械が 毎ステップ・全層で自動的に やっている話。

登場人物の反応 ②
南雲(社長・60-62)

ふむ、正規化か。…俺の都銀員時代、融資審査の 「標準化」 をやっていた。支店ごとに条件が違うので、各支店内の数字を支店平均で割って横並び比較していた。あれは LayerNorm 型だったのか。

凡田(チームリーダー・38, 主人公)

社長、それです。支店単位 = 1サンプル単位 = LayerNorm。広告時代の月単位平均は = 1バッチ単位 = BatchNorm。業界・組織は基本 LayerNorm 思考、月次レビューは BatchNorm 思考 という整理ができます。

御託

フッ、それは ハラリ『サピエンス全史』 第7章で論じられた 「標準化が文明を作った」 主題そのものだな。私が以前から…(スマホ通知、配信開始20分前)

大蔵

御託さん、ハラリ先生はよろしいですけど、本日の 「3D LIVE」20分後開幕 でいらっしゃる、ということですわね。お時間の 分散 がだいぶ 偏って いらっしゃる気が。

川口

あ、社長、結論として当社の月次レビュー指標を 「BatchNorm 化」(全部署の月平均で割って横並び化)する戦略提言を、パワポ500枚 で…(休日9週連続)

南雲

うむ、いいねえ。「BatchNorm 経営」 も響きがいい。儲かるんだろ?

役員室で南雲が古い銀行員時代の支店比較表を懐かしげに見つめ、凡田が頷きながら隣で立つ、温かい照明