2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【深層学習の数学】交差エントロピーとKLダイバージェンス:Loss関数の正体を暴く(直感でわかる確率・情報量 #2)

2
Posted at

はじめに

前回の記事では、ベイズ更新を使ってAIがどのように確信度を深めていくのかを解説しました。

今回は、画像認識や自然言語処理などの「分類タスク」において、損失関数(Loss)として必ず登場する「交差エントロピー誤差(Cross-Entropy Loss)」の正体に迫ります。

なぜ分類問題では平均二乗誤差(MSE)ではなく交差エントロピーを使うのか?そして、論文によく出てくる「KLダイバージェンス」とはどう繋がっているのか?
「荷造り(コスト)」という1つの統一されたイメージを使って、直感的に、そして数学的に解き明かします。

1. 3つの情報量を「荷造り(コスト)」で理解する

情報理論における3つの重要な数式は、「旅行の荷造りにかかるコスト」に例えると完全に一本の線で繋がります。

① エントロピー:最低限必要な荷物

エントロピー $H(P)$ は、真実の世界(真の確率分布 $P$)に合わせたときに、「どうやっても削れない最低限必要な荷物」を表します。
例えば、旅行先の天気が「晴れ50% / 雪50%」のように予測不能(カオス)であればあるほど、両方の準備が必要になり、最低限の荷物 $H(P)$ は大きくなります。逆に「晴れ100%」と分かっていれば、荷物は最小で済みます。

② KLダイバージェンス:予測のズレによる余分な荷物

KLダイバージェンス $D_{KL}(P \parallel Q)$ は、真実の天気 $P$ に対して、AIが間違った天気予報 $Q$ を信じたことで生じた「ズレによる余分な荷物」です。
常夏のハワイ($P$)に行くのに、AIが雪($Q$)だと勘違いして準備したダウンジャケットがこれに該当します。予測が完璧に当たっていれば、この余分な荷物は $0$ になります。

③ 交差エントロピー:持ち込んだ荷物の総量

交差エントロピー $H(P, Q)$ は、AIの予測 $Q$ を信じて準備した結果、最終的にあなたが持ち込むことになった「荷物の総量(トータルコスト)」です。

2. すべてが繋がる魔法の式

これら3つの概念は、以下の非常に美しい足し算の式で繋がっています。

$$H(P, Q) = H(P) + D_{KL}(P \parallel Q)$$

直感的な意味はこうです。

荷物の総量最低限必要な荷物ズレによる余分な荷物

機械学習の最大の目的は、自分の予測を真実に近づけること、つまりKLダイバージェンス(余分な荷物)を $0$ にすることです。
しかし、学習中のAIは右辺にある「真のエントロピー $H(P)$」を操作することができません(現実の天気をAIが変えることはできないため、これは定数です)。

だからこそAIは、自分が操作できる左辺の「交差エントロピー $H(P, Q)$(荷物の総量)」をひたすら最小化するように学習を進めます。総量を削っていけば、絶対に減らせない最低限の荷物 $H(P)$ に底当たりし、自動的に余分な荷物(KLダイバージェンス)が $0$ に押しつぶされるからです。

3. なぜ分類問題ではワンホットベクトルを使うのか?

分類タスク(例:犬か猫かを当てる)において、正解データは通常「犬100%、猫0%」というワンホットベクトルで与えられます。
この「100%正解がわかっているデータ」を先ほどの式に当てはめると、驚くべきことが起きます。

100%犬だと分かっている情報に「予測不能さ」は存在しないため、真のエントロピー(最低限の荷物)は完全にゼロになります。

$$H(P) = 0$$

これを先ほどの式に代入します。

$$H(P, Q) = 0 + D_{KL}(P \parallel Q)$$
$$H(P, Q) = D_{KL}(P \parallel Q)$$

なんと、分類問題においては「交差エントロピー」と「KLダイバージェンス」の値が完全に一致(イコール)するのです。

AIの視点から見た Loss の正体

AIが「犬である」と予測した確率を $q_1$ とします。
このとき、交差エントロピーを数式で真面目に計算すると、正解クラス(犬)以外の確率はすべて $0$ を掛けられて消滅するため、以下の非常にシンプルな形だけが残ります。

$$Loss = -\log(q_1)$$

つまりAIは、「犬だか猫だか出力はいっぱいあるけど、正解がワンホットベクトルなら、**『自分がどれだけ正解クラスだと強く信じられたか($q_1$)』の1点だけを見ればいい。**間違った猫の確率なんて計算では全部無視して構わない!」と考えているのです。
これが、PyTorchなどで使われている CrossEntropyLoss の真の姿です。

4. ビットからナットへ:深層学習への橋渡し

最後に、情報理論の教科書から深層学習の実装に移る際の「隠された単位のすり替え」について解説します。

情報理論では、情報量の単位として底が $2$ の対数関数を用いた**「ビット(bit:$\log_2$)」**が使われます。人間の直感にはこれが一番合っています。

しかし、深層学習でAIが実際に計算(最適化)を行うときは、しれっと底がネイピア数 $e$ である**「ナット(nat:$\ln$)」**にすり替わります。
なぜ単位を変えるのでしょうか?その理由は、AIが何百万回と繰り返す「微分」の計算スピードにあります。

ビット(底が $2$ )の対数を微分すると、分母に $\ln 2$ という中途半端な定数がゴミとしてくっついてしまいます。

$$\frac{d}{dx}\log_2(x) = \frac{1}{x \ln 2}$$

一方で、ナット(底が $e$ )の自然対数を微分すると、この上なく美しい形になります。

$$\frac{d}{dx}\ln(x) = \frac{1}{x}$$

AIは、毎回 $\ln 2$ で割り算をするという無駄な計算リソースを省くために、最適化の式に組み込まれる瞬間に、単位をビットからナット(自然対数)に切り替えているのです。

まとめ

  • エントロピー $H(P)$:真のデータが持つ最低限の荷物。ワンホットベクトルの場合は $0$ になる。
  • 交差エントロピー $H(P, Q)$:持ち込んだ荷物の総量。AIはこれを最小化しようとする。
  • KLダイバージェンス:予測のズレによる無駄な荷物。
  • ビットとナット:人間が理解するための「ビット」と、AIが高速に微分・最適化するための「ナット」。

最適化(微積分)の都合と、情報理論(確率)の世界が「ナット」という単位を介して見事に繋がりました。数式の裏にある意味を直感で捉えられれば、深層学習の論文やコードもずっと読みやすくなるはずです!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?