MAP(最大事後確率)推定を理解するために、簡単で具体的な例を紹介します。以下の例では、コインの偏りを推定する問題を考えます。
問題設定
あなたはコインを10回投げて、**7回表(H)、3回裏(T)**が出たとします。このコインが表が出る確率 $\theta$ を、MAP推定を使って求めたいと思います。コインが「公平である($\theta = 0.5$)」という事前知識を少し持っていると仮定します。
MAP推定の概要
MAP推定は、事後確率 $P(\theta | データ)$ を最大化する $\theta$ を求める方法です。ベイズの定理より:
$$P(\theta | データ) \propto P(データ | \theta) \cdot P(\theta)$$
ここで:
- $P(データ | \theta)$ は尤度(観測データの確率)
- $P(\theta)$ は事前分布(データを見る前の $\theta$ の確率分布)
- $P(\theta | データ)$ は事後分布
MAP推定では、事後分布を最大化する $\theta$ を選びます。
補足
ベイズの定理:
$$P(\theta | データ) = \frac{P(データ | \theta) \cdot P(\theta)}{P(データ)}$$
MAP推定では$P(データ)$が$\theta$に関して定数なので、$\theta$の最大値を求める問題では無視できるので、
$$P(\theta | データ) \propto P(データ | \theta) \cdot P(\theta)$$
といえる。
ステップ1: 尤度を定義
コインを10回投げて7回表が出る確率は、二項分布に従います:
$$P(データ | \theta) = \binom{10}{7} \theta^7 (1-\theta)^3$$
ここで、$\binom{10}{7}$ は二項係数で定数なので、最大化の際は無視できます。よって、尤度は:
$$P(データ | \theta) \propto \theta^7 (1-\theta)^3$$
ステップ2: 事前分布を定義
コインが「だいたい公平($\theta \approx 0.5$)」という事前知識を反映するため、ベータ分布を事前分布として使います。ベータ分布は $[0,1]$ の範囲の確率をモデル化するのに適しています。仮に:
$$P(\theta) = Beta(\theta | \alpha=2, \beta=2)$$
を選びます。この分布は $\theta = 0.5$ の周辺でピークを持ち、公平なコインをやや強く信じることを表します。ベータ分布の確率密度関数は:
$$P(\theta) \propto \theta^{\alpha-1} (1-\theta)^{\beta-1} = \theta^{2-1} (1-\theta)^{2-1} = \theta (1-\theta)$$
ステップ3: 事後分布を計算
事後分布は尤度と事前分布の積に比例します:
$$P(\theta | データ) \propto P(データ | \theta) \cdot P(\theta) = \theta^7 (1-\theta)^3 \cdot \theta (1-\theta)$$
$$= \theta^{7+1} (1-\theta)^{3+1} = \theta^8 (1-\theta)^4$$
これは $Beta(\theta | \alpha=9, \beta=5)$ の形に一致します(正規化定数は最大化には不要)。
ステップ4: MAP推定値を求める
事後分布 $P(\theta | データ) \propto \theta^8 (1-\theta)^4$ を最大化する $\theta$ を求めます。対数を取って微分するのが簡単です:
$$\log P(\theta | データ) = 8 \log \theta + 4 \log (1-\theta)$$
これを $\theta$ で微分し、0 に等しいとおきます:
$$\frac{d}{d\theta} \left[ 8 \log \theta + 4 \log (1-\theta) \right] = \frac{8}{\theta} - \frac{4}{1-\theta} = 0$$
$$\frac{8}{\theta} = \frac{4}{1-\theta}$$
$$8(1-\theta) = 4\theta$$
$$8 - 8\theta = 4\theta$$
$$12\theta = 8 \implies \theta = \frac{8}{12} = \frac{2}{3} \approx 0.667$$
よって、MAP推定値は:
$$\theta_{MAP} = \frac{2}{3} \approx 0.667$$
ステップ5: 結果の解釈
- MAP推定値:$\theta_{MAP} = 0.667$。これは、コインが表が出る確率が約66.7%であると推定されることを意味します。
- 比較:もし事前分布を使わず、単に最尤推定(MLE)を使った場合、$\theta_{MLE} = \frac{7}{10} = 0.7$ となります。MAP推定では、事前分布($\theta \approx 0.5$)の影響で、推定値が0.7から0.667に少し引き寄せられています。
なぜMAP推定が有用か?
この例では、データが少ない(10回しか投げていない)場合に、事前知識(コインはだいたい公平)を活用することで、単純な最尤推定よりも合理的な推定が得られることを示しました。MAP推定は、データと事前知識をバランスよく組み合わせる方法です。
補足:MAP推定の式
観測データ x とパラメータ θ の確率モデルを考えた場合、MAP推定の式は下記の通りに表される。
\hat{\theta}_{\mathrm{MAP}}
= \arg\max_{\theta}\; \left( \sum_{i=1}^{n} \log p(x_i\mid \theta) + \log p(\theta) \right)