「テスト、全然ダメだった…」
由紀は机に突っ伏した。数学のテストが返ってきたばかりだった。
「何点?」陸が覗き込む。
「それは言いたくない」
葵が静かに近づいた。「失敗を測る方法はたくさんある。情報理論にも、そういう指標があるんだ」
「失敗を測る?」由紀が顔を上げた。
「クロスエントロピー。予測と現実のズレを数値化する」
ミラがノートを開き、図を描いた。二つの確率分布が並んでいる。
葵が説明を続ける。「例えば、明日の天気を予測する。本当は晴れが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.」
「そう。失敗は情報だ。どれくらいズレてるか分かれば、どう修正すべきか見えてくる」
陸が元気を取り戻した。「じゃあ俺たち、クロスエントロピーを減らすために勉強してるってこと?」
「良い解釈だ」葵が笑った。
由紀は机から顔を上げた。失敗は終わりじゃない。測って、学んで、次に進む。それがクロスエントロピーの教えだった。