ベイズ推定の説明
マシンラーニングとか勉強すると出てくるベイズ推定の説明。
ググればいくらでも見つかるけど、自分の記憶の為に書く。タイトル画像と説明に使った例はcolah's blog - Visual Information Theoryから引用させてもらった。2015年のポストだけど最高。日本語だと5分でスッキリ理解するベイズ推定@HiromuMasuda0228が分かり易かった。
ベイズ推定(ベイズすいてい、英: Bayesian inference)とは、ベイズ確率の考え方に基づき、観測事象(観測された事実)から、推定したい事柄(それの起因である原因事象)を、確率的な意味で推論することを指す。wikipedia
クリストファーと雨
カルフォルニアに住むクリストファーさんを例にとる。
彼の住む地域では年を通じて晴れの確率が75%、雨の確率が25%、他の天気は存在しない。これを
p(sunny) = 0.75
p(rain) = 0.25
と書く。pは Probability の頭文字。
クリストファーはTシャツとコートしか着ない。Tシャツだけ着る確率は62%、その上にコートを着る確率は38%
p(t-shirt) = 0.62
p(coat) = 0.38
天気と服装の間に何も相関がなければこれらの確率は独立している(independent)という。この場合、天気が見てもクリストファーの服装についての情報は何も得られない。
実際にはクリストファーは晴れの日よりも雨の日にコートを着る事が多い。
晴れの日にコートを着る確率は25%
p(coat | sunny) = 25%
p(coat | rain) = 75%
と書く。これは条件付き確率(conditional probability)と呼ばれる。「|」の右側が条件。
その日が雨であるという事実は、クリストファーがコートを着る確率が38%ではなく75%だという事を教えてくれる。
その日が「雨、かつクリストファーがコートを着ている」確率は
p(rain, coat)
と書く。これは雨が降る確率と、雨の日にコートを着る確率を掛けておよそ19%だとわかる。
p(rain, coat) = p(rain) ⋅ p(coat | rain)
p(rain, coat) = 0.38 ⋅ 0.75 = 0.1875
一般化すると
p(x, y) = p(x) ⋅ p(y | x)
コートを着たクリストファー
クリストファーがコートを着て外に出かけようとしている写真が見つかった。去年のもので日付は良くわからない。この日が雨だった確率は何%だろう。
p(rain | coat) コートを条件とした雨の確率
コートが確定しているのであり得るのは
p(sunny, coat) 晴れ、かつコート
p(rain, coat) 雨、かつコート
の二種類のみ。それぞれの確率を計算してみよう。
A = p(sunny, coat) = p(sunny) ⋅ p(coat | sunny) = 0.75 ⋅ 0.25
B = p(rain, coat) = p(rain) ⋅ p(coat | rain) = 0.25 ⋅ 0.75
クリストファーがコートを着ている日が雨の確率は
p(rain | coat) = B / (A + B) = 0.5
50% となる。
まとめて書くと
p(rain | coat) =
p(rain) ⋅ p(coat | rain) /
(p(sunny) ⋅ p(coat | sunny) + p(rain) ⋅ p(coat | rain))
3行目は「晴れ、かつコート」+「雨、かつコート」なので、条件抜きでコートを着る確率 p(coat)と置き換える。
p(rain | coat) =
p(rain) ⋅ p(coat | rain) /
p(coat)
一般化して
p(X | Y) = p(X) ⋅ p(Y | X) / p(Y)
このようにある情報(コート)を得ると、事前に知っていた確率(雨の確率25%)を、より精度の高い条件付き確率、または事後確率(コートであれば雨の確率50% )に更新する(ベイズ更新する)事ができる。
上の式では
p(X) が事前確率(prior probability)
p(X | Y)が条件付き確率、または事後確率(posterior probability)
p(Y | X)のことは尤度(ゆうど、likelihood)と呼ぶ。英語の方が1000倍直感的だ。「尤」の字は「尤もらしい - もっともらしい」という意味。参考pdfへのリンクを張って説明はいつかへの宿題にする。
この記事が気に入ったらサポートをしてみませんか?