マルコフ連鎖モンテカルロ法
Markov Chain Monte Carlo ・ まるこふれんさもんてかるろほう
マルコフ連鎖で事後分布からサンプルを生成する計算手法。ベイズ実用化の要
概要
マルコフ連鎖モンテカルロ法(MCMC)は、数式のままでは扱えない複雑な確率分布から、サンプル(乱数)を生成するための計算手法です。名前のとおり2つの部品の合体で、「狙った分布が定常分布になるように設計したマルコフ連鎖」を走らせ、そこから得たサンプルの集まりで分布を近似するモンテカルロ法を実行します。連鎖を長く走らせるほど、訪れた点の集まりが狙った分布の形を写し取っていきます。
MCMCが最も活躍する舞台はベイズ推論です。ベイズ推論の答えである事後分布は、理屈のうえでは事前分布と尤度の掛け算で決まりますが、確率として正規化するための分母(あらゆるパラメータ値にわたる積分)が、現実的なモデルではまず計算できません。MCMCの妙は、この計算できない分母を知らないまま、事後分布からサンプルを引き出せることです。
サンプルさえ手に入れば、あとは集計するだけです。平均を取れば事後平均、分位数を取れば信用区間、ヒストグラムを描けば分布の形。「積分を解く」という数学の問題が、「サンプルを集計する」というプログラミングの問題に置き換わる — これがMCMCの提供する変換です。
なぜ生まれたか
MCMCの原型は統計学ではなく物理学から生まれました。1953年、ロスアラモス研究所のメトロポリスらは、多数の粒子からなる系の平衡状態を計算する問題に直面していました。取りうる配置の数が天文学的で、まともに全配置を足し合わせることは不可能です。彼らは「配置を少しランダムに動かし、エネルギー的に有利なら受理、不利でも一定の確率で受理する」という単純な反復で、物理的に正しい分布どおりに配置をサンプリングできることを示しました。これがメトロポリス法で、世界初期の電子計算機MANIACの上で動きました。
一方、ベイズ統計は長らく「理論は美しいが計算できない」学問でした。事後分布の正規化定数が積分できるのは、共役事前分布が使えるような教科書的に単純なモデルに限られ、現実的な複雑さのモデルは手が出せなかったのです。1970年にヘイスティングスがメトロポリス法を統計の文脈に一般化し、1990年のゲルファンドとスミスの論文がギブスサンプリングによるベイズ計算の道を示したことで状況は一変します。「どんなモデルでも、事後分布に比例する量さえ計算できればサンプリングできる」— この汎用性が、頻度論とベイズの長い論争の実務的な足かせだった計算問題を取り除き、1990年代以降のベイズ統計の復権を直接引き起こしました。
詳細
メトロポリス・ヘイスティングス法 — 受理と棄却の繰り返し
MCMCの最も基本的なアルゴリズムがメトロポリス・ヘイスティングス法です。現在の点の近くに候補の点をランダムに提案し、事後分布の密度(正確にはそれに比例する値)を現在の点と比べます。候補のほうが密度が高ければ移動し、低ければ「密度の比」を確率として移動するかどうかを乱数で決めます。この一歩を何万回も繰り返すだけです。
鍵は、判定に使うのが密度の比であることです。比を取ると、計算不能だった正規化定数(分母)が分子・分母で打ち消し合って消えます。だから「事後分布に比例する量 = 事前分布 × 尤度」さえ計算できれば連鎖を回せる。密度の高い領域には長く滞在し、低い領域はたまにしか訪れないため、記録された点の集まりが事後分布の形を再現します。マルコフ連鎖の言葉で言えば、この受理・棄却の規則は「事後分布が定常分布になる」ように遷移確率を設計したことに相当します。
この受理・棄却の一歩を、実際に1ステップずつ進めて確かめられます。歩幅を変えると受理率とのトレードオフも見えてきます。
白い曲線が「サンプルしたい事後分布」です(正規化定数は不明のまま)。「1ステップ」を押すと、現在の点の近くに候補を提案し、密度の比 r で受理・棄却する一歩が見られます。
主要なバリエーション
ギブスサンプリングは、パラメータが複数あるとき「他をすべて固定した1つのパラメータの条件付き分布」から順番にサンプリングする方式です。各条件付き分布が既知の形になるモデル(階層モデルの多くがそうです)では提案の棄却がなく効率的で、初期のベイズソフトBUGSの中核でした。
**ハミルトニアン・モンテカルロ法(HMC)**は、事後密度の勾配(傾き)情報を使い、物理の運動方程式を模してパラメータ空間を滑らかに長距離移動する方式です。ランダムに一歩ずつよろよろ歩くメトロポリス法に比べ、パラメータ数が多い高次元の事後分布でも効率よく探索できます。その自動調整版であるNUTSが、Stan や PyMC といった確率的プログラミング言語の標準エンジンです。現代の実務では、モデルを記述すればサンプラーの選択と調整はツールに任せる、という分業が一般的になっています。
収束の診断 — 信じてよいサンプルか
MCMCには理論保証と実務のギャップがあります。定常分布への収束は「無限に走らせれば」の保証であり、有限のサンプルが事後分布を十分代表しているかは別途確かめる必要があります。実務では次の点検が定石です。
まず、連鎖の序盤は出発点の影響が残っているため、バーンイン(ウォームアップ)として捨てます。次に、出発点を変えた複数の連鎖を走らせ、それらが同じ分布に混ざり合ったかをR-hat統計量で確認します(1.01以下が目安)。また、マルコフ連鎖のサンプルは隣どうしが相関しているため、独立なサンプル何個分の情報量に相当するかを有効サンプルサイズで見積もります。トレースプロット(サンプル値の時系列グラフ)が特定の領域に長く停滞していないかを目で確かめることも基本です。診断を省いて収束していない連鎖を集計すると、もっともらしい数字の形をした誤答が得られます。MCMCの最大の落とし穴は、失敗しても一見それらしい結果が出てしまうことです。
使いどころとトレードオフ
MCMCの強みは汎用性です。解析解のない複雑なモデル — 階層モデル、混合分布、非線形モデル — でも、事後密度に比例する量が書ければ推論できます。代価は計算時間で、1回の推論に数分から数時間かかることも珍しくありません。速度が最優先の場面では、事後分布を単純な分布で近似する変分推論という代替もありますが、近似の粗さと引き換えです。「正確だが遅いMCMC、速いが近似の変分推論」という使い分けが現在の標準的な構図で、モデル開発時はMCMCで確かめ、大規模運用では近似手法に切り替える、といった組み合わせも実務ではよく行われます。
