LoginSignup
2
0

Kullback-Leibler情報量の解釈に関する備忘録

Last updated at Posted at 2023-12-11

Kullback-Leibler情報量は何度聞いてもよく分からないのだが、先日、面白い解釈を読んだ

Imagine that you have an random variable of probability distribution Q. But your friend Bob thinks that the outcome comes from the probability distribution P. He has constructed an optimal encoding, that minimizes the number of expected bits he will need to use to tell you the outcome. But, since he constructed the encoding from P and not from Q, his codes will be longer than necessary. KL-divergence measure how much longer the codes will be.

Now lets say he has a coin and he wants to tell you the sequence of outcomes he gets. Because head and tail are equally likely he gives them both 1-bit codes. 0 for head, 1 for tail. If he gets tail tail head tail, he can send 1 1 0 1. Now, if his coin lands on the edge he cannot possibly tell you! No code he sends you would work.

(ChatGPT訳:)

友達のボブが考えている確率分布をQとし、それに従うランダム変数があると想像してみてください。しかし、ボブは、その結果は確率分布Pに従うと考えています。彼は最適な符号化を構築しましたが、その符号化は、必要以上にコードが長くなる可能性があります。なぜなら、彼が構築した符号化はPからではなくQから来ているためです。KLダイバージェンスは、どれだけコードが不要に長くなるかを測定します。

さて、彼がコインを持っており、そのコインの出目のシーケンスを教えてほしいとします。表と裏が同じくらいの確率で発生するため、それぞれ1ビットのコードを割り当てます。表に0、裏に1のコードを与えます。たとえば、裏・裏・表・裏が出た場合、彼は1 1 0 1と送ることができます。しかし、もしコインが縁に着地した場合、彼は不可能になります!彼が送るどんなコードも機能しないでしょう。

つまり、Kullback-Leibler情報量とは、Bobが真の分布を知らないことにより追加で必要になる情報量であると言っている。

こういうものの理解に、あまりに単純すぎるモデルを持ってきて議論しても意味がない気はしなくもないが、試しにやってみよう。

コイン投げソフトウェアがある。このソフトウェアを動作させると、乱数を振り、0, 1のいずれかの数字を3つ表示する。しかし、実はこのソフトウェアにはバグがあって、2つ目と3つ目は必ず同じ数が表示される。このことをBobは知らない。

Bobは、3つの乱数が等確率で振られるものだと思っているため、出た目を人に伝えるには3ビット必要だと考えている。しかし、実際には2つ目と3つ目は同じ数であるため、3つ目は伝える必要がなく、2ビットを伝えれば十分である。
Kullback-Leibler情報量は、この差分の1ビット分となる、ということを主張している。

計算して確かめてみる。

コイン投げソフトウェアが出す目iとその確率P(i)は、以下の表で書き表される。この表を真の分布Pとおく。

i P(i)
000 1/4
100 1/4
011 1/4
111 1/4

Bobは、このソフトウェアを、どの目も当確率で出ると考えている。つまり、以下の分布Qのように思っている。

i Q(i)
000 1/8
100 1/8
010 1/8
110 1/8
001 1/8
101 1/8
011 1/8
111 1/8

このとき、PのQに対するKullback-Leibler情報量は、

$$D_{KL}(P||Q) = \sum_i P(i) \log \frac{P(i)}{Q(i)} = 4\frac{1}{4} \log \frac{1/4}{1/8} = \log 2$$
となる。

ちょうど1ビット分の情報量となった。

おまけ

今回の例では、QのPに対するKullback-Leibler情報量$D_{KL}(Q||P)$は求まらない。数式的にはゼロ除算が出てくるからであり、解釈としては、後ろの2ビットが常に同じとみなして前の2ビットだけ送る方法が、後ろが同じでないかもしれない場合には使えないからである。

2
0
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
0