趣旨
MCMC(マルコフ連鎖モンテカルロ)の理解を目的に、基本的なMetropolis-Hastingsアルゴリズムをまとめる。
なぜMCMC?
名前が可愛いから 情報学徒として当然だよね。
では解説する。
MCMCとは
サンプリングを行うアルゴリズムの群。MCMCという特定のアルゴリズムがあるわけではなく、あくまで大雑把な指針。
背景
期待値を評価したい。
しかし直接計算できないとする。
サンプリング法
サンプリング法とは、標本平均で期待値を近似しようというアプローチ。分布に従う個のサンプルを抽出して、
と近似する。このアプローチで最も重要なのは、どうやって分布から独立にサンプリングするのか、という点。
問題設定
今、区間で一様に分布する擬似乱数を発生させるアルゴリズムが得られている。これを元に、に従う個のサンプルを抽出したい。更に、任意のに対しては得られないが、ある未知の正規化定数が存在してならば容易に計算できるものとする。
- 少し恣意的な問題設定に見えるかもしれないが、要するには分かるけどは分からないのだと考えれば良い。積分、難しいもんな。
棄却サンプリング
MCMCの前に、棄却サンプリングについて簡単に説明する。
1. 手順
- からサンプリングできないので、サンプリングが容易な分布を用意する(提案分布という)
- 定数を任意のについてとなるように定める
- をからサンプリングし、確率で採択する(の定義から、この値は必ず以下になる)
2. なぜ上手くいくのか
所望の分布と区別するため、確率を示したい場合はと表記する。変数を、ステップ3において採択されれば、棄却されればとなるように定義する。この時、採択されたの分布はと書ける。ベイズの定理より、
と書ける。右辺を見ていこう。
これらを代入すればが得られる。
3. 欠点
せっかくサンプリングしたのに高い確率で棄却してしまうのは非効率的なので、はできるだけ小さくあって欲しい。そのためには、はに限りなく近いものであって欲しい。そんなこと最初から出来たら苦労しない。
MCMC
MCMCでは、提案分布を現在の状態に依存させることでサンプリングをより効率的に行うことを目指す。この時、提案分布は現在の状態に基づいた分布として表現される。
MCMCの例: Metropolis-Hastingsアルゴリズム
1. 手順
現在の状態がであるとき、分布からサンプルを抽出し、確率に従って採択する。ただし、
また、状態の更新則は、
で与えられる。提案分布はこのマルコフ連鎖が既約で非周期的であれば良い。十分条件として、任意のに対してであることが挙げられる。
2. なぜ上手くいくのか
あんまりよく分かりません 既約で非周期的なマルコフ連鎖が定常分布を持つなら、必ずその定常分布に収束する(収束定理)。問題はその定常分布が所望の分布かどうかということ。
分布が定常分布であることを保証するための十分条件は、以下のような詳細釣り合い条件が挙げられる。
ここで、は状態がからに遷移する確率を指し、今回の設定では
と表される。も同様。この時、詳細釣り合い条件を少し変形させたもの
が本当に成立するのか確かめるために、左辺について考える。上で定義した式を代入すれば、
と書ける。ここで、最右辺の右側の分数について更に考察する。分母分子について、
なのだが、よく見るとの第二項が逆数になっているだけである。つまり、どちらかがより大きく、どちらかがより小さくなることが保証される。どちらがどうなるにせよ、先ほどの分数について、
となることは簡単な計算で分かるだろう。これを代入すれば、
はい示せた。
結局
MCMCではまず提案分布を置き、何回かのサンプリングでそれをに近似する。十分に近似できたらサンプルとして収集すれば良い。蒸留酒の最初の部分捨てるみたいだね。
まとめ
MCMCのコンセプトを理解するために、まずは基本的なMetropolis-Hastingsアルゴリズムをまとめた。変種としてギブスサンプリングやスライスサンプリングなどがあるが、勘弁してください今後理解する予定です。
おまけ
えむしーえむしー かわいい