読書メモ: ゼロからできるMCMC
ゼロからできるMCMCの読書メモ。
MCMCの基本条件
MCMCの目的は解析的に計算できない複雑な確率分布の期待値(積分計算)を計算することである。基本的には分布の確率変数を沢山生成してそのときの分布の値を計算し、平均することで期待値を求める。確率変数
- 探索するときの確率変数
の過程がマルコフ連鎖であることx - 規約性:あらゆる
は有限回のステップで移動できることx, x' - 非周期性:1ステップで任意の
に移動できることx - 詳細平衡条件:マルコフ連鎖の遷移確率
がT を満たしていること。遷移に偏りがないことP(x)T(x{\rightarrow}x') = P(x') T(x'{\rightarrow}x) - 厳密には平衡条件:
のみでもよいE[P(x)T(x{\rightarrow}x')] = E[P(x')T(x'{\rightarrow}x)]
- 厳密には平衡条件:
- 非周期性:1ステップで任意の
に移動できることx
自己相関
- マルコフ過程にしたがう確率変数xをサンプリングする際に前ステップの値との相関(自己相関)がおきうる
- 自己相関がおきると計算される期待値に偏りがでてしまう
- 自己相関を評価する方法:ジャックナイフ法
- xの系列を等分割したときの個々グループの平均値の標準誤差
- この標準誤差が変化する=自己相関がある、と言える
メトロポリス法
-
の期待値を計算するP(x) = exp(-S(x))/Z -
は分配関数Z -
は実変数S の連続関数。作用または対数尤度と呼ばれるx
-
-
をランダムに選んで{\Delta}x とするx'=x+{\Delta}x - 詳細平衡条件を満たすために
と{\Delta}x が同じ確率で生成される必要がある-{\Delta}x - 一様乱数
を使ってr{\sim}U(0,1) であればr<\exp(S(x)-S(x')) を採用、そうでなければ棄却でそのままx'
「確率 で採用する」と同義\min(1, \exp(S(x)-S(x'))) - xが多変数の場合は要素を1つずつ更新するか、まとめて更新するか
- まとめて更新は
が大きいと棄却される確率が高くなる{\Delta}x - 変数ごとに
の大きさを変えることも出来る{\Delta}x
- まとめて更新は
Hyblid Monte Carlo(HMC)法
メトロポリス法の派生版。Hamiltonian Monte Carloともいう。
-
の共役運動量x をガウス分布に従ってサンプルp - 初期時刻
でのハミルトニアン\tau=0 を求めるH_{init}=S(x)+\frac{1}{2}\sum_i{p_i^2} - リープフロッグ法を使って時刻
に沿って\tau を計算するx, p - 最終時刻のハミルトニアン
を計算H_{fin} - メトロポリステスト:確率
で\min(1, \exp(H_{init}-H_{fin})) を採用して更新x
ハミルトニアン
シミュレーションは離散化したハミルトン方程式(運動方程式)に従って
x(\frac{{\Delta}\tau}{2}) = x(0) + p(0)\frac{{\Delta}\tau}{2} -
について以下を繰り返すn = 1, 2, \cdots, N_{\tau}-1
p(n{\Delta}\tau) = p((n-1){\Delta}\tau) - \frac{{\partial}S}{\partial x}((n-\frac{1}{2}){\Delta}\tau){\Delta}\tau
x((n+\frac{1}{2}){\Delta}\tau) = x((n-\frac{1}{2}{\Delta}\tau) + p(n{\Delta}\tau){\Delta}\tau - 最終時刻は
p(N_{\tau}\Delta\tau) = p((N_{\tau}-1)\Delta\tau)-\frac{\partial S}{\partial x}((N_{\tau}-\frac{1}{2})\Delta\tau)\Delta\tau
x((N_{\tau} + \frac{1}{2})\Delta\tau) = x((N_{\tau}-\frac{1}{2}\Delta\tau) + p(N_{\tau}\Delta\tau)\frac{1}{2}\Delta\tau
Gibbs Sampling
多変数の
Metropolis Hastings(MH)法
メトロポリス法では詳細平衡条件を満たすために
の確率で行う。
ベイズ更新への応用
パラメータ
イジング模型における臨界減速とWolfアルゴリズム
をMCMCでシミュレーションすることを考える。
臨界減速を防げるMCMCの手法としてWolfアルゴリズムがある。このアルゴリズムはランダムに1つの格子を選び、隣接する同じ状態の格子をクラスターに追加、追加した格子に隣接する同じ状態の格子を追加・・・というようにクラスターを広げられなくなるまで大きくする。そしてそのクラスターのすべての格子の状態をまとめて反転する。このように複数の変数をクラスタリングしてまとめて更新する方法をクラスター法という。
Simmulated annealing(焼きなまし)法
メトロポリス法においては作用
レプリカ交換法
焼きなまし法では温度パラメータ
- 対象としたい変数
と同じ変数の組x 、これらとペアになる温度パラメータx_1, x_2, \cdots, x_M をT_i となるように用意し、作用T_{m-1}>T_m を定義する。S(x_1, x_2, \cdots, x_m)=\sum_{m=1}^M\frac{f(x_m)}{T_m} - 上記の変数
と作用x_1, x_2, \cdots, x_m を使ってMCMCによる更新を行うS - 確率
で\min(1,\exp(-\Delta{S})) とx_m を入れ替える。ただしx_{m+1}
\Delta{S}=(\frac{1}{T_{m+1}}-\frac{1}{T_m})(f(x_m)-f(x_{m+1}))
まとめ
MCMCは解析的に計算できない複雑な確率分布の積分を変数をマルコフ連鎖で生成することで計算する方法。変数をランダムに生成してしまうと分布の形次第で高い棄却率や自己相関で効率が悪い。そのため変数の系列(この本では配位と呼ぶ)をMCMCの基本条件を壊さずいかに生成するかで手法が分かれる。
Discussion