本記事は,初学者に向けてベイズ推定の基本概念をお伝えするという内容になっています。一見とっつきにくい数式が出てきますが,利用しているのは単純な定理のみですので,身構えずに見ていきましょう。
初学者向きの説明を心がけます。
ベイズ推定とは?
数式を使うと?
事前分布とは?
事後分布とは?
尤度関数とは?
エビデンスとは?
予測分布とは?
ベイズ推定とは
ベイズ推定とは,ある仮定のもとで限られたデータから発生元の母集団を特定する手法です。実は「ある仮定」というのが事前分布に関係しており,元の母集団というのが事後分布に関係しています。それぞれについて簡単な数式を使ってみていきましょう。
ベイズの定理
ベイズの定理は,下の2つの規則と条件付き確率の定義によって導かれます。
【和の規則】
\begin{eqnarray}
p(x)=\sum_y{p(x,y)}
\end{eqnarray}
【積の規則】
\begin{eqnarray}
p(x,y)&=&p(x|y)p(y)\\
&=&p(y|x)p(x)
\end{eqnarray}
【条件付き確率】
\begin{eqnarray}
p(x|y)=\frac{p(x,y)}{p(y)}
\end{eqnarray}
これらを組み合わせて,以下のベイズの定理が得られます。
【ベイズの定理】
\begin{eqnarray}
p(x|y)=\frac{p(y|x)p(x)}{p(y)}
\end{eqnarray}
ベイズ推定は基本的にこの式に従って理論が構築されていますので,必ずおさえるようにして下さい。
各用語の説明
機械学習の分野では,文字は$x$,$y$ではなくパラメータ$\theta$,データ$D$を利用する場合が多いので,本記事でもそれに従うことにします。 もう一度$\theta$と$D$を使ってベイズの定理を書きなおした後に,ベイズの定理を使って事後分布/事前分布/尤度関数/エビデンスの定義を確認します。その後に,和の法則を使って予測分布について確認します。
\begin{eqnarray}
p(\theta|D)=\frac{p(D|\theta)p(\theta)}{p(D)}
\end{eqnarray}
$p(\theta|D)$はデータ$D$が手に入った状況における$\theta$の出現しやすさを表します。いわゆる条件付き確率というやつです。この条件付き確率こそがデータが手に入った「後」のパラメータ分布なので「事後分布」と呼ばれています。逆に,$p(\theta)$はデータが手に入る「前」のパラメータ分布なので「事前分布」と呼ばれています。
それでは,残りの項についても確認していきましょう。$p(D|\theta)$はパラメータの値が設定された状況におけるデータの分布を表しています。これは,設定されたパラメータに対して「尤もらしい」結果となるような分布を表しているので「尤度関数」と呼ばれています。次に,$p(D)$はデータエビデンスと呼ばれる項で事後分布が正規化されることを保証する項です。普通は,このままでは計算できないので和の法則を利用して
\begin{eqnarray}
p(D)=\sum_\theta{p(D|\theta)p(\theta)}
\end{eqnarray}
のように変形してから事前分布を利用して計算を行います。最後に,予測分布について確認していきましょう。得られたデータから事後分布を学習した後は,実際に予測を行っていきます。具体的には,手元にあるデータから新しいデータ$x$が出現する確率を求めにいきます。求めたい条件付き確率$p(x|D)$は,$D$と$x$が直接的な依存関係にない(i.i.d)と仮定したとき以下のように定義されます。
【予測分布の定義】
\begin{eqnarray}
p(x|D)&=&\sum_\theta{p(x|\theta, D)p(\theta|D)}\\
&=& \sum_\theta{p(x|\theta)p(\theta|D)}
\end{eqnarray}
この定義は,$D$と$x$が直接的な依存関係にない(i.i.d)という仮定に基づき,簡単な式変形によりよく理解できます。すなわち,$D$と$x$はパラメータ$\theta$のみによって決定されると考えるのです。数式で考えると以下のようになります。$\theta$が出現する確率に,$x$と$D$の$\theta$に関する条件付き確率をかけ合わせることで同時分布が得られます。
\begin{eqnarray}
p(x,\theta,D)=p(x|\theta)p(D|\theta)p(\theta)
\end{eqnarray}
これを利用すると,以下のような式変形が可能になります。
\begin{eqnarray}
p(x|D)&=&\sum_\theta{p(x,\theta|D)}\\
&=&\sum_\theta{\frac{p(x,\theta, D)}{p(D)}}\\
&=&\sum_\theta{\frac{p(x|\theta)p(D|\theta)p(\theta)}{p(D)}}\\
&=&\sum_\theta{p(x|\theta)p(\theta|D)}
\end{eqnarray}
これで予測分布の定義が数式によって裏付けられました。
まとめ
ベイズ推定は以下の流れで行います。
1.パラメータの事前分布を仮定
2.観測データの尤度関数を仮定
3.ベイズの定理を利用して事後確率を計算
4.予測分布を利用して未知の確率分布を求める
以上の流れがまだどうしても理解できないという方は,以下の入門書を参考にしてみてください。行間がしっかり詰められており,良書です。
はじめまして。zuka様、
とても分かりやすい記事をたくさん投稿してくださりありがとうございます。
https://tips-memo.com/bayesian-inference
こちらの記事の数式部分が[Math Processing Error]となっているのを発見したので報告をします。
これからも楽しみに拝見させていただきます。
すみません…リロードしたら、[Math Processing Error]は無くなっていました。
管理者権限でコメントを削除していただければ幸いです。
失礼しました。
kiweey様
ご報告誠にありがとうございます。
また,ご迷惑をおかけしました。
コメント励みになります!今後も引き続き精進していきます。
予測分布の定義から下、間違えていると思います
正しい予測分布の定義 : p(x|D) = Σ_θ { p(x|θ,D)p(θ|D) }
ご連絡ありがとうございます。
重ねて,ご指摘ありがとうございます。
$D$と$x$がi.i.dと明記していませんでした。修正致しました。