エントロピーのことを思い立って

調べてみていました。槌田さんにかかわることを書いていたときに出会ったため、もう一度思い出そうと思ったからです。


個人的には、エントロピーという言葉の広まり方にはいかがなものかという考えを抱いています。使われる場所がふくらみすぎて、本来の意味とかけ離れたところにまで当てはめられている。それ、やり過ぎだろ、と思うわけです。


やり過ぎている人たちは、エントロピーの、なんか訳わかんないけどすごい、というイメージの力だけがほしいわけです。イメージ先行なわけで、彼らの文章は、斜め読みするとなんかすごいものを読んだ気がするけど、よくよく読むと、わざわざエントロピーなんて言う必要ないじゃん、ということが多い。


本当は、エントロピーって定義のはっきりした量であって、定量的な議論にまで持って行けるとすばらしい力を発揮するのです。でも、イメージ先行のエントロピー論は、その一番すばらしい部分には到達できていない。まことに残念です。


いえ、本当にエントロピーの概念を使いこなそうと思ったら大変なので、仕方ないのですが。


さて、私もやりすぎエントロピー適用例を思いついてしまったので、ここで書いてしまいます。ご笑覧ください。


話は熱力学、統計力学的なエントロピーの話ではなくて、情報理論エントロピーのお話。最後には温暖化懐疑論の話に無理矢理つなげますけど。この最後の部分がやり過ぎ。


とりあえず、情報理論におけるエントロピーとは何かというお話から。でも、私、専門家でも何でもないので間違っていたらごめん。


情報の価値


珍しい情報ほど価値があります。よく言われる、「犬が人をかんでもニュースにはならないけど、人が犬をかんだらニュースになる」というのは、そのことを表しています。


でも、情報の価値なんて、人それぞれですよねぇ。だから、以下で私が「価値」と言うときは、珍しさを表している特殊な用語なんだと思ってください。


本来の情報理論の言葉に則ると、「価値が高い」というより、「情報量が多い」、という言い方をすべきなんですが。


まあ、いずれにせよ。情報量というものを確率を用いて次のように定義することができるのです。


あることが起こる確率を P とすると、そのことが起きたときに受け取る情報量 I は、


I=-\log_2 P


と表されます。ここで、\log_2 というのは、2 を底とする対数です。


対数、忘れたかな?高校数学で出てきます。対数っていうのは、指数の逆。たとえば、2^2=4 とか、2^3=8 とか式があった場合の、2 の右肩に載っている 2 とか 3 とかっていうのが対数 *1。この式を書き直すと、\log_2 4=2 とか \log_2 8=3 とかになります。ちなみに、P みたいなりょうは一般的に 1 以下で、この場合は対数は負の数になります。\log_2 1/2 = -1 みたいな感じ。


対数のいいところは、元はかけ算だったものが足し算のように表せるところ。たとえば、


32\times64=2^5\times 2^6=2^{11}=2048


なわけです。2048 の対数をとってやると、


\log_2 2048 = \log_2 2^{11} = 11


となりますが、一方で


\log_2(32\times 64)=\log_2(2^5\times 2^6)=\log_2 2^5 + \log_2 2^6=5 + 6 = 11


となる。二番目の = の両側を見てください。かけ算が足し算になっているのです。


ということで、対数の説明、終わり。


さて、情報量の説明をするために、唐突ですが、あなたが社会人に成り立ての若い男子だとしましょう。友達が、キミにぴったりの子を紹介するよ、と言ったとします。


あなたはとある県のとある街に住んでいて、その街の若い女子といえば、半数は大学生で半数は社会人、半数は地元の子で半数は県外出身者だとしましょう。


友達が、「女の子が大学生だよ」と言ったとき。半数が大学生、ということは、確率が 1/2。つまり、その情報量は、I=-\log_2 1/2 = 1 となる。あ、単位を言うのを忘れていた。情報量の単位は bit (ビット) といいます。聞いたことあるよね?たとえば、ADSL なり光なりで、なんとかメガ bps とかいうでしょ。この bps というのは、bit par second (1 秒あたりのビット数) という単位で、ビットというのが出てきます。


さて、友達が「女の子は地元の子だよ」と言ったとき。地元の子である確率は 1/2 なので、ということで、やっぱりこの情報も 1 bit です。


友達が、「女の子はお前の好きな客室乗務員 (以下、CA と略す) だよ」と言ったとき。地元の女子の中で、たとえば、1024 人に一人がCAだったら、この情報量は、I=-\log_2 1/1024 = 10 で、10 bit。おお、大きな情報量だ。一方、「CAじゃないよ」という情報は、あんまり価値がなくて、-\log_2 1023/1024 = 0.0014 だから、0.0014 ビット。まあ、どうでもいいけど聞かないよりまし、ぐらいです。


ということで、珍しい情報の方が価値が高い、イコール情報量が多い。もし、友達が「今度来る子は男だよ」って言ったら、そりゃ「ぴったりの子」を紹介される場合に相手が男だなんて滅多にないことだから、とっても価値が高いわけですね。一方で、「今度来る子は女の子だよ」という情報は価値が少ない。当たり前だからね。


さて、対数で定義されていることで、うれしいことがあります。それは、情報の足し算ができると言うこと。


友達が、「今度来る女の子は、大学生で地元の子だよ」と言ったとします。このときの情報量は、「大学生で地元の子」ということで、P=1/2\times 1/2=1/4 なわけ*2。その情報量は、I=-log_2 1/4 = 2 ということで 2 ビット。


一方で、友達は、「大学生」という 1 ビットの情報と、「地元の子」という 1 ビットの情報をくれたわけだから、あわせて 2 ビット。二つの説明で同じ 2 ビットという結果が得られます。


対数を使うことで、かけ算が足し算になった訳で、だから、情報の「足し算」ができました。便利便利。


わかってもらえたかな?情報の「価値」をどうやって定義するか。


本当は人によって情報の価値が違うはず。「女の子はCAだよ」と言われたときに、それに大きな価値を感じる人、そんなのどうでもいい人、いろいろいそうです。え、私?CA、好きですよ。まあ、でも、そんなことは置いておいて、最初に言ったように、この記事では情報の「価値」とは、確率の低さ、つまり、珍しさのみで決まります。


情報のエントロピー


さて、友達が教えてくれない限り、もしくは実際に会って自己紹介でもしてもらわない限り、その女子の情報を得ることはできないわけです。


でも、その女子のことについて、なにかを知るために、だいたいどのくらいの情報量が必要か、というのは、あらかじめ見積もることができます。え、ちょっと話が強引?すみません、適当に聞いてください。


たとえば、「大学生 or 社会人」ということを知りたいとき。たとえば、その女子が大学生である場合には、-\log_2 1/2=1 ビットの情報が必要です。で、その確率は 1/2。社会人である場合もそう。だから、"平均"すると


\frac{1}{2}\times\left(-\log_2 \frac{1}{2}\right)+\frac{1}{2}\times\left(-\log_2\frac{1}{2}\right)=1


となり、平均 1 ビットの情報が必要です。一方、「CA or not CA」を知りたい場合、


\frac{1}{1024}\times\left(-\log_2 \frac{1}{1024}\right)+\frac{1023}{1024}\times\left(-\log_2\frac{1023}{1024}\right)=0.0112


となって、平均 0.0112 ビットの情報が必要。CAだ!ってわかったときの情報量は大きいけど、その確率は低くて、一方で、「CAじゃないよ」というだからどうした的な情報で済んでしまう確率が多いので、平均すると、必要な情報量は低いわけです。


この、平均情報量、これが一般に情報理論エントロピーと呼ばれている量です。いえ、最初に書いた方も「自己エントロピー」とか言われたりしていて、いろいろとややこしいのですが。


とにかく、エントロピーというものがあるわけです。エントロピーとは、よく乱雑さを表すとか言われたりして、そうするとここで説明したエントロピーはどのような関係があるのでしょうか?


どうなんでしょうね、私はその辺については説明したくありません。ここまで書いておいてそんなことを言うのはどうかと思いますが、私の理解度で無理矢理説明すると、ちょっと好ましくなさそうなので *3


でも、まあ、数式からわかるエントロピーの意味だけは確認しておきましょう。


まず、エントロピーもたし合わせることができます。どういうことかというと、たとえば、「大学生 or 社会人」と「地元 or 県外出身」の二つの項目について、それぞれ 1 ビットのエントロピーを持っていたわけです。これを二つ重ねると、つまり、「(大学生,地元) or (大学生,県外) or (社会人,地元) or (社会人,県外)」の 4 つの場合がある時のことを考えると、


\frac{1}{4}\times\left(-\log_2 \frac{1}{4}\right)+\frac{1}{4}\times\left(-\log_2 \frac{1}{4}\right)+\frac{1}{4}\times\left(-\log_2 \frac{1}{4}\right)+\frac{1}{4}\times\left(-\log_2 \frac{1}{4}\right)=2


ということになって、エントロピーは 2 ビット。つまり、「(大学生,地元) or (大学生,県外) or (社会人,地元) or (社会人,県外)」の 4 つの場合を区別するのに 2 ビットの情報が必要だと言うことです。


うまくできてますね *4


もう一つ。「大学 or 社会人」の方が、「CA or not CA」の場合より、よりエントロピーが高い、ということ。同じぐらいの確率の情報が並んでいる方が、珍しい情報か否か、という場合よりもエントロピーが高いんですよね。


珍しい情報 (「CAを紹介!」) が得られたときのインパクトは大きいけど、そうでない情報 (「今度の子、CAじゃないよ」) 、つまり、気の抜けた情報が得られる場合の確率が多いので、全体的にはエントロピーは高くなりません。


それよりも、どちらも同じくらい可能性のある、別な言い方をすれば、同じくらいの価値のある情報が並んでいた方が、エントロピーが高くなるのです。


エントロピーというのは、ある質問、たとえば、「大学生 or 社会人」とか「CA or not CA」みたいな質問に答えるのに平均的に必要な情報量。エントロピーが高い方が、必要な情報量が多い。逆に言えば、エントロピーが高い場合には、答えにたどり着くためにより多くの情報量を必要とする、ということであります。


次の記事

http://d.hatena.ne.jp/onkimo/20100503/1272842361

に続く。

*1:この言い方は正確ではないですね。本当は、2 とか 3 とかはこの段階では指数と呼ばれます。

*2:ここ、ちょっとインチキしています。たとえば、女子大学生が全部地元出身で、大学卒業をしたらみんな県外に就職し、地元で働いている社会人女子が全部県外出身だった、みたいな場合。そのときは、二つの情報をもらっても、情報量は増えません。「大学生」という情報をもらった時点で「地元出身」ってわかるからね。「大学生か社会人か」ということと「地元出身 or 県外出身」ということに関係がない場合、専門的に言うと、この二つの間に相関がない場合は、本文の話が成り立ちます。なお、相関がある場合の取り扱い方も情報理論ではカバーされていますので、ご心配なく

*3:もちろん、この情報理論エントロピー統計力学的なエントロピーと定数倍を除いて一致することは知っています。ただ、このブログの範囲で説明するまで私の理解がこなれていないということです

*4:またもや相関がないと考えています。相関がある場合はそれなりの取り扱いが用意されています。