"機械学習","信号解析","ディープラーニング"の勉強

読者です 読者をやめる 読者になる 読者になる

"機械学習","信号解析","ディープラーニング"の勉強

"機械学習","信号解析","ディープラーニング"について、それぞれ勉強しながらブログにまとめていきます。テーマは気分によってバラバラかもしれません。

情報で出てくるエントロピーとは

数学 数学-情報理論

情報理論は現代のコンピュータが実現されるよりも前からシャノンによって提唱され、そして実際に情報通信技術(符号化や暗号化)の基礎を築いてきました。今回はそんな情報理論のエントロピーにまつわる話です。

 

機械学習を少し勉強したことがある人にとっては馴染みの深いKLダイバージェンスは、情報理論では相対エントロピーとして知られる概念です。KLダイバージェンスは確率分布の隔たり(あるいは似ている度合い)を計る指標であるというのが、おそらく一般的な機械学習での解説です。今回はKLダイバージェンスまでは行きませんが、エントロピーなる概念の理解に努めていきます。(後々、KLダイバージェンス・相対情報量まで書きます)

 

 

情報の定式化

エントロピーなる概念は、もともと統計物理学で現れたものです。

情報理論として情報量なる概念を定式化していった際に、統計物理で扱われるエントロピーと数学的に同じものが出てきたため、統計物理に準えて情報理論で扱われるその数式もエントロピーと呼ぶようにしました。

情報量が大きいとは?

まず情報という目に見えないモノを如何にして定量的に扱うのかを考えなければなりません。情報を得るということがどういうことなのか、そして「たくさんの情報を得た」とか「あまり情報が得られなかった」などという表現はつまりどういうことを意味しているのでしょうか。

 まず「大陽は地球より大きい」という情報を(大の大人が)聞いたとして、その聞き手はどんな情報を得たと言えるでしょうか。大の大人にとって、これは当たり前の事実で100%そうだと言い切れることです。聞くまでもないことであって改めて「太陽は地球より大きい」と告げられても何も得ていないことになります。

 次に、「明日は雨が降る」と告げられたらどうでしょうか。ちなみにこのお告げは絶対真実を言っています。天気予報は確実に当たるわけではないですが、神様が「明日は雨が降る」という真実を教えてくれるのであれば、これはかなり大きな情報を得たことになります。

更に、ロト6などの数字を自分で指定する宝くじの当選番号を教えてもらえる場合はどうでしょう。これはたまげた情報です。お金がもらえることもそうですが、普通に番号を選んでいたら当たる確率なんてかなり小さいはずです。

 つまり、ある事象に関することを知る場合には、その事象が起こる確率が小さければ小さいほど大きな情報を得たと感じるはずです。8割方起こるであろうと予見していたことを教えてもらうよりも、全く予期していなかったことが起こると教えてもらえる方が大きな情報を得たと言えるわけです。

 

情報量を定式化する

上述の通り、情報量を定式化する場合には事象の確率が小さければ小さいほど大きくなるものを考える必要があります。情報量というのはどうやら確率の関数で表すべきです。

次に、全く無関係な事象について個々に情報を得ることを考えましょう。

「今晩は雨が降る」という情報と「友達の家の今日の晩御飯はカレーだ」という情報を同時に入手したとします。そしてこれが同時に起こったとしても、別に個々の事象に関連はないはずです。

このような場合には個々の情報量の和で、全体の情報量が表現されるべきです。しかし確率のお話で言えば、個々の独立な事象が同時に起こる場合には、個々の確率の積で事象が同時確率が求まります。

つまり確率の関数で表される情報量というものは、確率の積に対して、情報量としては和になっていることを要求したいのです。

 

要するに確率p(・)に対して情報量の関数 h(・)

 

1.区間[0 1]で、減少関数(確率は0〜1の値であり、小さい確率ほど情報量は大きい)

2.h(p1*p2)=h(p1)+h(p2)

 

であってほしいのです。

このような要求を満たす単純な関数を知っています。対数関数です。

 

h = \log(・)

 

という形にしておけば、\logの中身に積が来た場合には

 

h(p1*p2)=\log(p1*p2)=\log(p1)+\log(p2)=h1+h2

 

のように、個々の事象に関する情報の和だと捉えることができます。

次にこれを減少関数にするために負符号をいれ、更に事象xに関しての確率をp(x)だとすれば、とある事象x(例えば雨が降るとか)に関する情報量は

 

h(x)=-log(p(x))

 

と表現できます。

 

エントロピー

情報量の期待値

ある事象が起こる確率を論じる時、普通はその事象とは異なる(が関係のある)事象と比較をしているはずです。具体的には、「明日は雨」「明日は晴れ」という二択に関して、明日は雨であるという事象に関して確率を考えれば、それは晴れの確率と比較していることになります。

要するに「明日は雨」という神からの絶対的なお告げを頂いた時に、どれだけの情報量を得たことになるかというのが、先程まで話してきたことです。

では次は話題を少し変えてみて、「明日は雨」「明日は晴れ」という二択に関して、これから神からお告げを貰おうと思った時に、得られるであろう情報量はどれほどでしょうか。

まだ「晴れ」か「雨か」お告げをもらう前に、この情報をこれから教えてもらえるとなったときに、どれくらい情報量を獲得できそうかというのは、現実的に単なる情報量よりも重要な問題だと思います。もちろん現実には神からのお告げはありませんが、これから本腰を入れて何かを調べようと考えたときに、一体努力の末にどれだけの事を知れるのかというのは興味がある問題なはずです。

つまり情報量の期待値に興味があるのです。

 

不確定であるほど、情報量の期待値は大きい

もしも天気予報で「晴れ10%、雨90%」と出ている場合には、神様から明日の天気に関するお告げをもらう必要はあるでしょうか?傘を持って行こうか迷うことなんてありません。90%と言われたら普通は持っていくでしょう。

神様にお告げを聞いたら、案の定「明日は雨」だと言われたとします。これはかなり確率の高いほぼ自明なことを告げられただけで、大した情報は得られてません。しかし、もしも「明日は晴れ」だとお告げを貰った場合、これは良いことを聞いたと思うはずです。みんな傘を持っていく中、自分だけは軽装で済みます。

ともかくお告げを聞く前に、このお告げで得られる情報量の期待値を見ましょう。

 

晴れの情報量 -\log(0.1)

雨の情報量 -\log(0.9)

期待値は 0.1(-\log(0.1))} + 0.9(-\log(0.9))

 

です。とりあえず、こんなもんです。電卓があれば叩いてみてください。

一方で、「晴れ50%雨50%」の天気予報の場合には傘を持っていくかかなり迷いますね。ですから、直感的には先程の例で神のお告げを使うよりは、こちらの方で神のお告げを使いたくなるはずです。あまりにも不確定なので、あてずっぽうで選ぶには少し怖い気がするでしょう。

ともかくこのお告げの情報量の期待値は

 

0.5(-\log(0.5)) + 0.5(-\log(0.5))

 

です。これは先程の例よりも大きな値になっています。(logの底はコンピュータの論理回路を意識して2で表される場合が多いですが、比較の場合は揃えてさえいれば問題ないでしょう)

 

これは直感と結果があっています。5分5分のような不確定な状態であればあるほど、神のお告げを使いたくなりますよね。情報量の期待値は、確率が全部均等に分配されている時ほど大きくなります。そして、この情報量の期待値のことをエントロピーと呼ぶのです。

 

統計物理との関連(余談)

熱力学のエントロピー

熱力学ではエントロピー増大則と呼ばれる非常に重要な法則があります。

これは熱力学における温度と熱量の比の総和が大きくなっていく方へ自然と変化するということを言っているのですが、現象としては高温から低温へと熱が伝わるということです。

振り子の力学的エネルギーの場合には、位置エネルギーと運動エネルギーは交互に増減しながら総和を一定に保ちます。しかし熱エネルギーの場合は、高温での熱と低温での熱は交互に増減したりはせず、かならず高温から低温への一方向へしか流れないのです(総和は保ちます)。力学的エネルギーならいつでも位置エネルギーを運動エネルギーへ、あるいはその逆への変換をできますが、熱エネルギーの場合は外部から余計なエネルギーを供給してやらない限りは低温から高温へと熱は移せないのです。

ともかく熱力学のエントロピーでは、物理的現象を表現するために温度と熱量の比を考慮したというくらいの概念でした。

統計力学のエントロピー

統計力学は、熱力学をミクロな視点で掘り下げたものです。物体が熱を持っているというのは、かなり細かく拡大すれば、分子が運動をしているということです。究極には分子の運動エネルギーを熱として認識しているにすぎないのです。しかし、分子の運動エネルギーが、なぜに一方向へしか流れないのかというのは疑問ではないでしょうか。なぜならば力学的エネルギーは位置エネルギーと交互に増減できるはずです。それが自由に起こらないのはなぜでしょうか。

この問に答えたのが統計的考え方です。実際にはより大きな運動エネルギーを持った分子が小さな運動エネルギーの分子からエネルギーを奪うことも稀にあります。でも大抵は大きな方が小さな方に分け与えるような形で衝突するケースが多いために、確率・統計的に見るとあたかも一方向にしか流れていないように見えるのです。

エントロピーが増大するというのは、この場合には運動エネルギーの大きな動きの激しい分子が、衝突を繰り返すうちに、もともと静かだった分子にエネルギーを分け与えて全体的に同じくらいになっていくということです。

これが結果的に高温から低温へ熱が移動したように見えるのです。

これは高エネルギーと低エネルギーの分子が複数あり、これらが箱の中で仕切りによってキッチリ分かれていることを想像してください。これに対して仕切りを外し、箱をシャッフルして好きなタイミングで仕切りを戻した際に、分子が低エネルギーと高エネルギーでキッチリ分かれていると思えますでしょうか。混じっていることしか想像できないはずです。これが元々高エネルギーが密集していた方から低エネルギーへ流れていった現象を表しています。バラバラに混ざっている組み合わせは非常に多いですが、キッチリ別れる組み合わせなんてのは2通りしかないのです(高エネルギーだけ全部左or全部右)。当然、ちょうどいい具合に混ざった所で変化はほとんど起きなくなるはずです。何度試しても、組み合わせの数的にキッチリ別れることは起こらないでしょう。

エントロピー増大でエネルギー枯渇?

以上のことから、物理でのエントロピーというのは分子の(状態の)組み合わせから確率・統計的振る舞いを述べたものでした。熱的に言えば、エントロピーが増大するというのは、熱が均等に分配されていく平等さを表しています。しかし一方で、熱が均一に配分されていくとなると、ある場所にエネルギーをいっぱい集めるのは自然現象では無理ということです。何か外部から操作を施さなければなりません(エネルギーを使う)。もしも放っておいたら(というより何をしても)エネルギーは散り散りに、カスの集まりになってしまうのです。総和は保たれています。しかし、山のように積もった塵となってしまうのです。

ですから、エントロピーが自然に増大し続けるという事実は、非常に都合が悪いことです。やがて、貯蓄されたエネルギー全てが塵になれば、我々は今一度大きなエネルギーの塊を得るすべがなくなるのです(なにせエネルギーを集めるためのエネルギーがないのだから)。

そういうわけで、熱学ではエントロピーを「乱雑さ」とかエネルギーの質の悪さの如く扱う場合もあります。エントロピーが高いエネルギーというのは、要するにエネルギーが散り散りになっていてまとまっておらず、使い物にならない質の悪いエネルギーということです。

 

情報科学との関連

しかし、物理的実体からひとたび離れて、その数理に着目すれば少なくとも形式はほとんど同じです。情報でエントロピーといえば、述べてきた通り得られる情報量の期待値です。

(科学の世界では、形式的に同じだけという意見と本質的に同じで区別する必要がないという意見の両方がある。とりあえずそれはおいておくとして、)物理学でのエントロピーに関する色々な研究成果が、上手く行けば情報科学の世界に活かせるというわけです。情報科学は歴史がかなり浅いですが、物理は古くから研究されてきており、様々な問題の解法や考え方が整っています。これらを(概念的に違うものとは言え、問題を解く解法として)流用することは可能です。

特に学習マシンであるボルツマンマシンは、統計物理のイジングモデルをまるまる頂いており、また近似解法である平均場近似は統計物理の考えそのものです。マルコフ連鎖モンテカルロ法として用いられるギブスサンプリングも同様です。変分ベイズ法は物理学で生まれた変分法に基づいています。また、ベイズ理論による推論も、伝統的な科学の分野ではおそらく統計物理が最も最初に用いていました。

物理の振る舞いをモデル化する時には、最大エントロピー原理に従うという考えがあります。モデル化するというのは、その振る舞いを数式化するということですが、その数式を知ったことで物理の振る舞いに関する情報が最も多く得られるようなモデルを選択するというのが最大エントロピー原理の情報科学てき解釈です。そして最大エントロピー原理は、物理で生まれたものではありますが、推論などを行う際に一般的に扱える概念だと考えられています。