ギブスサンプリング

提供: testwiki
ナビゲーションに移動 検索に移動

統計学統計物理学において、ギブスサンプリングテンプレート:Lang-en-short)は、直接サンプリングが難しい確率分布の代わりにそれを近似するサンプル列を生成するMCMC法(テンプレート:En)の1つである。この生成された数列は、同時分布周辺分布期待値などの積分計算を近似するために用いられる。通常は観測として与えられている変数に関してはサンプリングをする必要はない。ギブスサンプリングは統計的推定やベイズ推定の手法として頻繁に用いられている。ランダムアルゴリズムであり、テンプレート:仮リンクテンプレート:En)やEMアルゴリズム(expectation-maximization algorithm)のような統計的推定法のための決定論的な方法の代替法である。

他のMCMC法と同様に、ギブスサンプリングはサンプルのマルコフ連鎖を生成する。得られるサンプル列がマルコフ連鎖であるため、例えば100番目毎にサンプルを選ぶといったサンプルが十分に独立とみなせるように気をつけるべきである。それに加え、サンプル列の始めの方の値は目的の分布を精確には表していないため、初期値を与えたすぐ後はburn-in期間としてサンプルを捨てるべきである。

導出

ギブスサンプリングはメトロポリス・ヘイスティングス法の1つである。同時分布より周辺化された条件付き確率分布から、与えられた確率分布に従ったサンプルをサンプリングする。同時確率(x1,,xn)から確率変数𝑿={x1,,xn}kサンプル得たい。n次元のi番目のサンプルを𝑿(i)={x1(i),,xn(i)}とする。

手順は以下の通りである。

  1. 初期値𝑿(0)を設定する。
  2. 条件付き確率p(xj|x1(i),,xj1(i),xj+1(i1),,xn(i1))からi番目のサンプルxj(i)をサンプリングする。
  3. ik以下であればi=i+1して2へ。それ以外だと終了。

サンプルは他の変数に条件付けされた分布からサンプリングされるが、他の変数には新しいサンプルを使用すべきである。つまりは、1ステップ毎に1変数をサンプルし、新しいサンプルに入れ替えていく。このサンプル集合は、全ての変数に関する同時分布を近似する。

それに加え、全てのサンプルに関して平均をとることで期待値を近似することができる。

以下は注意点である。

  • 初期値の設定にEMアルゴリズムなどを用いたり、ランダムに決めてもいい。しかし初期値の設定に敏感にならなくても、burn-inの期間を設ければ問題ではない。
  • サンプリング初期の値を捨てる期間(burn-in period)を設けることがよく行われる。また、期待値を計算するときにはn番目毎の値しか用いないといったこともよく行われる。この理由には2つある。1つは生成されるサンプル列はマルコフ連鎖でありサンプル間にある程度の相関が存在するため独立なサンプルではない。もう1つはマルコフ連鎖の定常分布は目的の分布になるが初期値から定常分布に到達するまでには時間がかかる。 自己相関の量やnをアルゴリズムで決定することもできるが、それは黒魔術的である。
  • 焼きなまし法(Simulated Annealing)はサンプリングの初期によく用いられる。しかしサンプル空間の移動が遅くサンプルの相関が強くなってしまう。その他の自己相関を減少させる方法には collapsed Gibbs samplingblocked Gibbs samplingordered overrelaxationなどがある。

条件付き分布と同時分布の関係

他のすべての変数が与えられたときのある変数に関する条件付き確率は同時確率に比例する。

p(xj|x1,,xj1,xj+1,,xn)=p(x1,,xn)p(x1,,xj1,xj+1,,xn)p(x1,,xn)

ここで比例するとは、分母がxjの関数ではなく、xjがどんな値であれ分母が定数であることである。周辺化定数は同時確率をxjに関して周辺化した値である。

p(x1,,xj1,xj+1,,xn)=p(x1,,xn)dxj

実用上、確率変数xjの条件付き分布を求めるためのもっとも簡単な方法はグラフィカルモデルの変数のうちxjの関数ではない値を独立とみなして因子化すればいい。

そのほかには、3つの場合が考えられる。

  1. 分布が離散分布である場合、xjの取りうる値すべてに関して確率を計算し、足しあわせることで周辺化定数を計算すればいい。
  2. 分布が連続で既知の形を持つ場合、1次元の周辺化なので周辺化定数が計算可能である。
  3. その他の場合、周辺化定数は無視することができる。大抵のサンプリング法は周辺化定数がなくても問題ではない。

理論

サンプルXを次元dのパラメータベクトルθΘに基づいた事前分布g(θ1,,θd)からサンプリングする。

dが大きい場合、数値積分を行ないθiの周辺化分布を計算することは困難を伴う。

その周辺化分布の計算をΘ空間上のマルコフ連鎖を生成することで代替する。以下の2ステップを繰り返す。

  1. jを選ぶ1jd
  2. g(θ1,,θj1,,θj+1,,θd)の分布にしたがい、新しい変数θjを選ぶ。

この2ステップは分布gにしたがう可逆なマルコフ連鎖を生成する。

これは以下の通り証明される。すべてのij に関してxi=yiであれば、xjyと表す。xjy は同値関係である。pxyxΘからyΘへ遷移する確率の分布を表す。

よって遷移確率は

pxy={1dg(y)zΘ:zjxg(z)xjy0otherwise

したがって、

g(x)pxy=1dg(x)g(y)zΘ:zjxg(z)=1dg(y)g(x)zΘ:zjyg(z)=g(y)pyx

このように詳細つりあい条件は満たされる。

実用的にはjはランダムに選ばれず、並びの順番で選ばれる。 また正確に言うと、これは非定常マルコフ連鎖を生成するが、各ステップは可逆であり、全体のプロセスは求めたい定常分布を与える。

手法の拡張

ギブスサンプリングの拡張について説明する。これらの拡張はサンプル間の自己相関を減少させることで、計算コストを減らすことを目標に考えられている。

Blocked Gibbs sampler

blocked Gibbs sampler は個々の変数を考えるのではなく、変数を複数のグループに分割して条件づき分布を考える。 例えば、隠れマルコフモデルではforward-backward algorithmを使い、隠れ変数に関するマルコフ連鎖を生成する。

Collapsed Gibbs sampler

collapsed Gibbs samplerは周辺化分布の変数を積分消去する。たとえば、ABCの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)を参考。[1]

ソフトウェア

  • OpenBUGS (Bayesian inference Using Gibbs Sampling) :複雑な統計モデルのベイズ推定にMCMC法を用いている
  • JAGS (Just another Gibbs sampler) MCMC法を用いた階層ベイズモデルを推定できる
  • Church :任意の分布をギブスサンプリングする

参照

テンプレート:Reflist

テンプレート:確率分布の一覧 テンプレート:Statistics-stub