表紙(FrontPage) | 編集(管理者用) | 差分 | 新規作成 | 一覧 | RSS | 検索 | 更新履歴

二項エントロピーについて -

目次

生物学で行う実験では、絶対的、定量的で正確な値を求めることは難しいことが多い。得られた値は対照と比較して、「相対的に多い」「相対的に少ない」というように判断、解釈することしかできない場合が多い。 だから結果は「対照と変化しない」「対照よりも増える」の二通り、または「対照と変化しない」「対照よりも減る」の二通りというようになる。または「対照よりも減る」「変化しない」「対照よりも増える」の三通りになる。遺伝子の塩基配列は塩基が ATGC の 4 通りある。それぞれの塩基が出現する確率を用いてエントロピー計算を行うことで、Sequence logo のように有用に用いられている。   http://en.wikipedia.org/wiki/Sequence_logo 

二通りの場合、それを元にして「2値(二項)エントロピー」の考え方で解釈することができる。そこで、2値エントロピーについて勉強することにする。

ついでに「条件付き確率」「条件付きエントロピー」についても勉強してみる。 条件付き確率は、条件付きエントロピーの計算以外にも様々なところで有用に用いられている。 ベイジアンネットワークというものは、二つの変数の間の関係を条件付き確率で表現する。方向性がある(関係に矢印がつく)のが特徴で、相関係数のような方向がない量と異なる。細胞内の遺伝子のネットワークの分析に用いられている。ベイズの定理という重要な定理は、同じ二つの変数をもち、お互いに向きが逆の、二つの条件付き確率の間の関係を表す。   ベイズの定理を学ぶには、その前にまず条件付き確率を学んで理解しておかないといけない。

堀部安一教授による「情報エントロピー論 第2版」(森北出版)という教科書を購入した。この本では「二項エントロピー」と書いてあるが、検索すると「2値エントロピー」と書かれている場合が多い。

条件付き確率、ベイジアンネットワークについては、杉本直也氏による「動的微分ベイジアンネットワークによる遺伝子制御関係の推定」という修士論文の、最初の方に書かれている解説を参考にさせてもらう。


情報エントロピー論において、最も基本になる式が第 1 ページに記載されている。

確率的に決まる変数 X (大文字)に対して、それが x という値を取る (X = x) 確率を p(X = x) と書く。これを略して p(x) と書くことが多い。しかし私にとっては少しでも略されるとそれだけで訳がわからなくなる可能性が高くなるので、できるだけここに書く文章では略さないようにする。

確率 p(X = x) は、もちろん x が変化することによって変化する。どう変化するかがあらかじめ決まっている場合、それを X の確率分布という。

情報エントロピーでは、確率分布は離散分布(離散=連続でない=いくつかの区画に分けられている 区画が二つなら二項分布)で、有限分布(区画の数が有限 区画が二つなら二項分布)の場合が多い。これらのことが成り立つ場合、確率分布をヒストグラムとして表現できる。離散分布と対になるのは連続分布で、正規分布などが含まれる。正規分布は区間が無限小から無限大なので無限分布で、有限分布と対になる。

2値(二項)エントロピーは、離散分布で区画が二つしかない場合で具体的な例を構成しやすい。また上に書いたように生物学では「結合する」「結合しない」とか「上がった」「変わらない」とか「活性化する」「しない」のように二つの場合を組にすることが多いので、生物学のデータに当てはめやすい。

上の式を2値(二項)エントロピーに当てはめて省略せずに書いてみる。X は 0 と 1 の二つの状態を取ることに設定する。X = 0 でなければ必ず X = 1 なので、p(X = 1) = 1 - p(X = 0) になる。するとエントロピーを H として(熱力学だと S だが情報エントロピーでは H)

になる。2値(二項)なので簡単に書くことができる。

このことを「二つの、温度の異なるヒートブロックがくっついた状態」に見立ててみる。温度の差が存在すると、高温のヒートブロックから低温のヒートブロックへ熱が移動し、二つのヒートブロックをまとめた全体のエントロピーの変化は正の値になる。すなわち全体のエントロピーは上限の値よりも低い。 二つの熱源の温度が均一になると熱は移動しなくなり、エントロピー変化の和は0になる。熱がヒートブロックからどこへも移動しないのなら、二つの熱源の温度が均一な状態がエントロピー最大になる。

2値(二項)エントロピーでは、二つの項の確率が等しい、均一な  状態が最大になる。その際の H を計算してみると 1 になる。

2値(二項)エントロピーの値をグラフにしたものが堀部先生の教科書では 14 ページにある。横軸は確率 p(X = 0) に相当する値で、確率だから0〜1の値を取る。1/2 を中心にして左右対称の値を取っている。

条件付き確率、条件付きエントロピーを、2値(二項)エントロピーの場合について具体的な例として構成する

生物学ではある物事が起きると、それによって別の物事が引き起こされることが多い。例えば、植物がある刺激を受けると、A という転写因子の働きが活性化すると言うことがわかっているとする。転写因子 A は、その配下である遺伝子 B の転写を活性化する。 このしくみを「二段になった枝分かれ図」に当てはめる。

一段目は「転写因子 A が不活性」「転写因子 A が活性化」

二段目は「遺伝子 B が不活性」「遺伝子 B が活性化」「遺伝子 B が不活性」「遺伝子 B が活性化」

堀部先生の教科書では、4 ページの図 1.1 に、上の図と同じような「枝分かれ図」で表現した例がある。

こういう図面は、表の形式(分割表)でも表すことができる。生物学ではそのほうが一般的である。 具体的な数値を入れてみる。1388 の条件で遺伝子 A, B の状態がそれぞれ測定されたデータがある。そのデータでは、「A が不活性」AND「B が不活性」の状態が y 個、「A が不活性」の状態全部が x 個とする。「B が不活性」の状態全部が m 個とする。

分割表B が不活性B が活性化行の和
A が不活性yx - yx
A が活性化m - y1388 - x - (m - y)1388 - x
列の和m1388 - m1388

この場合の A, B それぞれ単独に関わる確率はどうなるか。不活性な状態を 0、活性状態を 1 とする。

行の和
p(A = 0) = x / 1388p(A = 1) = (1388 - x) / 13881
p(B = 0) = m / 1388p(B = 1) = (1388 - m) / 13881

つぎに A と B の状態を同時に考えると、組み合わせは (0, 0) (0, 1) (1, 0) (1, 1) の 4 通りになる。 それらの確率は同時確率になる。これは考えやすい。

行の和
p(A = 0、B = 0) = y / 1388p(A = 0、B = 1) = (x - y) / 1388x / 1388
p(A = 1、B = 0) = (m - y) / 1388p(A = 1、B = 1) = (1388 - x - (m - y)) / 1388(1388 - x) / 1388


ここで「条件付き確率」を考える。これはかなりわかりにくいところがある。エクセルで簡単な例を構成していろいろと試したところ、以下のような考えになった。エクセルで簡単な例を作るのは、こういう小難しい物事を理解しようとするときに助けになる。

私の考えによると、2値(二項)エントロピーの場合、「条件付き確率」というものは、「片方の変数を一定の値に固定した場合に、もう一つの変数が取る確率」と表現できる。微分には偏微分というものがあるが、確率における偏微分のようなものと考える。偏微分も「条件付き(ある変数を固定する)微分」と考えることができる。

偏微分には固定される変数がある。その変数を添え字で明示することが熱力学では多い。条件付き確率では、「特定の変数を一定の値に固定」というのが、条件になる。その変数(条件)を縦線の後ろに明示する。p(X | Y) と書いてあれば、「変数 Y を一定の値に固定するという条件での、変数 X に関する確率」ということになる。

2値(二項)エントロピーの場合、条件付き確率の値は、8 個存在する。このことに気がついて納得するのにだいぶ時間がかかった。これは p(X | Y) と p(Y | X) の値が異なる値になる(非対称になる)ことによる。同時確率だと 4 個なので、それよりもややこしくなる。

条件付き確率を考える際には、杉本氏の論文の20ページに書かれているように、すべての状態における条件付き確率を並べた表を作成しないといけない。この表のことを CPT (Conditional Probability Table) という名前で呼んでいる。2値(二項)エントロピーのような簡単な例でも、この表をきちんと作らないと訳がわからなくなる。

X を固定Y を固定
p(0 | x = 0)p(0 | y = 0)
p(1 | x = 0)p(1 | y = 0)
p(0 | x = 1)p(0 | y = 1)
p(1 | x = 1)p(1 | y = 1)

ここで「X は原因」「Y は結果」という因果関係があるとすると、

p(Y | X) は、「原因 X がすでに知られているという条件の元での、結果 Y の起きやすさ」となる。これは因果関係を順方向にたどることになる。 p(X | Y) は、「結果 Y がすでに知られているという条件の元での、原因 X のもっともらしさ」ということになる。これは因果関係を逆向きにたどることになり、生物学に適用しやすい。生物学では結果が実験によって観測され、それに基づいて原因を解明しようとすることが多い。そういうやり方に合っている。

また生物学に限らず物理学、化学などでも、観測によって得られる値は、「その観測値を導き出す原因となった真の値と、真の値を観測値に変換する測定器によって作り出された、結果」と考えることができる。 真の値を直接観測することはできない・測定には必ず誤差が生じるとすれば、観測によって得られた値を結果として、その原因である真の値を推定することが必要になる。その際にはベイズ統計という推定法が用いられる。

例: 細胞に含まれる様々な化合物の分析には、クロマトグラフィーと質量分析の組み合わせが有効で頻繁に用いられる。 この場合、「対象となる化合物の構造」が原因となり、それらが質量分析器で開裂 フラグメンテーションして生じたフラグメント群が検出されて質量のスペクトルが観測データとして得られ、結果になる。 この際にどうしてもノイズが加わる。また複数の化合物由来のシグナルが混ざることもある。 だから化合物の構造を推定するには、観測データという結果から、その原因を推定することが必要になる。


今回の具体例に当てはめると、以下の8つの値になる。

A を固定B を固定
p(0 | A = 0) = y / xp(0 | B = 0) = y / m
p(1 | A = 0) = (x - y) / xp(1 | B = 0) = (m - y) / m
p(0 | A = 1) = (m - y) / (1388 - x)p(0 | B = 1) = (x - y) / (1388 - m)
p(1 | A = 1) = (1388 - x - (m - y)) / (1388 - x)p(1 | B = 1) = (1388 - x - (m - y)) / (1388 - m)

これらの値が、条件付きエントロピーを計算するために必要になる。教科書では28ページから書かれている。条件付き確率については全然説明がない。

まず、X のエントロピー H(X) について: これは p(X = x) での H の値 H(p(X = x)) をすべての x の場合について足し合わせて計算される。上に書いた例の場合、遺伝子 A のみについて H(A) を計算すると、状態は A = 0 と A = 1 の二通りなので、

同様に 

次に条件付きエントロピーを計算する。これは二段階に分けて計算する。

例えば H(X | Y) を計算する場合、2値(二項)エントロピーならば、Y の値には y = 0 と y = 1 の二通りがある。まず、それぞれの場合となる、H(X | y = 0) と H(X | y = 1)  これらの二つの条件付きエントロピーを計算する。

H(X | y = 0) の計算には、2値(二項)エントロピーなら x = 0 と x = 1 があるので、条件付き確率 p(0 | y = 0) と p(1 | y = 0) を用いることになる。

同様に、H(X | y = 1) も計算する。

つぎに、それらの値から H(X | Y) を計算する。2値(二項)エントロピーなら、H(X | y = 0) と H(X | y = 1) を合わせた値の期待値(「条件が成り立つ確率 x そのときの条件付きエントロピーの値」を足し合わせる)が、H(X | Y) の値になる。(二項でなくもっと多い場合は期待値を全部足し合わせることになる)

同様に

「同時エントロピー」という値 H(X, Y) も計算できる。これは単純に同時確率の値から、-p log p を全部足し合わせて計算できる。今回の具体例なら4つの同時確率の値から計算した -p log p を全部足し合わせる。

そうすると、H(X, Y) = H(X) + H(Y | X) = H(Y) + H(X | Y) という関係が成り立つと書かれている。エクセルで具体例を作ってみると、確かにそうなった。教科書を眺めただけではわからなかった。この教科書は数学の言葉で書かれているので、翻訳が必要である。エクセルなどはそれに役立つ。

条件付き確率とベイズの定理

ベイズの定理という重要な定理は、同じ二つの変数をもち、お互いに向きが逆の、二つの条件付き確率の間の関係を表す。

上の式だけだと実際のデータからの計算に使いにくいので、上の式の分子に出てくる p(X) や p(Y) という項を表現する、次の式と組み合わせる。     Y の場合は X を単に Y に置き換える。B は条件で、すべての条件について計算した値を足し合わせることで P(X) や P(Y) の値を計算する。二項の場合は条件が二つなのでそれらを足すだけで済み、簡単になる。

式は簡単だが、このことをうまく理解するのは難しい。私はまだ意味がわかっていない。しかしエクセルでこの式を用いて計算させると、確かに成り立っているのがわかる。

ここで「X は原因」「Y は結果」という因果関係があるとすると、 p(Y | X) は、「原因 X がすでに知られているという条件の元での、結果 Y の起きやすさ」となる。これは因果関係を順方向にたどることになる。 p(X | Y) は、「結果 Y がすでに知られているという条件の元での、原因 X のもっともらしさ」ということになる。これは因果関係を逆向きにたどることになり、生物学に適用しやすい。生物学では結果が実験によって観測され、それに基づいて原因を解明しようとすることが多い。そういうやり方に合っている。

ベイズの定理は「結果から原因を知る」とか、「過去にさかのぼる」というように紹介されていることが多い。 生物学を含む多くの分野で、「ベイズ的な情報処理」とかそういうたぐいの言葉を見ることが多い。 生物学に限らず物理学などでも、観測によって得られる値は、「その観測値を導き出す原因となった真の値と、真の値を観測値に変換する測定器によって作り出された、結果」と考えることができる。 真の値を直接観測することはできない・測定には必ず誤差が生じるとすれば、観測によって得られた値を結果として、その原因である真の値を推定することが必要になる。その際にはベイズ統計という推定法が用いられる。

「ベイズ的・・・」という文章には「事前分布」「事前確率」という言葉が必ず出てくる。観測データが実験などの方法によって手元に得られているとする。「迷惑メールの分類」が、良い例として取り上げられていることが多い。迷惑メールの分類では、ある単語がすべてのメールに出現している確率、迷惑メールに出現している確率、そうでないメールに出現している確率を、事前にデータに基づいて計算する。 求めたい値は、「ある単語が出現しているという条件における、そのメールが迷惑メールであるという確率」になる。多くの単語についてその値を計算して全部足して判定をする。

「ベイズ的な情報処理」では、新しい結果が次々と得られる場合に、それらの結果を取り込んだ学習が容易に行えるしくみになっている。迷惑メールの場合は、新しい種類の迷惑メールを学習させる(データとして取り込む)と、推定される条件付き確率が更新され、より正しい値になる。

X は、「そのメールが迷惑メールでない(0)か、迷惑メール(1)か」

Y は、「そのメールにある単語が出現していない(0)か、出現している(1)か」

と表現できる。ちょうど二項分布の例に一致している。

これも分割表から書いてみる。

分割表その単語が出現する出現しない行の和
そのメールは迷惑メールmx - mx
そのメールは正しいメールy - mN - (x + y - m)N - x
列の和yN - yN

N はメールの総数、x は迷惑メールの数、y はその単語が出現したメールの数、m は迷惑メールであり、しかもその単語が出現しているメールの数

こうすると p(X), p(Y) は

行の和
p(X)迷惑メールの数 / すべてのメール数 = x / N
p(Y)その単語が出現したメールの数 / すべてのメール数 = y / N

p(X | Y) と p(Y | X) を計算するには、CPT (Conditional Probability Table) の表をきちんと作らないといけない。

X を固定Y を固定
p(0 | x = 0)p(0 | y = 0)
p(1 | x = 0)p(1 | y = 0)
p(0 | x = 1)p(0 | y = 1)
p(1 | x = 1)p(1 | y = 1)

今回の例に当てはめると、

X を固定Y を固定
p(0 | x = 0) = (N - (x + y - m)) / (N - x)p(0 | y = 0) = (N - (x + y - m)) / (N - y)
p(1 | x = 0) = (y - m) / (N - x)p(1 | y = 0) = (x - m) / (N - y)
p(0 | x = 1) = (x - m) / xp(0 | y = 1) = (y - m)/ y
p(1 | x = 1) = m / xp(1 | y = 1) = m / y

N はメールの総数、x は迷惑メールの数、y はその単語が出現したメールの数、m は迷惑メールであり、しかもその単語が出現しているメールの数

上の表のようにすべてがはっきりと観測できているのであれば、そのまま条件付き確率の計算ができる。しかし十分な情報、データが得られない場合も多い。そういう場合に、主観的な事前確率、事前分布というものを用いたベイズ推論が行われる。


ベイズの定理の式は     だった。 上の式だけだと実際のデータからの計算に使いにくいので、上の式に出てくる p(X) や p(Y) という項を表現する、次の式と組み合わせる。     Y については単に X を Y に置き換える。 B は条件で、すべての条件について計算した値を足し合わせる。二項の場合は条件が二つなのでそれらを足すだけで済み、簡単になる。

表にしたデータから、具体的な確率を計算してみる。これはとてもわかりにくい。参考文献を見てなんとか理解したような気がしている。 参考文献: 「ASCII」の2003年6月号218ページ 増井氏の記事 http://pitecan.com/ASCII/diary0306.html で公開されている。

この場合表よりも、ベン図にした方がわかりやすい。

まず最初に、すべての確率を、データから何の間違いもなく完全に正しく推定できる場合について計算してみる。 この場合ベイズの式を使う意味はあまりないが、理解するには都合がよい。

  の、分子について:

p(X) は、「迷惑メールである確率」 これを計算するために、   の式を使ってみる。 「A が出現する条件」「しない条件」の二つの条件についてそれぞれ計算し、それらの合計を取らなければいけない。

今回の例では、「A が出現する」の確率は、y / N で、「A は出現しない」の確率は (N - y) / N

P(X | A が出現する) は、m / y

P(X | A は出現しない) は、(x - m) / (N - y)

求める値は (y / N)*(m / y) + ((N - y) / N)*((x - m) / (N - y)) = m / N + (x - m) / N = x / N になる。これはベン図で見ると一目でわかるが、一応計算してみた。

p(Y | X) は、今回の例では「迷惑メールに、単語 A が出現する確率」 略さずに書くと p(Y = 1 | X = 1)  これをベン図から見てみると m / x

だから分子は (x / N)*(m / x) で、m / N と簡単になる。

分母の p(Y) も、   に基づいて計算してみる。 この例では Y は「単語 A がメールに出現する」という事象で、 条件 B は二つあって、「そのメールは迷惑メールである」という条件 (1) と「迷惑メールではない」という条件 (2) である。

「そのメールは迷惑メールである (B1)」の確率は、ベン図から x / N

「そのメールは迷惑メールではない (B2)」の確率は、ベン図から (N - x) / N

P(Y | B1) は「そのメールは迷惑メールであるという条件で、単語 A がそのメールに出現する」確率で、ベン図から  P(Y | B1) = m / x

P(Y | B2) は「そのメールは迷惑メールではないという条件で、単語 A がそのメールに出現する」確率で、ベン図から  P(Y | B1) = (y - m) / (N - x)

これらの値を使って計算すると、 (x / N)*(m / x) + ((N - x) / N)*((y - m) / (N - x)) = y / N 

これで分子と分母が決まったので、割り算すれば答えが出る。 (m / N) / (y / N) = m / y

このように、すべての確率を、データから何の間違いもなく完全に正しく推定できる場合は単純に値が決まってしまう。 しかし、実際に測定されたデータを用いる場合は、それらのデータから求めた確率が本当に信用できるのか、特にデータが少ない場合やノイズ、誤差が大きい場合は正しいかどうか怪しくなる。 そういった場合に、ベイズの定理を用いたベイズ推論が有効になる。

上の「すべての確率を、データから何の間違いもなく完全に正しく推定できる場合」では、P(X) の値をデータから求めた。しかし、今回は残念なことにデータが少なく、誤差も大きそうなのでこの値をデータから求められない、全くこの値に関する情報を得られないとする。

その場合、P(X)「そのメールは迷惑メールである確率」は、全く情報がないので主観的に 0.5 とする。このように、全く情報がない確率を主観的に事前に決めるのがベイズ推論の特徴で、事前確率と呼ばれる。 「そのメールは迷惑メールではない」の確率は、1 - 0.5 = 0.5 になる。「迷惑メールである」「ではない」の二つの事前確率をまとめて、事前分布ということもできる。項の数が増えた場合・連続的な分布になった場合、事前分布といった方がわかりやすくなる。

そうすると分子の方の計算は 0.5 * (m / x) となる。これは、「迷惑メールに単語 A が含まれている確率」を Ps とすると、それに 0.5 をかけ算したものになる。増井氏の解説にも Ps と書かれている。

分母の方の計算は 0.5 * (m / x + (y - m) / (N - x)) となる。増井氏の解説にあるように、m / x は、「迷惑メールに単語 A が含まれている確率」で Ps と書ける。 (y - m) / (N - x) は「迷惑メールではないメールに単語 A が含まれている確率」で、Pn と書ける。 Ps, Pn を使うと、分母は 0.5 * (Ps + Pn)

だからこの場合の答えは、

 

となり、増井氏の解説に書かれていることと一致する。 このように求められた値は条件付き確率だが、ベイズ推論の場合事後確率ということもある。

ベイズ推論では、P(X) を初期値として適当に決めたり、データから計算して得られた条件付き確率(事後確率)を当てはめ更新することで、より正しい値を推論するように学習することができる。

頻度主義 (frequentist) とベイズ主義

上に書いたことでは、すべての確率を、データから何の間違いもなく完全に正しく推定できる場合 と、今回は残念なことにデータが少なく、誤差も大きそうなのでこの値をデータから求められない、全くこの値に関する情報を得られない 場合とを対比した。

確率をデータから正しく推定するには、何回も試行、観測を行う必要がある。これは間違いないことである。さらにこの考えを進めて「求めたい真の確率というものはあらかじめ決まっていて、何回も観測を行いデータを得る頻度を高めれば、それによって得られた頻度、確率は求めたい真の確率を中心とした分布に限りなく近くなる」 と考えることを頻度主義 frequentist と言うらしい。 と思ったが、このことはもっと難しいものらしい。

参考にしたページ: 

http://kenshi.miyabe.name/wordpress/wp-content/uploads/2012/03/s-yr.pdf   「なぜ確率 0 のことが起こるのか」宮部賢志先生

kolmogorov という有名な数学者がいるが、「kolmogorov は頻度主義者」と書かれている。

http://d.hatena.ne.jp/shorebird/20131228 「異端の統計学ベイズ」という本の紹介

http://oskatlas.blog71.fc2.com/ の「ベイズ統計」 素粒子物理学実験(高エネルギー物理学)のデータ分析においても、ベイズ統計が用いられている。他分野の先端的な研究について読ませていただけるのはとてもありがたい。

観測によって得られる値には必ず誤差がある。誤差は二種類に分けられ、系統誤差と偶然誤差がある。 また、観測によって得られる値は、「その観測値を導き出す原因となった真の値と、真の値を観測値に変換する測定器によって作り出された、結果」と考えることができる。偶然誤差は測定回数、頻度を増やすことで小さくできるが、系統誤差は測定器固有の値になり測定回数を増やすことでは解決できない。

ベイズ統計は、「観測によって得られる値(結果に相当)は必ずしも真の値(観測値を導き出す原因に相当)に限りなく近くなるとは限らない。だから事前確率・事前分布という形で主観的な仮定を置き、それと観測データ(結果)を組み合わせることで、真の値を「結果(観測された値)から原因(真の値)を推定する」という、ベイズの式の形を用いて推定する」 ということになる。このように考えてみる。

また事前確率・事前分布を一様分布にしてベイズ統計の計算を行うことは、「我々は確かにいくらかの実験結果、データを得ている。しかしこの値が本当に信用できるのだろうか。 もっと謙虚になって、一様分布(余計な情報・データ・先入観をあえて持たない)を元にして始める方がかえって真実に近くなるのではないか」 と、謙虚な立場から推論をすると考えることもできる。そのほうがよい結果を得られる場合もあるらしい。例えば、サイコロを 5 回振って 1 が 4 回出たとする。この結果をそのまま使うなら、「このサイコロは 1 の目が高頻度に出る偏りがある」ということに基づいて推論することになる。 しかしそれは単なる偶然であり本当は偏りはないのなら、その結果を使うことで間違った推論をしてしまう。この場合データをあえて信用せずに、一様分布を事前分布としてベイズ推論をした方が正しい推論ができる。

二つの考え方には、どちらにも弱点とよい点がある。

頻度主義: 弱点: 偶然誤差は頻度を増やすことで打ち消すことができる。しかし系統誤差は残ってしまうのではないか。 よい点: 主観的な部分がないので、データが十分に信頼でき誤差もないのであれば、あいまいな部分を残さない推論ができる。

ベイズ統計: 弱点: 事前分布、事前確率という主観的なものを取り入れている。それを変えると結果も変わってしまう。 よい点: データが少なく、誤差、ノイズが大きい場合に、事前分布をうまく取り入れることで、そうしない場合よりも正しい推論に近づくことができる可能性がある。事前分布はすでに得られている知識を元にしたものがよいのかもしれないし、謙虚な立場から一様分布(さいころ)、または0を中心とした幅が広い正規分布(二グループ間の平均値の差)の方がよいのかもしれない。

KL divergence ダイバージェンスとはどういう値か

データ分析などで KL ダイバージェンスという値が出てくることがある。この値は情報エントロピー、条件付き確率と関係がある。使い道として、ノイズ、誤差を含むデータからもっともらしい確率分布を推定することに用いられる。また二つの分布(例:実測値から算出した分布と、そのシステムの数式モデルから算出した分布)の一致度の定量化などに用いられる。

この値について勉強してみる。

参考にした資料:「エントロピーからKLダイバージェンスまでの話」 @ML_deep 氏による解説 https://www.hellocybernetics.tech/entry/2016/04/21/132645

情報エントロピーは、X が 値 x になる確率を p(X = x) として、

 または省略して 

だった。この式には p(X) しか出てこない。一方、KL ダイバージェンスでは log に入っているほうの p(X) を、もう一つの確率分布 q(X) や 条件つき確率 q(X | θ) に置き換える。これによって、二つの確率分布 p(X) と q(X) の相対的な差・違いを計算できるようになる。「相対エントロピーの一種」と、資料では紹介されている。

二つのエントロピーの相対的な差を計算するために引き算をする(q から p を引く)と、

になる。この値が KL ダイバージェンス KL(p(X) | q(X)) になる。

この式から、p(X) = q(X) 二つの確率分布が一致するなら KL ダイバージェンスの値は 0 になる。0 が最小値で、p(X) と q(X) が異なると正の値になる。

@ML_deep 氏の資料では、q(X) を条件付き確率 q(X | θ) として、条件 θ を変化させることで KL ダイバージェンスの値を最小化できることが紹介されている。

KL(p(X) | q(X|θ))  この式は「真の値 p(X) を q(X|θ) で推定、表現した。その推定はどれくらい正しいか」というようにも解釈できる。  KL(p(X) | q(X|θ))を最小化できる条件 θ を見つけることで p(X) を推定できる。こういう方法を最尤推定という。

KL ダイバージェンス KL(p(X) | q(X)) の性質として、KL(p(X) | q(X)) ≠ KL(q(X) | p(X)) p と q を交換すると値が変化するということがある。これは条件付き確率と同じで方向性がある。

 

条件付きエントロピーと距離、疎遠量、相関

条件付きエントロピーは、二つの物事の間の距離、疎遠量、相関を計算するのに役立つことが、45ページから書かれている。相関は生物学のデータを解釈する上で大変有効に使われている。普通ピアソンの相関係数というものを使う。条件付きエントロピーから計算される相関を用いることもできれば、ピアソンの相関係数ではうまく見えない関係が見えることもあるかもしれない。

45 ページ「1.6 距離と相関」のセクションの最初のパラグラフに書いてある文章は私にとってわかりにくい。そこで翻訳してみる。

文章としては「H(X | Y) = 0 ならば・・・」と書いてある。

上に書いたように、H(X | Y) は2値(二項)エントロピーの場合、以下のように計算される。

  この値が 0 になると言うことである。

この値を 0 にするためには、p(y = 0 or 1) の方を 0 にする方法と、H(X | y = 0 or 1) の方を 0 にする方法がある。 書かれているように、p(y = 0 or 1) > 0 (0 でない)場合は、それと組み合わさる H(X | y = 0 or 1) の方が 0 である必要がある。そうでないと 0 にならない。H は負の数にはならないので、マイナスで打ち消すことはあり得ない。

もう一つ「ある x に対して p(x | y) = 1 である」と書かれている。これは「H(X | Y) = 0 ならば、y をある値に指定すると、 p(x | y) = 1 となる x がただ一つだけ存在する」ということを示しているのだと私は推測する。以下のようなことから導かれる。

H(X | Y) = 0 という前提から、2値(二項)エントロピーの場合、

p(y = 0) と p(y = 1) の両方の値が 0 ということはあり得ない。だから、H(X | y = 0) と H(X | y = 1) のどちらかが 0 であるということになる。

具体的な例として、H(X | y = 0) = 0 ということにする。

上に書いたように 2 値(二項)エントロピーの場合  

この値が 0 になるための条件を考える。 まず p(0 | y = 0) + p(1 | y = 0) はどうなるか。y が 0 に固定されていて、x は 0 と 1 しかないので、足し合わせると 1 になる。

p(0 | y = 0) と p(1 | y = 0) が 0 より大きく 1 より小さい場合: H(X | y = 0) = 0 になることはありえない。 だから取れる値は片方は必ず 0、もう一方は必ず 1 と決まる。p(x | y) = 1 となる x は 0 でも 1 でもよいが、そのどちらか片方一つだけでなければならない。

「y をある値に指定すると、 p(x | y) = 1 となる x がただ一つだけ存在する」と書いた方がわかりやすい。 この状態で、H(X | y = 0) = 0 は、つねに成り立つ。

二項でなくもっと多いならどうなるか。0 より大きく 1 より小さい項が一つでも存在すれば、H(X | y = 0) = 0 になることはありえない。全部の項が 0 ということは、「全部足し合わせると 1」ということからあり得ない。 p(x | y) = 1 となる x が二つ以上存在すると、全部足し合わせた値が1を超えてしまうのでそれはあり得ない。 だから、「どれか、ただ一つの p(X | y = ?) = 1」 ということになる。p(x | y) = 1 となる x がただ一つのみ、存在することになる。だから「y をある値に指定すると、 p(x | y) = 1 となる x がただ一つだけ存在する」ことが、二項よりも多くても成り立つ。

その後に「したがって・・・」と書いてある。これもわかりにくいが、「H(X | Y) = 0 ならば、y をある値に指定すると、 p(x | y) = 1 となる x がただ一つだけ存在する。その対応(y から x)を付ける写像を 」ということらしい。この がどういうものかは、それ以上言及はない。

(つづく)

vim: set ts=8 sts=2 sw=2 et ft=a111_modified_flexwiki textwidth=0 lsp=12: