ギブスサンプリング

統計学と統計物理学において、ギブスサンプリング（）は、直接サンプリングが難しい確率分布の代わりにそれを近似するサンプル列を生成するMCMC法（）の1つである。この生成された数列は、同時分布や周辺分布や期待値などの積分計算を近似するために用いられる。通常は観測として与えられている変数に関してはサンプリングをする必要はない。ギブスサンプリングは統計的推定やベイズ推定の手法として頻繁に用いられている。ランダムアルゴリズムであり、（）やEMアルゴリズム（expectation-maximization algorithm）のような統計的推定法のための決定論的な方法の代替法である。
他のMCMC法と同様に、ギブスサンプリングはサンプルのマルコフ連鎖を生成する。得られるサンプル列がマルコフ連鎖であるため、例えば100番目毎にサンプルを選ぶといったサンプルが十分に独立とみなせるように気をつけるべきである。それに加え、サンプル列の始めの方の値は目的の分布を精確には表していないため、初期値を与えたすぐ後はburn-in期間としてサンプルを捨てるべきである。
導出.
ギブスサンプリングはメトロポリス・ヘイスティングス法の1つである。同時分布より周辺化された条件付き確率分布から、与えられた確率分布に従ったサンプルをサンプリングする。同時確率formula_1から確率変数formula_2 をformula_3サンプル得たい。formula_4次元のformula_5番目のサンプルをformula_6とする。
手順は以下の通りである。
サンプルは他の変数に条件付けされた分布からサンプリングされるが、他の変数には新しいサンプルを使用すべきである。つまりは、1ステップ毎に1変数をサンプルし、新しいサンプルに入れ替えていく。このサンプル集合は、全ての変数に関する同時分布を近似する。
それに加え、全てのサンプルに関して平均をとることで期待値を近似することができる。
以下は注意点である。
条件付き分布と同時分布の関係.
他のすべての変数が与えられたときのある変数に関する条件付き確率は同時確率に比例する。
ここで"比例する"とは、分母がformula_17の関数ではなく、formula_17がどんな値であれ分母が定数であることである。周辺化定数は同時確率をformula_17に関して周辺化した値である。
実用上、確率変数formula_17の条件付き分布を求めるためのもっとも簡単な方法はグラフィカルモデルの変数のうちformula_17の関数ではない値を独立とみなして因子化すればいい。
そのほかには、3つの場合が考えられる。
理論.
サンプルformula_24を次元formula_25のパラメータベクトルformula_26に基づいた事前分布formula_27からサンプリングする。
formula_25が大きい場合、数値積分を行ないformula_29の周辺化分布を計算することは困難を伴う。
その周辺化分布の計算をformula_30空間上のマルコフ連鎖を生成することで代替する。以下の2ステップを繰り返す。
この2ステップは分布formula_35にしたがう可逆なマルコフ連鎖を生成する。
これは以下の通り証明される。すべてのformula_36 に関してformula_37であれば、formula_38と表す。formula_38 は同値関係である。formula_40はformula_41からformula_42へ遷移する確率の分布を表す。
よって遷移確率は
したがって、 
このように詳細つりあい条件は満たされる。
実用的にはformula_45はランダムに選ばれず、並びの順番で選ばれる。
また正確に言うと、これは非定常マルコフ連鎖を生成するが、各ステップは可逆であり、全体のプロセスは求めたい定常分布を与える。
手法の拡張.
ギブスサンプリングの拡張について説明する。これらの拡張はサンプル間の自己相関を減少させることで、計算コストを減らすことを目標に考えられている。
Blocked Gibbs sampler.
blocked Gibbs sampler は個々の変数を考えるのではなく、変数を複数のグループに分割して条件づき分布を考える。
例えば、隠れマルコフモデルではforward-backward algorithmを使い、隠れ変数に関するマルコフ連鎖を生成する。
Collapsed Gibbs sampler.
collapsed Gibbs samplerは周辺化分布の変数を積分消去する。たとえば、"A"、"B"、"C"の3つの変数があるとする。ギブスサンプリングでは"p"("A"|"B","C")、"p"("B"|"A","C")、"p"("C"|"A","B")からサンプリングすることになる。collapsed Gibbs samplerでは"A"をサンプリングする時には例えば"B"を積分消去した周辺化分布"p"("A"|"C")からサンプリングを行う。"A"に関して"B"が共役事前分布であったり、指数分布族であれば計算が容易にできる。詳しくはcompound distribution、Liu (1994)を参考。