【くろすえんとろぴー】

クロスエントロピー とは?

最終更新:
💡 正解に割り当てた確率を、損失として評価する

正解側の確率分布pに対し、予測分布qがどれだけ確率を割り当てたかを、負の対数で評価する量。離散分布ではH(p,q) = −Σ pᵢ log qᵢ。分類モデルなどの損失関数に使う。

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

参考資料

← 用語集にもどる