スキップしてメイン コンテンツに移動

Entropy


Introduction
sorry, this page is Japanese only. 

今日はエントロピーについて書こうと思います。これは確率論や統計学で死ぬほど大事なKLダイバージェンスといものを理解するために必要な知識です。
この記事ではエントロピーについてしか書きませんが、今度KLダイバージェンスについても書こうと思います。

KLダイバージェンスの記事はこちら



Entropy
直観的な話
ある事象、「例えば明日大学の講義にX分遅刻する」という事象を考えます。
この事象に対する確率がP(X)が与えられているとしましょう。P(1)は一分遅刻する確率です。この時確率分布P(X)が持つ情報量はどれだけのものかとうことを考えたいとします。

明日の講義はテストを受けるとします。そのテストを受けないと単位を落としてしまします。しかし、テスト前日はすごく寝不足としましょう。遅刻する確率が99パーセントとわかった時、ほとんどどうあがいても遅刻するのであれば単位を落とすのはほぼ確実といえます。

よって前日に徹夜で勉強するよりも、睡眠不足を解消するために寝る方がよっぽど効率的であることがわかります。しかし、遅刻をする確率が50パーセントとわかった時、前日にテスト勉強をすればよいのか、せずに睡眠をとればよいのかわかりません。このように、確率が偏っているほど何が起こるか予測しやすく、対策を立てやすいのです。遅刻する確率が99パーセントとわかる時は遅刻する確率が50パーセントとわかった時に比べて圧倒的に多いはずです。

確率P(X)に対してこの情報量のことをP(X)の自己エントロピーといいます。

そして、自己エントロピーの期待値のことを平均エントロピーといいます。



立式
性質
ではこの情報量を数式で表していきましょう。まず自己エントロピーには大事な性質が二つあります。それが

  • 互いに独立な確率変数の自己エントロピーはそれぞれの情報量の和で表される。
  • 自己エントロピーは減少関数である。

の二つです。

自己エントロピーの加法性
互いに独立な確率変数の情報慮はそれぞれの情報量の和でなければいけません。例えば「明日の講義がY分早く終わる」という事象を考えます。この確率変数Yはあなたが何分講義に遅刻しようが講義が何分早く終わるなんてことには関係ないわけです。よって確率変数XとYは独立なわけです。ではもし「明日お前は30分遅刻し、講義は30分早く終わる」と未来の自分に教えてもらったとします・この時「明日自分は30分遅刻する」という事実と「明日の講義は30分早く終わる」という事実の二つの事実を知ったとして、それぞれの自己エントロピーの足し算と考えるのが自然なわけです。

つまり、互いに独立な確率変数の同時に起こる確率変数の同時におこる確率はそれぞれの確率の積であるのでP(X)P(Y)、情報量の関数をH()とするとき

$$H(P(X)P(Y)) = H(P(X)) + H(P(Y))$$

を満たしてほしいということになるわけです。このような関数は高校二年生で習いますね。

ずばり対数関数です。

自己エントロピーは減少関数
自己エントロピーは上記の「直観的な話」の中でその事象が起こる確率が高ければ自己エントロピーは低く、確率が低ければ自己エントロピーは高いという話をしました。



自己エントロピーの式
一つ目の性質を満たす関数といえば、対数関数でした。しかし、対数関数は単調増加関数(ずっと増えてる関数)です。そこで対数関数を-1倍することで減少関数をし、二つ目の性質を満たすわけです。よって自己エントロピーの関数は確率P(X)に対して

$$-log(P(X))$$

と定義されます。

平均エントロピーの式
平均エントロピーは自己エントロピーの期待値であったので

$$\int -P(X)log(P(X))dx$$
また、確率変数が離散(連続値でない)であれば

$$\sum -P(X)log(P(X))$$
となります。



平均エントロピーについての直観
平均エントロピーとは自己エントロピーの期待値でした。
ではこれは直観的にどのようなことを示しているのでしょうか。結論からゆうと平均エントロピーとはその分布の不確実性の大きさを示しています。次の二つの確率分布について考え、そのことを確かめてみましょう。

  • デルタ分布
  • 一様分布

デルタ分布の平均エントロピー
デルタ分布とはある確率変数で必ず確率1となり、それ以外の確率変数の確率は0となる確率分布のことです。
では[0,1]の値の中で100パーセントの確率で0.5の値をとるデルタ分布のエントロピーを求めてみましょう。

この時の平均エントロピーは区間は$[0.5-\delta,0.5+\delta]$とし、この時$\delta \rightarrow 0$ とすることで$\frac{1}{2 \delta } log \frac{1}{2 \delta} $を積分し、求めます。

なぜ、このような式になるかというと[0.1]は連続な区間であり、デルタ分布(今回の)は0.5で1をとるので、積分するには底辺が区間$0.5-\delta,0.5+\delta]$高さ1の長方形を考え、上記のようにして長方形の横幅を狭めていくことで積分をします。計算は次のようになります。


$$lim_{\delta \rightarrow 0} - \int_{0.5-\delta}^{0/5+\delta} \frac{1}{2 \delta} log \frac{1}{2 \delta} = lim_{\delta \rightarrow 0} [- \frac{1}{2 \delta} log \frac{1}{2 \delta}]_{0.5-delta}^{0.5+\delta} = lim_{\delta \rightarrow 0} -\frac{1}{2 \delta} log \frac{1}{2 \delta} \times 2 \delta = lim_{\delta \rightarrow 0} -log \frac{1}{2 \delta} = - \infty$$


よってデルタ分布ではエントロピーは$-\infty$となりました。エントロピーを不確実性と考えるとデルタ分布では100パーセント何が起こるかわかっているという直観と一致するわけです。

エントロピーの最大化と一様分布
上記でデルタ分布はエントロピーを最小化させる分布であることがわかりました。次にエントロピーを最大化するような分布は一様分布であることを示しましょう。

一様分布とは区間[a,b]に対してどの確率変数も$P(X) = \frac{1}{b-a}$となる確率分布です。
ではエントロピーの最大化をします。ここで1,2,3,,,,nのどれかをとる確率を$P = [p_1,p_2,,,,p_n]$と表すことができ、この離散確率分布のエントロピーを最大化させることを考えます。これにはラグランジュの未定乗数法という知識が必要になります。

$\sum_{i=1}^{n} p_i = 1$の条件の下で$H = - \sum_{x \in X} p_i log p_i$を最大化させます。
ラグランジュの未定乗数法を用いて$L(p,\lambda)=H+\lambda(\sum p_i - 1) \frac{\partial L}{\partial p_i} = 0$
より
$-log p_i -1 + \lambda = 0 log p_i = \lambda-1$
より
$p_i = exp(lambda-1)$ 、これを条件式に代入すると
$n exp(\lambda-1) = \lambda - 1 = log \frac{1}{n} = -logn$
これを先ほどの式代入して
$p_i = exp(-log n ) = \frac{1}{n}$ というふうに求まります。
これはつまり、$P = [p_1,p_2,,,,p_n]$ という確率分布を示し、これは、まさに一様分布を示しています。つまり、エントロピーが最大になるのは一様分布であることがわかりました。一様分布はどの確率変数に対しても$\frac{1}{b-a}$ 、今回でいえば$\frac{1}{n}$をとるので何が一番起こりやすいのかわからないことを踏まえると平均エントロピーを最大化させる分布は一様分布であったので、平均エントロピーとは分布の不確実性の高さを表すということがわかります。

_________________________________________________________________
終わりに
この辺でエントロピーの話は終わろうと思います。エントロピーはKLダイバージェンスのために書いたようなものなのでKLダイバージェンスのほうもご覧いただけると幸いです。


KLダイバージェンスの記事はこちら

___________________________________________Reference

http://s0sem0y.hatenablog.com/entry/2016/04/20/194040
http://s0sem0y.hatenablog.com/entry/2016/04/21/132645
https://ja.wikipedia.org/wiki/カルバック・ライブラー情報量
https://ja.wikipedia.org/wiki/情報量
https://qiita.com/tibigame/items/aebbac176d9bbdaf3d15
https://hinaser.github.io/Machine-Learning/math-for-ml.html
http://www7a.biglobe.ne.jp/~watmas/masaru-rep/info-normal.html
https://bi.biopapyrus.jp/seq/entropy.html) (https://lp-tech.net/articles/Lc0Jw
http://minami106.web.fc2.com/code/4.pdf
http://ossyaritoori.hatenablog.com/entry/2016/11/02/150335
https://lp-tech.net/articles/9pF3Z) (https://logics-of-blue.com/information-theory-basic/

コメント

このブログの人気の投稿

最尤推定

Introduction English ver 今日は最尤推定について加工と思います。これは統計的推定でよく使われる手法です。最尤推定の例も書こうと思います。初めに尤度の説明をし、そのあとで最尤推定の説明をします。 概要 尤度 最尤推定 最尤推定の問題点 尤度 前提条件から得られる観察データを考えます。この時、えられた観測データに対して前提条件が尤もらしい条件であるかの値を尤度といいます。 なにをゆっているのかわからない人がほとんどだと思います。。。 尤度の例を扱っていきます。 コインを投げることを考えます。このコインは確率Pで表、確率1-Pで裏を出すコインだとします。 例えば、100回コインを投げたとき、全て表だったとします。この時このコインが表が出る確率はかなり1に近いことが予想されます。 ではもし、表が出る確率PがP=0.5だとします。この時、表が100回連続で出る確率は$0.5^{100} = 7.88860e-31$になります。あり得ない確率ですね。これがP=0.5としたときのもっともらしさです。つまり、あまり現実的ではないということです。 もしP=0.99とするとき、100回とも表が出る確率は$0.99^{100} = 0.3666....$となります。つまり、P=0.99としたときの尤度は0.36くらいということです。よって、P=0.5よりかは現実見があることになります。まだまだ低い数字ではありますが。 観測データである、100回表が出るという事象を固定したとき、尤度はPを変数としたP(100回表|P)を尤度関数と呼びます。この関数の値を尤度と呼びます。 尤度が高いほうが尤もらしい値、つまり理にかなっているなと感じることができる値ということになります。 例えば、先ほどの例でゆうと、 P=0.5としたときの尤度は7.88860e-31でした。P=0.99としたときの尤度は0.3666でした。よってP=0.5より、P=0.99のほうが尤もらしい自然な値ということになります。 最尤推定 最尤推定とは得られた観測データからデータが依存している分布のパラメーターを推測するための手法です。 最尤推定では尤度を最大化して、最も尤もらしいパラメーターを求めます。 確率密度関数...

heap structure

Introduction 日本語 ver Today, I will write about heap structure. The heap structure is one of the data structure. My reason of studying heap structure is that I joined seminar of Ritsumeikan Univ. I used this  slide  in seminar of Ritsumeikan Univ. Overview data structure binary tree heap Implementation heap sort Data structure I will explain about data structure before explaining about heap. Data structure is how to keep data. Data structure is selected on the basis of operation which you want to.  Heap belong to data structure called priority queue. priority queue have purpose which  add data pick up minimum data (and remove)  Binary Tree Let, E and V are sets. The element $e \in E$ is called edge. The element $v \in V$ is called node. g:E->V×V is map to V × V from E. (E,V,g) is called graph. For example, The arrows are edge. The circles are node. This is expressed map. It is possible to go to node 3 from 1....

LIMIT and user variable in MysQL

Problem 日本語 ver I want to use this query in PROCEDURE. SET @user_variable = FLOOR(RAND()*10); INSERT INTO  Table_name (columns_name) VALUES (1) FROM Table_name ORDER BY RAND() LIMIT 1 OFFSET @user_variable; This query want to substitute 1 for the @user_variable 'th line of columns_name, but this query does not work. A cause is that LIMIT and OFFSET does not user variable. Solution SET @user_variable = FLOOR(RAND()*10); PREPARE SET_STMT FROM 'INSERT INTO  Table_name (columns_name) VALUES (1) FROM Table_name ORDER BY RAND() LIMIT 1 OFFSET ?;';  EXECUTE SET_STMT USING @user_variable; Conclusion, if you want to use user variable with LIMIT or OFFSET, use PREPARE STATMENT. Reference http://techtipshoge.blogspot.com/2011/10/limit.html