MCMCとは(概要)

機械学習技術 人工知能技術 デジタルトランスフォーメーション技術 自然言語処理技術 深層学習技術 確率的生成モデル MCMC  ベイズ推論とMCMC 本ブログのナビ
MCMCとは(概要)

岩波データサイエンスシリーズ「ベイズ推論とMCMCのフリーソフト」より。前回はベイズ推定超速習としてベイズ推定の基礎と階層ベイズモデルについて述べた。今回はMCMCの概略について述べる。

MCMCは「マルコフ連鎖モンテカルロ法」(Markov Chain Monte Carlo Method)の力で、多変量の確率分布からサンプルを抽出する(乱数を発生する)ためのアルゴリズムの一つとなる。

MCMCは単なる計算方であり、タスクを解くためには、MCMCで解ける様に問題を整理する作業(統計モデリング)が必要となる。算数の文章題で、加減乗算の計算そのものより「何を計算するか」が肝心なのと同様なものとなる。

最小二乗法で曲線をあてはめたり、最尤法で確率分布のパラメータを推定するのに必要なものは「行列の分解」や「最適化」となる。それらは目的が「一つの決まった曲線や数字」(点推定値)を直接求めるものである為で、それに対してベイズ統計では「答」はまず「事後分布」という「分布」の形で与えられる。そこで、分布からのサンプルを生成するMCMCとの相性が抜群となる。点推定値や誤差、予測区間など、最終的に必要な情報はMCMCで生成した多数のサンプルから求める。

MCMCと最適化の違いは、MCMCがずっと動き続けてサンプリングを生成するのに対して、最適化はどこか(うまくいくときには本当の最適解、うまくいかないときは曲初回)で止まる。実際には、MCMCも最適化に近い動きをすることもあるが、その場合でも最適解のまわりでいつまでも「ごにょごにょ」と動いて、ベイズの意味での誤差を表現する。MCMCの「収束」とは、分布の収束なので、ある一点二位ってそこで止まると言う意味ではない。

MCMCは確率分布を扱う汎用の手法で、統計物理や頻度論的な統計学でも使われる。逆にベイズ統計では、ラプラス近似、カルマンフィルタ、逐次モンテカルロ法、変分ベイズ法などいろいろな計算法が使われていて、MCMCはその中の一つとなる。

MCMCは大雑把に言うと、数値的に一様乱数を生成して、それを使った単純な操作の繰り返しで、状態(確率変数の値)をランダムにちょっとずつ変えていくものとなる。そのやり方で「ギブス・サンプラー」「メトロポリス法」「ハミルトニアン・モンテカルロ法」などの様々なアプローチがある。そういった確率的操作の繰り返しをうまく設計して、狙った分布(ベイズ統計なら事後分布)からのサンプリングを実現する。

MCMCを使う上での注意点は、MCMCが「乱数を使った単純な繰り返しで確率密度の大きいところを探しながら、サンプルを生成する」という手法となるので、実際の例でうまく動くかどうかは結果オーライの面がある。「数字を大小の順に並び替える」といったアルゴリズムでは、ソースコードを見れば動きが完全にわかるが、それらとは扱いが異なり、実行結果を見て挙動がおかしい場合は、モデルやデータ、やろうとしていることにどこか無理があることが多いので、それらを振り返ってMCMCの挙動との関係をチェックすることが必要になる。

次回は階層ベイズモデルについて述べる。

コメント

  1. […] MCMCとは […]

  2. […] 次回はMCMCの概略について述べる。 […]

  3. […] 岩波データサイエンスシリーズ「ベイズ推論とMCMCのフリーソフト」より。前回はMCMCの概要について述べた。今回は階層ベイズモデルについて述べる。 […]

タイトルとURLをコピーしました