【くろすえんとろぴー】
クロスエントロピー とは?
最終更新:
💡 正解に割り当てた確率を、損失として評価する
正解側の確率分布pに対し、予測分布qがどれだけ確率を割り当てたかを、負の対数で評価する量。離散分布ではH(p,q) = −Σ pᵢ log qᵢ。分類モデルなどの損失関数に使う。
📌 このページのポイント
- 離散分布では、予測確率の負の対数を正解分布で重み付けして足す
- 正解が一つの分類では、そのクラスへの予測確率が低いほど大きくなる
- 分布が一致したときの最小値は正解分布のエントロピーで、常に0ではない
- 正解分布を固定すれば、KLダイバージェンスと同じ最小化問題になる
クロスエントロピーは何を測るの?
分類なら、正解にどれだけ高い確率を割り当てたかを評価する損失だよ。正解が猫の一例では、自然対数を使うと損失は猫への予測確率の自然対数にマイナスを付けた値。90%なら約0.105、20%なら約1.609になるんだ。
予測が一致すれば必ず0?
正解が一つに決まった場合は、そのクラスに確率1を割り当てると0になる。でも正解側も「猫50%、犬50%」という分布なら、同じ分布を予測しても約0.693になるよ。最小値は正解分布自身のエントロピーなんだ。
正解率と同じようなもの?
違うよ。たとえば猫か犬かの二択で、猫に60%でも90%でも予測クラスは猫になる。でも損失は90%の方が小さい。選んだクラスが当たったかだけでなく、確率の付け方を評価しているんだ。
KLダイバージェンスとはどう違う?
プログラムには予測確率を渡すの?
使う関数の仕様によるよ。たとえばPyTorchのCrossEntropyLossは、予測側に確率へ変換する前のlogitsを受け取る。正解もクラス番号か確率分布かを選べるので、入力の形式を確認しよう。
まとめ:ざっくりこれだけ覚えればOK!
「クロスエントロピー」って出てきたら「正解に与えた確率を評価する損失」と思えばだいたいOK!
📖 おまけ:英語の意味
「Cross-Entropy」 = 交差エントロピー
💬 一方の分布で起きる事象を、別の分布を想定した符号で表すときの平均的な情報量として説明できるよ。機械学習では正解側と予測側の分布を使うんだ。