事前分布はデータの前に決めるより、見た後に決めたほうがうまくいく
原文は Dynomight により に公開されました。 このブログを購読する
事前分布はあらかじめ決めておくものだ、とよく言われる。だから「事前(prior)」と呼ばれるのだ。まず、いろいろなことがどれくらいもっともらしいかを表明し、それから世界で目にしたものに基づいて信念を更新するのが筋だ、というわけだ。
たとえば、今あなたは――たぶんだが――この記事を読むのをやめて、人生の残り時間をもっと有意義に使うべきかどうか迷っている。もしこのブログを以前読んだことがあるなら、あなたの頭のどこかに、私の記事がどれくらいの頻度で「当たり」なのかについての事前分布が潜んでいるはずだ。議論のために、あなたが私の記事の25%は面白くて洞察に富み、75%は退屈で無価値だと思っていることにしよう。
わかった。だが今あなたはまさにこの文章を読んでいる。この文章が良さそう/悪そうに見えれば、それはこの記事が無価値である/ない確率をそれぞれ上げることになる。ここでも仮定の話だが、あなたがこの文章を「まあまあ期待できそう」と感じたとしよう。つまり、良い記事の方がつまらない記事よりも、こういうクオリティの文章を含む確率が1.5倍高い、ということだ。
この二つの仮定を組み合わせると、この記事が「当たり」である確率は33.3%になる。下の図で赤い長方形の面積が青い長方形の半分だからであり、したがってこの記事が良い確率は悪い確率の半分(33.3%対66.6%)になるはずだ、というのが理由だ。
(なぜ面積が半分なのか? 赤い長方形は青い長方形の幅が⅓で高さが³⁄₂倍なので、⅓׳⁄₂=½だからだ。式でないと信用できないという人は、ここをクリックして式を見てほしい。)
最も簡単に計算できるのは、この記事が良い場合と悪い場合のオッズ比だ。すなわち
P[good | words] / P[bad | words]
= P[good, words] / P[bad, words]
= (P[good] × P[words | good])
/ (P[bad] × P[words | bad])
= (0.25 × 1.5) / (0.75 × 1)
= 0.5.したがって
P[good | words] = 0.5 × P[bad | words],そして、したがって
P[good | words] = 1/3.あるいは、どうしてもベイズの式を使いたいなら、
P[good | words]
= P[good] × P[words | good] / P[words]
= P[good] × P[words | good]
/ (P[good] × P[words | good] + P[bad] × P[words | bad])
= 0.25 × 1.5 / (0.25 × 1.5 + 0.75)
= (1/3)理論上、dynomightの記事の25%が良いという事前分布を選んだとき、それはこの記事を読む前に人生で出会ったすべての情報を反映したものであるはずだ。この記事に含まれる情報に基づいてその数値を変えるのは筋が通らない。なぜなら、その情報は二番目のステップ、尤度 p[good | words] を選ぶところで反映されるべきものだからだ。この記事に基づいて事前分布を変えることは、「二重にカウントする」ことになってしまう。
理論上は、それは正しい。上記の例や、教科書で見かけるような可愛らしい例題においては、実践上も正しい。
しかし現実の問題に関しては、データを見た後に事前分布を変えることを拒むと、しばしば悲劇を招くと私は考えるようになった。なぜなら現実の問題では、物事はめったに単純に「良い」か「悪い」、「真」か「偽」かに分かれるわけではないからだ。むしろ、真実には無限のバリエーションがある。そして、どのバリエーションが重要になるかは、データを見た後になるまで予測できないことが多いのだ。
エイリアン
どういうことか説明しよう。地球にエイリアンがいるかどうかを考えているとする。私たちが知る限り、別の惑星で分子がランダムに渦巻く中からエイリアンが生まれ、技術文明を発達させ、宇宙船を作ってここにやって来ない理由はない。だから、エイリアンがいることもいないことも同じくらいもっともらしい、という事前分布を選ぶのは理にかなっているように思える。すなわち
P[aliens] ≈ P[no aliens] ≈ 50%.一方、私たちの現実の世界には、Gimbal映像やGo Fast映像、FLIR1映像、Wow!シグナル、未確認空中現象に関する政府報告書、そして物理的にありえない動きで飛び回る「ティックタック」を目撃したという多数のパイロットの証言など、エイリアンを思わせる奇妙な証拠がたくさんある。これらすべてをまとめて data と呼ぶことにしよう。もしエイリアンがここにいないのだとしたら、これらすべてを説明するのは難しそうだ。だから P[data | no aliens] はかなり低い数値になるはずに思える。
他方、もしエイリアンがいるのだとしたら、なぜ鮮明な画像が一枚も得られないのか? なぜ混乱を招く報告や噂や粒子の粗い映像は延々とあるのに、鮮明な近接高解像度映像が一本たりともなく、地面で偶然見つかったエイリアンの残骸も一つもないのか? それも、もしエイリアンがいるのだとしたら説明が難しい。だから私は P[data | aliens] もまた低い数値になるはずだと思う。単純化のために、ここでは引き分けとみなして、こう仮定しよう。
P[data | no aliens] ≈ P[data | aliens].事前分布もデータも、エイリアンがいるかいないかに差をつけないのだから、事後確率は
P[no aliens | data] ≈ P[aliens | data] ≈ 50%.問題がわかるだろうか?
(計算はここをクリック)
なぜなら
P[aliens | data] / P[no aliens | data]
= P[aliens, data] / P[no aliens, data]
= (P[aliens] × P[data | aliens])
/ (P[no aliens] × P[data | no aliens])
≈ 1,最後の行は P[aliens] ≈ P[no aliens] かつ P[data | aliens] ≈ P[data | no aliens] であることから従う。したがって
P[aliens | data] ≈ P[no aliens | data] ≈ 50%.僕らは友達だ。お互いを尊重している。だから、出発点の仮定が良いかどうかで争うのはやめよう。これは僕の仮定で、僕はこれが気に入っている。それなのに、最終的な結論は私には狂っているように思える。何が間違っていたのだろう?
計算を間違えていないとすれば(間違えていない)、最も明白な説明は、私が互いに矛盾する信念のセットを採用するという下手な決断をした結果、認知的不協和を経験しているということだ。たとえば、アリスはボブより背が高く、ボブはカルロスより背が高いと主張しながら、アリスはカルロスより背が高いということを否定するとしよう。だとすれば、それはあなたが混乱しているということであって、何か面白いパラドックスを発見したわけではない。
もしかすると、私が P[aliens] ≈ P[no aliens] かつ P[data | aliens] ≈ P[data | no aliens] だと信じているなら、P[aliens | data] ≈ P[no aliens | data] を受け入れなければならないのかもしれない。その結論を拒否するということは、単に私自身に何か向き合うべき問題があるということなのかもしれない。
私はその説明を否定する。断固として否定する! 少なくとも、この状況を考える上でそれが最も役に立つ考え方だということは否定する。なぜかを見るために、二つ目のモデルを作ってみよう。
もっと詳しいエイリアンのモデル
重要になる自明な観察がある。「エイリアンがいる」というのは単一の事柄ではないということだ。毛むくじゃらのエイリアンかもしれないし、ぬるぬるしたエイリアンかもしれないし、シンセウェーブが好きなエイリアンかもしれない、といった具合だ。私が先に事前分布を述べたとき、それぞれのケースに異なる確率を与えることもできた。だが、そうしたところで何も変わらなかっただろう。なぜなら、毛むくじゃらかぬるぬるかによって、類人猿の住む惑星までわざわざ来て物理的にありえないティックタックを飛ばす熱意に差があると考える理由はないからだ。
しかし、世界の状態を次の四つの可能性に分けたとしよう。
| 可能性 | 説明 |
|---|---|
No aliens + normal people | エイリアンはいない。一方、人々は普通で、存在しないものの証拠を幻覚として見るようなことはない。 |
No aliens + weird people | エイリアンはいない。一方、人々は奇妙で、存在しないものの証拠を幻覚として見てしまう傾向がある。 |
Normal aliens | エイリアンはいる。かっこいい宇宙船を持っているとか、人間にレーザーを撃つのが好きとかは別として、いずれにせよ、自分たちがそこにいるという明白で論争の余地のない証拠を残す。 |
Weird aliens | エイリアンはいる。しかし、人類が宇宙旅行に興味を持つまでは隠れている。そしてその後は、人間に粒子の粗い紛らわしい映像を撮らせるが、鮮明な映像は決して、一本たりとも、絶対に撮らせない。 |
もしこのように分解していたら、私はこんな事前分布を選んだかもしれない。
P[no aliens + normal people] ≈ 41%
P[no aliens + weird people] ≈ 9%
P[normal aliens] ≈ 49%
P[weird aliens] ≈ 1%さて、経験的な証拠について改めて考えてみよう。それは no aliens + normal people とは相容れない。なぜなら、エイリアンがいないなら、普通の人々が空飛ぶティックタックを幻覚として見るはずがないからだ。その証拠は normal aliens とも相容れない。なぜなら、そういう種類のエイリアンがいるなら、彼らは自分たちの存在を明白にするはずだからだ。しかし、その証拠は weird aliens とも no aliens + weird people とも、かなりよく整合する。
だから、妥当なモデルはこうなるだろう。
P[data | normal aliens] ≈ 0
P[data | no aliens + normal people] ≈ 0
P[data | weird aliens] ≈ P[data | no aliens + weird people].これらの仮定を組み合わせると、今度はエイリアンが存在する事後確率はわずか10%になる。
P[no aliens + normal people | data] ≈ 0
P[no aliens + weird people | data] ≈ 90%
P[normal aliens | data] ≈ 0
P[weird aliens | data] ≈ 10%今度は結果は狂っていないように見える。
(数式)
なぜそうなるかを見るために、まず注目してほしいのは
P[normal aliens | data]
≈ P[data | no aliens + normal people]
≈ 0,なぜなら normal aliens も no aliens + normal people も、観測されたデータを生み出す確率がほぼゼロだからだ。
一方、
P[no aliens + weird people | data] / P[weird aliens | data]
= P[no aliens + weird people, data] / P[weird aliens, data]
≈ P[no aliens + weird people] / P[weird aliens]
≈ .09 / .01
= 9,二つ目の等号は、データが no aliens + weird people の下でも weird people の下でも同様に確からしいと仮定されていることから従う。
したがって
P[no aliens + normal people | data]
≈ 9 × P[weird aliens | data],そして、したがって
P[no aliens + weird people | data] ≈ 90%
P[weird aliens | data] ≈ 10%.は?
ここで混乱してくれていることを願う。もし混乱していないなら、何が奇妙なのか整理しよう。上記の二つのモデルの事前分布は、どちらもエイリアンが存在する確率は50%だと言っている。最初の事前分布は間違っていたわけではない。ただ、二つ目よりも詳細でなかっただけだ。
それが奇妙なのだ。なぜなら、二つ目の事前分布はまったく異なる予測を導いたように見えるからだ。事前分布が間違っておらず、計算も間違っていなければ、答えも間違っていないはずではないのか? 一体どうなっているんだ?
簡単な説明は、私があなたに少し嘘をついていたということだ。何かの真偽を判断しようとする状況を考えてみよう。そこには真でありうることの空間がある。
場合によっては、この空間は有限だ。トリチウム原子が一つあって一年待てば、原子は崩壊するかしないかのどちらかだ。しかしほとんどの場合、可能性の空間は広大か無限だ。単に「病気」か「病気でない」かではなく、「熱は高いが気分は良い」とか「一見問題なさそうだが玉ねぎを食べるのが止まらない」といった具合にもなりうる。
(通常、真でありうることの空間を小さな一次元の区間にマッピングするのは容易ではない。視覚化のためにこのように描いているが、実際には高次元空間、あるいは無限次元空間として考えるべきだ。)
エイリアンの場合、真でありうることの空間には、「ぬるぬるしたエイリアンがたくさんいて、毛むくじゃらのエイリアンが少数いて、ぬるぬるしたエイリアンはとてもシャイで、毛むくじゃらのエイリアンはリスを怖がる」といったものが含まれるかもしれない。だから原則として、やるべきことは、真でありうることの空間を極めて詳細な無数の事柄に分割し、それぞれに確率を与えることだ。
しばしば、真でありうることの空間は無限だ。だから理論的には、本当に教科書通りにやろうとするなら、そうした(無限の)可能性のそれぞれがどれくらいもっともらしいかを指定すべきなのだ。
それができたら、データを見ることができる。真でありうることそれぞれについて、データが得られる確率を考える必要がある。真でありうることは無限にあるので、指定すべき確率も無限にある。次のような曲線としてイメージできるだろう。
(これは一般的な曲線で、エイリアン用のものではない。)
私にとって、これこそがベイズ推論を複雑な現実世界の問題に適用する際の最も過小評価されている問題だ。実際には、真でありうることは無限にある。無限の事柄について事前確率を指定するのは大変な作業だ。そして、無限の事柄が与えられたときのデータの尤度を指定するのもまた大変な作業なのだ。
では実際にはどうするか? 単純化するのだ。通常は、真でありうることの空間を少数の離散的なカテゴリにまとめることでそうする。上記の曲線なら、次の四つの同程度にもっともらしい可能性に分解するかもしれない。
そして、それぞれの可能性について、データが得られる確率をこのように推定するかもしれない。
そして、それらを組み合わせて、次のような事後分布を得ることができる。
悪くない。だが、これはあくまで近似にすぎない。あなたの「本当の」事後確率は、これらの面積に対応する。
その近似はかなり良かった。だが、それが良かった理由は、「真でありうること」の空間をうまく離散化することから始めたからだ。つまり、A、B、C、Dそれぞれの内部にある異なる可能性の間で、データの尤度があまり変動しないような離散化だ。もし無限の可能性を一つひとつ考えることができたとしたら、データの尤度がこのように見えると想像してみてほしい。
これは危険だ。問題は、実際にはその無限の可能性すべてを考えることができないということだ。四つの離散的な可能性について考えるとき、尤度をこのように推定してしまうかもしれない。
もしそうしたら、A、B、Cの確率を過小評価し、Dの確率を過大評価することになるだろう。
ここが、私の最初のエイリアンモデルが間違ったところだ。私の事前分布 P[aliens] は間違っていなかった。(少なくとも私にとっては。)間違いは、P[data | aliens] と P[data | no aliens] に同じ値を割り当てたことだった。確かに、エイリアンらしいデータ全体が得られる確率は、エイリアンがいる場合もいない場合も同じくらいだと思う。しかし、それは特定の種類のエイリアンと、特定の種類の「エイリアンなし」についてのみ成り立つ話だ。そして、その種のエイリアンに対する私の事前確率は、その種の「エイリアンなし」に対する事前確率よりもはるかに低いのだ。
技術的には、最初のモデルの修正は簡単だ。P[data | aliens] を低くすればいい。しかし、それが低くなる理由は、元の事前分布に入れ忘れていた追加の事前情報があるからだ。もし単に P[data | aliens] は P[data | no aliens] よりはるかに低いと主張するだけなら、形式的なベイズの手続き全体が実際にはあまり役に立っていないことになる――最初から P[aliens | data] は低いと思うと言ってしまえば同じだ。なぜ P[data | aliens] が低くなるべきかを形式的に正当化したいなら、欠けていた事前情報をある意味で追加し、それからデータの尤度を計算する際にそれを積分して消去するという、ごちゃごちゃした再帰的な手続きが必要になる。
(数式)
数学的には、
P[data | aliens]
= ∫ P[wierd aliens | aliens]
× P[data | wierd aliens] d(weird aliens)
+ ∫ P[normal aliens | aliens]
× P[data | normal aliens] d(normal aliens).しかし、結局は詳細な事前分布を与えなければならない。では、単純なものから始めることに何の意味があったのだろうか?
私はその技術的な修正はあまり良くないと思う。技術的には正しい(ははっ)のだが、非常に直観に反する。より良い解決策は、二つ目のモデルで私がやったことだ。「真でありうること」の空間をより細かく分類し、各項についてデータの確率がほぼ一定になるようにすることだ。
問題は、そのような分類はデータに依存するということだ。私たちの世界で実際にどんなデータが得られるかを見ることなしには、これほど多くのパイロットがティックタックの目撃を報告するなどとは決して予測できなかっただろう。だから、人々がどれくらい証拠を幻覚として見るか、あるいはエイリアンがどれくらい私たちをからかうのが好きか、といったことに基づいたカテゴリを作るべきだとも予測できなかったはずだ。したがって、良い結果を得るための唯一の実践的な方法は、まずデータを見てどのカテゴリが重要かを把握し、それから、まだ何の証拠も見ていなかったとしたら、そのカテゴリがどれくらいありそうだと自分なら言ったはずかを自問することなのだ。
記事をランダムに読む
コメント
ログインしてコメントする