趣旨
MCMCの一つであるギブスサンプリングを理解する。
MCMCって?
前の記事を参考にしてください。
では解説する。
ギブスサンプリングとは
MCMCの一つで、Metropolis-Hastingsアルゴリズムの特殊な例と言える。
問題設定
今、区間で一様に分布する擬似乱数を発生させるアルゴリズムが得られている。これを元に、に従う個のサンプルを抽出したい。ここで、は次元変数であるとする。
ギブスサンプリング
1. 手順
- に初期値を与える。
- 各について、以下のSTEP 3, 4, 5を行う。
- 各について、以下のSTEP 4, 5を行う。
- をからサンプリングする.。ただしは以外のの要素。
- 得られたとを組み合わせたものをサンプルとして保存する。
この手順によって得られるはなので、とすれば最短のイテレーションで済む。ただし、初期値依存性を排除するために、STEP 5を行わない、いわゆる「burn-in」を設けることが必要。
2. なぜ上手くいくのか
ギブスサンプリングはMetropolis-Hastingsアルゴリズムの特殊な例である、と先に述べた。そうであることを示せば、あとは以前の記事で紹介した通りうまくいくことが示される。
2-1. 復習 Metropolis-Hastingsアルゴリズムの手順
現在の状態がであるとき、分布からサンプルを抽出し、確率に従って採択する。ただし、
また、状態の更新則は、
で与えられる。提案分布はこのマルコフ連鎖が既約で非周期的であれば良い。十分条件として、任意のに対してであることが挙げられる。
2-2. ギブスサンプリングとの対応関係
ギブスサンプリングでは、目的の(正規化していない)分布や提案分布は、どちらも目的分布になっている。また、ギブスサンプリングにおけるサンプルの生成では、一つの要素のみが新たに生成され、残る要素は直前の状態、つまりを流用する。まとめると、
この条件下でサンプリングを行った時、サンプルの採択確率は
となる。よって、ギブスサンプリングは、Metropolis-Hastingsアルゴリズムの、サンプルが必ず採択されるような特殊な例であると言える。
まとめ
ギブスサンプリングについて勉強した。言うほど難しくはないっすね。PRMLではギブスサンプリングの欠点や変種などを紹介していたが、ここでは触れない。
おまけ
割と最近までギブソンサンプリングだと思っていたことを告白します。