ベイズ推定
最尤推定に事前知識を加えることでより妥当な推定にすることを考える. 事前知識の事前分布$p(\theta)$と呼ぶ.
事前分布$p(\theta)$:パラメータ$\theta$がどのような値であるかについて,観測値がない状態での新念の分布
ベイズの定理
確率変数を$x$,パラメータを$\theta$として
- $p(\theta|x)=\frac{p(\theta,x)}{p(x)}$
- $p(x|\theta)=\frac{p(x,\theta)}{p(\theta)}$
の2式が成り立つことより $p(\theta|x)p(x)=p(\theta,x)=p(x,\theta)=p(x|\theta)p(\theta)$ が成り立ち,以下の式が求まる.
$$p(\theta|x)=\frac{p(x|\theta)p(\theta)}{p(x)}$$
これがベイズの定理である. ベイズの定理において
- $p(\theta|x)$を事後分布 パラメータ$\theta$がどのような値であるかについて,観測値xの値を知った状態での新念の分布
- $p(\theta)$を事前分布
- $p(x|\theta)$を尤度
- $p(x)$を規格化定数
$p(x)$は分子の総和が1となるように規格化するための定数であり,周辺化によって求める. $p(x)=\int p(x,\theta’)d\theta’=\int p(x|\theta’)P(\theta’)d\theta’$ とよぶ.
MAP推定
事後確率$p(\theta|x)$を最大にする最尤推定量$\theta$を求める.
$$\hat{\theta}=arg\max_{\theta} p(\theta|x)=arg\max_{\theta}\frac{p(x|\theta)p(\theta)}{p(x)} $$
ベイズ推定
MAP推定では,事後分布$p(\theta|x)$を最も大きくする$\theta$の値が推定量$\hat{\theta}_{MAP}$として点推定される.しかし,これでは予測値の分布がわからない. そこで,ベイズ推定では$\theta$をひとつに求めるのではなく,事後分布$p(\theta|x)$を使って予測を行う.
たとえば,予測したいのが確率変数yの分布である場合,$p(\theta|x)$による期待値を計算する.
$$p(y|x) = \mathbb{E}_{p(\theta|x)}[p(y|\theta)]\int p(y|\theta)p(\theta|x)d\theta=\int p(y,\theta|x)d\theta$$
得られた分布$p(y|x)$に基づいて予測値をひとつに定めたい場合はyについての期待値を求めればいい.
$$\hat{y}=\mathbb{E}_{p(y|x)}[y]=\int yp(y|x)dy = \int y p(y|\theta)p(\theta|x)d\theta dy$$
このようにベイズ推定では,事前確率$p(\theta)$と尤度関数$p(x|\theta)$,ならびに観測値xに基づき事後確率$p(\theta|x)$を求める.
ベイズ更新
データが増えるたび,過去に推定した事後分布とベイズの定理を使って事後分布を更新していくことをベイズ更新と呼ぶ.
$$p(\theta|x^{(1)},x^{(2)},\alpha)= \frac{p(x^{(2)|\theta}p(\theta|x^{(1)},\alpha))}{p(x^{(2)}|\alpha)}$$
時刻tまでの観測値に基づく事後分布$p(\theta|x^{(1)},…,x^{(t)},\alpha)$を事前分布として使い,観測値$x^{t+1}$も考慮した場合の事後分布$p(\theta|x^{(1)},…,x^{t+1},\alpha)$が計算される.
ベイズ更新では,一度使用した観測値をふたたび使う必要がないため,記憶容量が少なくて済む.
参考
- 手塚 太郎,"しくみがわかるベイズ統計と機械学習"