こんばんは。
諸事情により、今さらながらマルコフ連鎖モンテカルロ法を勉強することになりました。学生時代にベイズ統計とかもっとちゃんと勉強しておけばよかったなと思う反面、最近の機械学習ブームもあって、わかりやすい教材がたくさん出てきており、勉強しやすい環境になっているとも感じます。
そんなわけで、マルコフ連鎖モンテカルロ法の勉強に役立つサイト・テキストを整理します。
目次
マルコフ連鎖モンテカルロ法とは
マルコフ連鎖モンテカルロ法(Markov Chain Monte Carlo、通称MCMC)とは、求めたいある確率分布を均衡分布と持つようなマルコフ連鎖を作成してそこからサンプリングすることにより、任意の確率分布に従った乱数を生成するアルゴリズムのこと。これにより、一様分布や正規分布ではない確率分布でも乱数を生成することができます。また、応用としては、MCMCによる乱数を用いて関数の多重積分をおこなうというものです。
ネットで情報が充実している
このMCMCですが、最近の機械学習ブームなどの影響か、ネットで勉強できるコンテンツが多く出てきています。
わかりやすいものとしては、まずはこちら。
天気予報を例題に、MCMCの基本アルゴリズムであるメトロポリス法について解説されています。
そのほか、このようなスライド資料をまとめたものが以下のサイトで紹介されています。
教科書ならばこれがおすすめ
もう少しかっちりした教科書的なものですと、以下のようなものがあります。
まずは無料のものから。
https://www.omori.e.u-tokyo.ac.jp/MCMC/mcmc.pdf
MCMCの歴史的背景から、主要なアルゴリズムの解説や実際に使うときの注意点など、網羅的に解説されています。理論的な背景を学ぶには良いですが、数式も多く出てくるので、上のスライドを一通り見て概要を把握してから読んだほうがよさそうです。
そのほか、無料のテキスト類としては以下などがあります。
https://ebsa.ism.ac.jp/ebooks/sites/default/files/ebook/1881/pdf/vol3_ch10.pdf
https://tombo.sub.jp/doc/esj55/MCMC.pdf
また、1冊くらいはちゃんとした教科書を読んだほうが良いだろうということで、以下のテキストなどがよさそうです。
RかPythonを使うことが多いらしい
さて、実際にMCMCを計算しようとする場合、RかPythonのライブラリを使うことが多いようです。このあたりは、現在使っている環境に合わせて好きなほうをえらぶということでしょう。
Rを使いたい人は、こちらの書籍がおすすめ。
一方、最近はやりのPythonを使う場合、こちらが有名なようです。
ということで、マルコフ連鎖モンテカルロ法の教材の紹介でした。