keisukeのブログ

***乱雑です!自分用のメモです!*** 統計や機械学習の勉強と、読み物を書く練習と、備忘録用のブログ

マルコフ連鎖モンテカルロ法

マルコフ連鎖モンテカルロ(MCMC)法:
ある時刻\begin{align*}i\end{align*}の標本\begin{align*}\boldsymbol{\theta}_i\end{align*}が一つ前の時刻の標本\begin{align*}\boldsymbol{\theta}_{i-1}\end{align*}に依存して生成されるとき,標本列\begin{align*}\boldsymbol{\theta}_{1},\dots,\boldsymbol{\theta}_{n}\end{align*}マルコフ連鎖と呼ぶ.
MCMCでは,まず提案点と呼ばれる標本を生成する.提案点は代理分布\begin{align*}p^\prime\end{align*}にしたがって発生させる.代理分布は,ガウス分布や一様分布など簡単に生成可能なものが使いやすい.そして標本点を順番に採択・棄却していくことで任意の分布\begin{align*}p\end{align*}に従う標本を得る.

メトロポリスヘイスティングス法という原始的なMCMCでは,次の提案点\begin{align*}\boldsymbol{\theta}^\prime\end{align*}を生成させる代理分布\begin{align*}p^\prime\end{align*}のパラメータがひとつ前の標本\begin{align*}\boldsymbol{\theta}_{i-1}\end{align*}に依存する:
\begin{align*}\boldsymbol{\theta}^\prime \sim p^\prime(\boldsymbol{\theta} \mid \boldsymbol{\theta}_{i-1})\end{align*}
この提案点\begin{align*}\boldsymbol{\theta}^\prime\end{align*}に対して,\begin{align*}v \sim \text{uniform}[0,1]\end{align*}を用いて
\begin{align*}v \leq \frac{p(\boldsymbol{\theta}^\prime)p^\prime(\boldsymbol{\theta}_{i-1}\mid \boldsymbol{\theta}^\prime)}{p(\boldsymbol{\theta}_{i-1})p^\prime(\boldsymbol{\theta}^\prime\mid \boldsymbol{\theta}_{i-1})}\end{align*}
が成立するなら提案点\begin{align*}\boldsymbol{\theta}^\prime\end{align*}を採択し,成立しないなら棄却する.

現在の時刻\begin{align*}i\end{align*}の標本\begin{align*}\boldsymbol{\theta}_i\end{align*}は,提案点を採択した時はその提案点となり,棄却したときは前の時刻の標本\begin{align*}\boldsymbol{\theta}_{i-1}\end{align*}となる.

初期値\begin{align*}\boldsymbol{\theta}_0\end{align*}は適当に決定する必要がある.
収集した標本列\begin{align*}\{\boldsymbol{\theta}_i\}_{i=1}^n\end{align*}の最初の方は初期値に依存してしまうため,最初のほうを捨てることがある.これを焼き入れと呼ぶ.

代理分布\begin{align*}p^\prime(\boldsymbol{\theta}\mid\boldsymbol{\theta}_{i-1})\end{align*}には,例えば期待値が\begin{align*}\boldsymbol{\theta}_{i-1}\end{align*}ガウス分布を用いる.このガウス分布は,最も最近採択された標本の近くから提案点を生成することになる.