猫になりたい

コンサルのデータ分析屋、計量経済とか機械学習をやっています。pyてょnは3.7を使ってマスコレルウィンストングリーン。

最尤推定、MAP推定、ベイズ推定の違い

最尤推定、MAP推定、ベイズ推定の違いについてまとめました。

参考文献

今回の参考文献は以下の4つです

ベイズ推定とグラフィカルモデル:コンピュータビジョン基礎1

Computer Vision: Models, Learning, and Inference

Computer Vision: Models, Learning, and Inference

上記のUdemyの講座の教科書、公式でpdf版がある

導入

 p(x | \theta)という条件付き確率を考えよう。
例えばこれはコインの表か裏が出る確率を表しているとすると、 x は表を、 \thetaは表が出る確率を表すパラメータと考えられる。 この時、我々の目的は観測値 \{ x_i \}_{i=1}^n (過去にコインを投げた結果)からパラメータ \thetaの推定量  \hat{\theta}を求め、次にコインを投げた時に表・裏が出る確率 p(x | \hat{\theta})を知ることである。

最尤推定(Maximum Likelihood Estimation)

ところで我々はどの様にパラメータ \thetaの推定量 \hat{\theta}を求めればよいのだろうか。 ありうる方法の1つが、手元にある観測値 \{ x_i \}_{i=1}^n が最も生起し易いようにパラメータ \thetaを決める方法である。パラメータがhogeの時に手元にあるデータが一番再現されるので、パラメータはhogeだということだ。これを数式で表してみよう。

パラメータ \thetaの下で観測値 \{ x_i \}_{i=1}^n が生起する確率を p(\{ x_i \}_{i=1}^n) | \theta)とする。 この時 p(\{ x_i \}_{i=1}^n) | \theta) \thetaの関数と見做したもの L( \theta | \{ x_i \}_{i=1}^n) を尤度(Likelihood)や尤度関数と呼ぶ。 そしてこれを最大にする、 $$ \begin{align} \hat{\theta}_{ML} = argmax_{\theta} \ L( \theta | \{ x_i \}_{i=1}^n) \end{align} $$ を最尤推定量と呼ぶ。 LはLikelihoodのLである。(通常、最尤推定量は L( \theta ; \{ x_i \}_{i=1}^n) の様にセミコロンを用いて書くが、ここでは L( \theta | \{ x_i \}_{i=1}^n) と書く。記法の違いについてはこちらを参照。) 観測値 \{ x_i \}_{i=1}^n が与えられた時、もらしい(手元のデータが生起しやすい)パラメータを推定するため、最尤推定法と呼ばれる。

MAP推定(最大事後確率推定、Maximum a posteriori)

先程の最尤推定法では真のパラメータは一つに決まっていた。そうではなくパラメータも確率変数であり分布が存在する、 つまり p(\theta)というものがあると考えよう。この時最尤推定と同じように、手元にある観測値 \{ x_i \}_{i=1}^n が最も生起し易いようにパラメータ \thetaを決めることを考える。つまり argmax_{\theta} \ p( \theta | \{ x_i \}_{i=1}^n) を求めたい。 すると求めるものは(Lからpに文字が変わったものの)最尤推定とぱっと見は変わらない。しかし p(\theta)を導入したことにより、 p( \theta | \{ x_i \}_{i=1}^n) は次のように変形できる。

$$ \begin{align} \hat{\theta}_{MAP} &= argmax_{\theta} \ p( \theta | \{ x_i \}_{i=1}^n) \\ &= argmax_{\theta} \ \frac{p(\{ x_i \}_{i=1}^n) | \theta)p(\theta)}{p(\{ x_i \}_{i=1}^n)} \\ &= argmax_{\theta} \ p(\{ x_i \}_{i=1}^n) | \theta)p(\theta) \end{align} $$

1から2行目の変形はベイズの定理を用いた、2から3行目の式変形は最適化に於いて定数は無視できることを用いて p(\{ x_i \}_{i=1}^n)を削除した。この変形を見るとMAP推定は p(\theta)事後分布 p(\theta | \{ x_i \}_{i=1}^n)最大化する \thetaを求めることに相当する。そのためこの方法により得られる推定量を最大事後確率推定量 (\hat{\theta}_{MAP}) と呼ぶ。


スポンサーリンク

ベイズ推定(Bayesian Estimation)

最後にベイズ推定である。 先程、MAP推定では事後確率を最大にする\thetaを推定量とした。しかし、折角ベイズの定理により事後分布が得られるのだから、パラメータ\thetaを点推定するのではなく、パラメータの事後分布の情報を全て使おうというのがベイズ推定の考え方である。

MAP推定では p( \theta | \{ x_i \}_{i=1}^n )を最大にする \thetaを1つ求めた。一方ベイズ推定では、まず全ての \theta が取りうる値について

$$ \begin{align} p( \theta | \{ x_i \}_{i=1}^n )&= \frac{p(\{ x_i \}_{i=1}^n | \theta)p(\theta)}{p(\{ x_i \}_{i=1}^n)} \\ &= p(\{ x_i \}_{i=1}^n | \theta)p(\theta) \end{align} $$

を計算し、事後分布 p( \theta | \{ x_i \}_{i=1}^n )を得る( \theta を点推定するわけではないので \hat{\theta}_{Bayes} が得られるわけではないことに注意されたし)。 そして予測の段階ではこの分布を用いて、次のように p( x | \{ x_i \}_{i=1}^n )を求める。

$$ \begin{align} \hat{p}_{Bayes} (x | \{ x_i \}_{i=1}^n) = \int p(x|\theta)p(\theta|\{ x_i \}_{i=1}^n)d\theta \end{align} $$

つまりベイズ推定で得られる確率 \hat{p}_{Bayes} (x | \{ x_i \}_{i=1}^n)は、パラメータが取りうる全ての範囲について、パラメータがある値を取る確率 p(\theta)で重みづけた p(x|\theta)の和であると言える。