クロスエントロピーと失敗の関係

エントロピー、不確実性、そして情報理論が世界を理解するのにどう役立つかの探求。

  • #cross entropy
  • #loss function
  • #prediction
  • #machine learning

「テスト、全然ダメだった…」

由紀は机に突っ伏した。数学のテストが返ってきたばかりだった。

「何点?」陸が覗き込む。

「それは言いたくない」

葵が静かに近づいた。「失敗を測る方法はたくさんある。情報理論にも、そういう指標があるんだ」

「失敗を測る?」由紀が顔を上げた。

「クロスエントロピー。予測と現実のズレを数値化する」

ミラがノートを開き、図を描いた。二つの確率分布が並んでいる。

葵が説明を続ける。「例えば、明日の天気を予測する。本当は晴れが80パーセント、雨が20パーセント。でも君が晴れ50パーセント、雨50パーセントと予測したら?」

「ズレてる」由紀が答えた。

「そのズレがクロスエントロピー。H(P,Q) = -Σ P(x) log Q(x)。Pが真の分布、Qが予測分布」

陸が首をひねった。「なんで『クロス』なの?」

「真の分布Pで、予測分布Qを評価するから。二つの分布を交差させてる」

ミラが補足を書いた。「Minimum when P = Q」

「そう。予測が完璧なら、クロスエントロピーは最小になる。それがエントロピーH(P)と等しい」

由紀が考えた。「じゃあ、クロスエントロピーが大きいほど、予測が外れてるってこと?」

「正確。機械学習では、クロスエントロピーを損失関数として使う。モデルを訓練して、クロスエントロピーを減らすんだ」

陸が食いついた。「損失関数って、失敗度合いってこと?」

「まさに。ニューラルネットワークは、クロスエントロピーを最小化するように重みを調整する」

ミラが新しいページに図を描いた。分類問題の例。猫か犬かを判定するモデル。

葵が続ける。「例えば、猫の画像を見せる。正解は『猫=1.0、犬=0.0』。でもモデルが『猫=0.6、犬=0.4』と出力したら、クロスエントロピーは約0.51」

「予測が曖昧だから、ペナルティが大きい」由紀が理解した。

「そう。もし『猫=0.9、犬=0.1』なら、クロスエントロピーは約0.11。自信を持った正解に近い予測は、損失が小さい」

陸が考え込んだ。「でも、『猫=0.1、犬=0.9』って完全に間違ってたら?」

「クロスエントロピーは約2.3。大きなペナルティだ」

「失敗を数値化できるって、便利だな」

葵が頷いた。「さらに、クロスエントロピーとKLダイバージェンスには関係がある。H(P,Q) = H(P) + D_KL(P||Q)」

ミラが式を指差した。「Cross entropy = Entropy + KL divergence」

「つまり、クロスエントロピーは二つの部分からなる。一つは真の分布の不確実性H(P)。これは固定。もう一つは予測のズレD_KL(P||Q)」

由紀が目を輝かせた。「だから、クロスエントロピーを最小化するのは、KLダイバージェンスを最小化するのと同じ!」

「完璧な理解だ。訓練では、H(P)は変わらないから、クロスエントロピーを減らすことは、予測分布を真の分布に近づけることと等しい」

陸が自分のノートを見た。「じゃあ、俺の予測問題の答えが間違ってたのも、クロスエントロピーが大きかったからか」

「ある意味ね。君の『予測分布』と『正解分布』がズレてた」

由紀がふと思いついた。「テストの失敗も、クロスエントロピーで測れますか?」

葵が微笑んだ。「理論上はね。君の答えの確率分布と、正解の分布のズレ」

「なんか、失敗が少し客観的に見えてきました」

ミラが静かに手を挙げた。珍しい行動だった。「Failure is information. Learn from cross entropy.」

「そう。失敗は情報だ。どれくらいズレてるか分かれば、どう修正すべきか見えてくる」

陸が元気を取り戻した。「じゃあ俺たち、クロスエントロピーを減らすために勉強してるってこと?」

「良い解釈だ」葵が笑った。

由紀は机から顔を上げた。失敗は終わりじゃない。測って、学んで、次に進む。それがクロスエントロピーの教えだった。