コンピュータが人間の代わりに計算をするようになってから、膨大な計算量をこなせるようになりました。
コンピュータの性能も時代と共に高性能になりました。
コンピュータは与えられた計算を淡々と処理していきますが、計算のやり方は人間が考えてあげなければなりません。コンピュータも人間と同じで正しい道に導いて上げないと、非効率なことを行ってしまいます...
そこで、コンピュータの効率化を行うのです!!
この効率化を行うために必要になってくるのが、情報に関する理論です。
今回は情報理論の基礎である「情報量」と「エントロピー」に関して解説します!
ちょっと計算大目ですが、頑張りましょう!
情報量とは?
いきなり「情報量とは?」と言われても何に使うのか分かりませんが、一先ずコンピュータにおいて様々な情報を扱うために必要な数値だと思ってください。
例えば、サイコロを振った時に「3」が出る確率は「1/6」ですが、コインを投げた時に「おもて」が出る確率は「1/2」ですよね。この時、コインは「おもてかうら」という二つの事象になり、おもてという事象はサイコロよりも起こり易いですよね。このように起こり易さの尺度を「情報量」として扱います。
情報理論において、ある事象が起こる確率(コインのおもてが出る確率は1/2)を「P」とする場合、その事象が起こったことを伝える情報の量は次の式で表すことができます!
$$情報量(ビット)=-\log_2 P$$
サイコロの「3」が出たという事象は、次の情報量となりますね。
$$情報量=-\log_2 1/6 ≒ 2.58ビット$$
そして、コインの「おもて」が出たという事象は、次の情報量となりますね。
$$情報量=-\log_2 1/2 ≒ 1ビット$$
情報量からも事象が起こりにくい、つまり確率が低いほど、それを表すための情報量(ビット数)は大きくなるのですね。
シンプルな事象ほどビット数が少なくて済むので、コンピュータは処理し易いのですね。
ちょっとイメージ沸きにくいと思いますが、続いてエントロピーの解説です。
エントロピーとは?その使い方は?
サイコロやコインは同じ確率でそれぞれの目やおもて・うらの事象が発生しますが、全ての事象が同じ確率で発生することは無いです。例えば、「天気の晴れ・くもり・雨」だったり、「おみくじの大吉、中吉、小吉、凶」など、それぞれの確率は違いますよね。
そんな時の情報量はどうするのでしょうか?
次の図の通り、おみくじを例に考えてみましょう!
それぞれの情報量が出たところで、全ての事象の平均を取ったもの、それぞれの事象の情報量と確率をかけたものの総和をエントロピー(平均情報量)と呼びます。$$※ P(A_k) は事象A_kが起こる確率、情報量(A_k)は事象A_kの起こる情報量 $$
$$平均情報量 = \sum_{k=1}^{n} \{P(A_k)\times情報量(A_k)\}$$
おみくじの各事象における情報量とおみくじのエントロピー(平均情報量)は次のようになります。
$$\begin{align*}平均情報量 &= \sum_{k=1}^{4} \{P(A_k)\times情報量(A_k)\} \\ &=0.2\times2.32+0.3\times1.73+0.4\times1.32+0.1\times3.32 \\ &= 1.84\end{align*}$$
平均情報量も事象の尺度なので、値が大きいと事象が起こり難いので、情報が不確かであることが分かります。
例えば、おみくじのそれぞれの結果の値が同じで、それぞれ「1/4」の確率だった場合、平均情報量(エントロピー)は「2ビット」となります。これは、上記の確率が違う時の値(1.84ビット)よりも大きく、不確定であると考えることができますね。
また、おみくじが「大吉」しか出ない場合、そこに不確定さが無いため平均情報量は0ビットとなります。
まとめ
今回はコンピュータの効率化を行うための、基礎となる「情報量」と「エントロピー」に関して解説しました。
何かの事象が起きる確率が低いと曖昧さが増えるので、必要な情報量が多くなるということがポイントですね。
この情報量を応用することでデータを圧縮することに役立てることができます。詳しい話は別の記事で記載しようと思います。
まずは情報量の計算方法をしっかり覚えて使えるようにしておきましょう。
以上です!
参考URL)