アカデミック

【初学者向き】ベイズ推論とは?事前分布や事後分布をド素人向けに分かりやすく解説してみます!

本記事は,初学者に向けてベイズ推定の基本概念をお伝えするという内容になっています。一見とっつきにくい数式が出てきますが,利用しているのは単純な定理のみですので,身構えずに見ていきましょう。

★この記事の流れ★

初学者向きの説明を心がけます。
ベイズ推定とは?
数式を使うと?
事前分布とは?
事後分布とは?
尤度関数とは?
エビデンスとは?
予測分布とは?

本記事は初学者の理解を優先しているため正確性に欠ける場合があります。致命的なミスはご指摘いただけますと助かります。

ベイズ推定とは

ベイズ推定とは,ある仮定のもとで限られたデータから発生元の母集団を特定する手法です。実は「ある仮定」というのが事前分布に関係しており,元の母集団というのが事後分布に関係しています。それぞれについて簡単な数式を使ってみていきましょう。

ベイズの定理

ベイズの定理は,下の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}

ベイズ推定は基本的にこの式に従って理論が構築されていますので,必ずおさえるようにして下さい。

本当に上の3つの式は大切です!ベイズ推定を勉強するときはごちゃごちゃした式変形でつまづくことが多いですが上の3つの式に立ち戻れば解決することが多いです!
ベイズの定理は原因と結果を入れかえる効果をもちます。事後確率が「原因→結果」という流れなのに対し,事前確率は「結果→原因」という流れになります。例えば,ガンが原因で死亡する確率は「事後確率」ですが,ベイズの定理を利用すれば死亡した人の中でガンが原因であった確率を求めることができるのです。

各用語の説明

機械学習の分野では,文字は$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)$はデータが手に入る「前」のパラメータ分布なので「事前分布」と呼ばれています。

事後分布と事前分布はどちらもパラメータ$\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$から$\theta$が出てくる確率」に「パラメータ$\theta$を設定した状況における未知の$x$の出現する確率」をかけ合わせることで求めたい予測分布を得ています。小難しい言葉で説明すると,学習された$p(\theta|D)$として表される$\theta$の重み(出現しやすさ)に関して仮定したモデルの平均を取っているといえます。

この定義は,$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.予測分布を利用して未知の確率分布を求める

以上の流れがまだどうしても理解できないという方は,以下の入門書を参考にしてみてください。行間がしっかり詰められており,良書です。

ABOUT ME
zuka
京都大学で機械学習を学んでいます。

POSTED COMMENT

  1. kiweey より:

    はじめまして。zuka様、
    とても分かりやすい記事をたくさん投稿してくださりありがとうございます。
    https://tips-memo.com/bayesian-inference
    こちらの記事の数式部分が[Math Processing Error]となっているのを発見したので報告をします。
    これからも楽しみに拝見させていただきます。

    • kiweey より:

      すみません…リロードしたら、[Math Processing Error]は無くなっていました。
      管理者権限でコメントを削除していただければ幸いです。
      失礼しました。

    • zuka より:

      kiweey様

      ご報告誠にありがとうございます。
      また,ご迷惑をおかけしました。
      コメント励みになります!今後も引き続き精進していきます。

  2. a より:

    予測分布の定義から下、間違えていると思います

    正しい予測分布の定義 : p(x|D) = Σ_θ { p(x|θ,D)p(θ|D) }

    • zuka より:

      ご連絡ありがとうございます。
      重ねて,ご指摘ありがとうございます。

      $D$と$x$がi.i.dと明記していませんでした。修正致しました。

zuka へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

※ Please enter your comments in Japanese to prevent spam.