6月になって暑くなってまいりました.6月のブログの更新も兼ねてベイズ的な事後分布についてまとめようかと思います.

尤度

一番簡単な例として,歪んだコイン投げを考えましょう.歪んでいるので表が出る確率は1/2とは限らず,μとします.裏が出る確率は1-μです.
表が出る事象をx=1とすると,表が出る確率は,

のように書けます.

裏が出る事象をx=0とすると,裏が出る確率は,

のように書けます.

xが0or1だとすると,上の二つをまとめると,

のように書くことができます.指数にxが出てきて初見では驚きますが,xは0か1しかとらないので,x=0,1をそれぞれ代入して見ると確かに,p(x=0|μ), p(x=1|μ)に一致することが確認できます.ここで現れたp(x|μ)を尤度 と言います.コイン投げの分布は ベルヌーイ分布 と呼ばれます.x|μ は, x given μと読むと意味を理解しやすいです.(μが与えられた時のx)

事後分布と事前分布

尤度p(x|μ)が意味することは,μ(パラメーター)が与えられた時に,コインが表が出る確率を計算できるという意味だと言えます. (x given μ)
しかし,実際に歪んだコインを渡されたところでパラメーターを求めることはできません.そこで,渡された歪んだコインを投げてその結果を観測します.これはxの値を観測するということができます.
xが与えられた時のパラメーターμの分布p(μ|x)を考えることで,パラメーターを予測すると考えます.(μ given x)
このp(μ|x)を事後分布と言います.

さて,事後分布p(μ|x)をどのように計算するかを考えます.ここで ベイズの定理 を用いて,

と求めることができます.式中にp(x|μ)が現れますがこれはまさしく尤度ですね.さらに,p(μ)が現れますが,これは自分で設定しなければなりません.このp(μ)を 事前分布 と言います.

共役事前分布

事前分布を適当に定めると,事後分布は名前も知らない分布になります.分母に現れる積分を計算しないと求まらないかもしれません.積分が解析的に求められない場合は数値計算で近似しますが,できれば避けたいものです.

もし,事後分布がよく知られた分布になるということがわかれば,積分を求める必要はなく,その分布のパラメーターを求めるだけで済みます.

結論から言うと,尤度に対応して 共役事前分布 を選ぶのが良い選択と言えます.共役事前分布を選ぶと,事後分布は,事前分布と同じ種類の分布(パラメーターだけが違う分布)になります.

コイン投げの例でいうと,ベルヌーイ分布に対応して,ベータ分布 が共役事前分布になります.(この辺りは若干天下り的です.)
ベータ分布は次の式で表されます.

ベータ分布を共役事前分布として選んで,事後分布を計算してみます.

よって,事後分布もベータ分布になります.

ここで得た事後分布を次の計算に用いる事前分布として,xの観測を繰り返します.これによって,パラメーター μ の分布を求めていくことができます.

以上をまとめると,パラメーター μ の分布を求めるには,次のことを繰り返します.

  1. コインを投げてxを観測
  2. 事前分布(ベータ分布)のパラメーターa,bを,x+a, -x+b+1に更新する.

種々の共役事前分布

コイン投げの例では,ベルヌーイ分布を考えましたが,二項分布や正規分布の場合でもそれらに対応して,共役事前分布が知られています.

確率変数 尤度 共役事前分布
離散 ベルヌーイ分布 ベータ分布
  二項分布 ベータ分布
  多項分布 ディリクレ分布
  ポアソン分布 ガンマ分布
1変数実数 正規分布(平均未知) 正規分布
  正規分布(分散未知) 逆ガンマ分布
多変数実数 正規分布(平均未知) 正規分布
  正規分布(分散未知) 逆ウィシャート分布

数式的な導出はまたの機会で.

最近,MCMC(マルコフ連鎖・モンテカルロ法)を目にすることが多く,復習を兼ねて書きました.
(最近全くプログラミングの記事を書けていない…)

参考文献:パターン認識と機械学習 上