損失関数の数理:交差エントロピーと最尤推定の関係
なぜ分類は交差エントロピー、回帰は二乗誤差なのか。答えは全部、最尤推定という一つの原理から出てくる。バラバラに覚えた損失関数が一本の筋で繋がります。
- 1.交差エントロピー・MSE・KLダイバージェンスは独立した道具ではなく、すべて「最尤推定(負の対数尤度の最小化)」から導かれる。仮定する確率分布が違うだけで、出発点は同じ。
- 2.MSE は出力にガウス分布を仮定したときの負の対数尤度、交差エントロピーはカテゴリ分布(ベルヌーイ/カテゴリカル)を仮定したときの負の対数尤度。KLダイバージェンスの最小化は交差エントロピー最小化と等価。
- 3.softmax+交差エントロピーの勾配が `y_hat − y` と綺麗になるのは偶然ではなく、指数型分布族と対数尤度の構造から必然的に出る。だから出力層は softmax+CE が定番。
なぜ損失関数は「あの形」なのか
機械学習を学ぶと、回帰には二乗誤差(MSE)、分類には交差エントロピー(CE)、と暗記的に教わります。しかし、なぜその組み合わせなのかを問われると答えに詰まる人は多い。実はこれらは別々に発明された道具ではなく、最尤推定(MLE, Maximum Likelihood Estimation)という一つの原理から導かれる兄弟です。仮定する確率分布が違うだけで、出発点はまったく同じ。この視点を持つと、損失関数の選択が「慣習」から「モデル化の意思決定」へと変わります。
最尤推定という出発点
モデルとは、パラメータ θ(重み)を持つ確率分布 p(y | x; θ) だと捉えます。学習データ (x_i, y_i) が N 個あるとき、それらが独立同分布だと仮定すると、データ全体の尤度(このパラメータのもとでデータが観測される確率)は各点の確率の積になります。
L(θ) = Π_i p(y_i | x_i; θ) # 尤度=全データ点の確率の積
最尤推定とは、この尤度を最大にする θ を探すことです。積は扱いにくく、また小さな確率の掛け算は数値的にアンダーフローするため、対数を取って和に変えます。さらに「最大化」を「最小化」に揃えるため符号を反転し、負の対数尤度(NLL, Negative Log-Likelihood) を最小化問題として定式化します。
θ* = argmin_θ −Σ_i log p(y_i | x_i; θ)
対数は単調増加なので最大値の位置は変わりません。この −Σ log p(...) こそが損失関数の母型です。あとは p にどんな分布を仮定するかで、具体的な損失の形が決まります。
ガウス分布を仮定すると MSE になる
回帰問題で、モデルの予測 y_hat のまわりに誤差が正規分布(ガウス分布)で乗っていると仮定します。つまり p(y | x) = Normal(y; mean=y_hat, var=σ²) です。このガウス分布の対数を取ると、指数の中の二乗項がそのまま降りてきます。
−log p(y | x) = (y − y_hat)² / (2σ²) + log(σ√(2π))
第2項は θ に依存しない定数、1/(2σ²) も θ から見れば定数倍です。したがって θ について最小化する対象は (y − y_hat)² だけ。全データで和を取れば、これは二乗誤差(MSE)そのものです。
MSE を使うことは「予測誤差が等分散のガウス分布に従う」と暗黙に仮定することと等価です。だから外れ値に弱い(ガウスの裾が薄く、大きな誤差を過剰に罰する)。誤差がラプラス分布だと仮定すれば、同じ導出から絶対誤差(MAE, L1損失)が出てきます。損失の選択は、誤差分布の仮定の選択なのです。
カテゴリ分布を仮定すると交差エントロピーになる
分類では、出力 y は連続値ではなくクラスのラベルです。K クラス分類なら、モデルは各クラスの確率ベクトル y_hat = (y_hat_1, ..., y_hat_K)(合計1)を出し、正解は one-hot ベクトル y(正解クラスだけ1)で表します。観測がカテゴリ分布に従うと仮定すると、1データ点の確率はインデックス積で書けます。
p(y | x) = Π_k (y_hat_k)^(y_k) # 正解クラス k* 以外は指数 0 で消える
y_k は one-hot なので、正解クラス k* の項だけが残り p = y_hat_{k*} です。負の対数尤度を取ると、和の形になります。
−log p(y | x) = −Σ_k y_k · log(y_hat_k)
これが交差エントロピー(クロスエントロピー)損失そのものです。2クラス(ベルヌーイ分布)なら同じ導出からバイナリ交差エントロピー −[y·log(y_hat) + (1−y)·log(1−y_hat)] が出ます。要するに、回帰の MSE と分類の CE は「ガウスかカテゴリか」という分布仮定の違いだけで、どちらも −log p という同じ母型の子供なのです。
KLダイバージェンスとの等価性
交差エントロピーは情報理論の KLダイバージェンス(2つの分布のズレ)とも一本の線で繋がります。真の分布を p(データの経験分布、one-hot)、モデルの分布を q(y_hat)とすると、両者の関係は次の恒等式です。
CrossEntropy(p, q) = Entropy(p) + KL(p || q)
ここで Entropy(p) は真の分布だけで決まり、θ には依存しない定数です。したがって交差エントロピーを最小化することは、KLダイバージェンス KL(p || q) を最小化することと完全に等価になります。
| 損失関数 | 仮定する分布 | 最尤推定からの正体 |
|---|---|---|
| 二乗誤差(MSE) | ガウス分布(等分散) | ガウス仮定下の負の対数尤度。外れ値に敏感 |
| 絶対誤差(MAE / L1) | ラプラス分布 | ラプラス仮定下の負の対数尤度。外れ値に頑健 |
| 交差エントロピー(CE) | カテゴリ/ベルヌーイ分布 | カテゴリ仮定下の負の対数尤度=KL最小化 |
| KLダイバージェンス | —(分布間のズレ/非対称) | CE から定数(真の分布のエントロピー)を引いたもの |
つまり「CE を下げる=モデル分布を真の分布へ近づける」という直観は、KL の最小化として数学的に裏づけられています。負の対数尤度・交差エントロピー・KL最小化は、同じ操作の三つの呼び名だと言えます。
なぜ softmax+交差エントロピーの勾配は綺麗になるのか
実務で softmax と交差エントロピーがほぼ常にセットで使われる理由は、両者を合成したときの勾配が劇的に簡単になるからです。softmax はスコア(ロジット)z を確率に変換します。
y_hat_k = exp(z_k) / Σ_j exp(z_j) # softmax
ここで損失を「softmax を通した確率」ではなく、その手前のロジット z について微分するのが肝心です。CE を z_k で偏微分すると、softmax の微分(∂y_hat_i/∂z_j = y_hat_i(δ_ij − y_hat_j) という形。δ_ij はクロネッカーのデルタ)と CE の微分が打ち消し合い、驚くほど簡潔な結果に収束します。
∂L/∂z_k = y_hat_k − y_k # 予測確率 − 正解(one-hot)
ベクトルで書けば ∂L/∂z = y_hat − y。「予測と正解の差」がそのまま勾配になる。逆伝播の出発点となる誤差信号がこの単純な引き算で済むため、誤差逆伝播法の数理 で見たデルタの初期化が δ = y_hat − y という最も扱いやすい形になります。
これは偶然ではありません。softmax は指数型分布族の自然な形であり、交差エントロピー(対数尤度)はその指数の中身(自然パラメータ z)と線形に噛み合います。log(exp(z_k)/Σexp(z_j)) を z で微分すると、対数の中の指数が z を打ち消し、残るのは softmax 確率と one-hot の差だけ。「対数」と「指数」が逆関数として相殺する構造が、勾配を線形に保ちます。シグモイド+バイナリCE が y_hat − y になるのも同じ理屈です。
組み合わせを間違えるとどうなるか
この相殺はペアで使って初めて成立します。softmax の出力に二乗誤差を当てると相殺が起きず、勾配に softmax の微分項(小さくなりやすい)が残って学習が停滞します。逆に、ロジットに対して別途 softmax を計算したうえで log を取ると、数値的に不安定(log(0) の発散)になりがちです。
PyTorch の CrossEntropyLoss や TensorFlow の softmax_cross_entropy_with_logits が softmax 前のロジットを直接受け取る設計なのは、この相殺と数値安定化(log-sum-exp トリック)を内部で一括処理するためです。自分で softmax をかけてから別途 log を取る実装は二度手間かつ不安定。「分類はロジット+CE をフレームワークに任せる」が鉄則です。誤差の評価指標そのものは モデル評価 を参照。
まとめ:一つの原理が全部を生む
| 論点 | 実態 | そこから言えること |
|---|---|---|
| 損失の母型 | 負の対数尤度 −Σ log p | すべての損失はここから分布仮定で派生 |
| MSE と CE の違い | ガウス仮定かカテゴリ仮定かの差 | 回帰と分類で形が違うのは分布が違うから |
| CE と KL | CE = 定数 + KL | CE 最小化はモデル分布を真の分布へ寄せること |
| softmax+CE | 指数と対数が相殺し勾配が y_hat − y | 出力層の定番。logits を直接損失に渡す |
損失関数は「分類だから交差エントロピー」と暗記するものではなく、「データがどんな確率分布から生まれたと仮定するか」を宣言する行為です。最尤推定という一本の原理に立ち返れば、MSE も交差エントロピーも KL も、そして softmax との相性の良さも、すべて同じ数理から必然として導かれる。この見立てを持つと、新しいタスクで損失を設計するとき——たとえば出力が個数ならポアソン、裾が重いならラプラス——「どの分布を仮定すべきか」という正しい問いから出発できます。基礎となる学習の枠組みは ニューラルネットワーク も合わせて確認してください。
AI/機械学習 Article
損失関数の数理:交差エントロピーと最尤推定の関係を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
損失関数
比較で見る軸
難易度: advanced / カテゴリ: AI/機械学習 / タグ数: 5
導入後に効く点
MSE は出力にガウス分布を仮定したときの負の対数尤度、交差エントロピーはカテゴリ分布(ベルヌーイ/カテゴリカル)を仮定したときの負の対数尤度。KLダイバージェンスの最小化は交差エントロピー最小化と等価。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- AI/機械学習
- タグ数
- 5
判断チェックリスト
- 自社の用途が「損失関数 / 交差エントロピー」に近いか確認する。
- 強みである「交差エントロピー・MSE・KLダイバージェンスは独立した道具ではなく、すべて「最尤推定(負の対数尤度の最小化)」から導かれる。仮定する確率分布が違うだけで、出発点は同じ。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。