タグ

mcmcに関するyukimori_726のブックマーク (12)

  • ハミルトニアンモンテカルロ法 - Qiita

    はじめに 「ハミルトニアンモンテカルロ法」は、モデルのパラメータを推定する手法であり、 マルコフ連鎖モンテカルロ法(MCMC法)の一種である。 確率的プログラミング言語のStanやPyMCで実装されており、誰でも容易に使うことができる。 様々なパラメータの推定手法 このようなモデルのパラメータを推定する方法に、「EMアルゴリズム」がある。 EMアルゴリズムは、Jensenの不等式を用いて、周辺化対数尤度を下限で近似する。 $ log\ p(x{\mid}{\theta}) \geq E_{z {\sim} q(z)} [log\ p(x, z {\mid}\theta)] $ そして、右辺を最大化することで、左辺の周辺化対数尤度に近づけていく。 しかし、モデル$p(x, z {\mid}\theta)$ が複雑だと、それ自体の解析的な計算ができないため、 EMアルゴリズムを適用することがで

    ハミルトニアンモンテカルロ法 - Qiita
  • ベイズ混合モデルにおける近似推論② ~ギブスサンプリング~ - 作って遊ぶ機械学習。

    さて、今回はMCMCの代表的な手法であるギブスサンプリングを使って、混合モデルによるクラスタリングを行いたいと思います。今回も前回の変分近似の記事と同様、ポアソン混合分布を具体的なモデル例として使っていきます。 [必要な知識] 下記をさらっとだけ確認しておくといいです。 前回の内容 ベイズ推論 カテゴリカル分布 ・ギブスサンプリング さて、ギブスサンプリングでは、サンプルを取りたい同時分布に対して、下記のような繰り返し手続きを用いて変数を順にサンプリングします。 他の変数を既にサンプリングされた値で固定し、残りを確率分布からサンプルする、というのを繰り替えしていきます。それぞれの確率分布が、注目している変数をサンプリングするのに十分なほど簡単になっているのがギブスサンプリングが適用できる条件です。証明は今回省きますが、このような手続きで得られたサンプルは、数が十分に多ければ真の分布から得ら

    ベイズ混合モデルにおける近似推論② ~ギブスサンプリング~ - 作って遊ぶ機械学習。
  • 【統計学】マルコフ連鎖モンテカルロ法(MCMC)によるサンプリングをアニメーションで解説してみる。 - Qiita

    Pythonでマルコフ連鎖モンテカルロ法を実装して解説してみる記事です 『計算統計 II マルコフ連鎖モンテカルロ法とその周辺』のp16に この節の内容を実感するために一番良い方法は、どんな計算機言語でもいいから、 ここで述べたことを白紙から実装してみることである。 という事で、素直にやってみました。せっかくなのでコードと仕組みの解説をしようと思います。 先に結果のアニメーションとプロットを表示しておきます (Burn-in期間:1-30 [この期間のデータは色を薄くしてプロットしています。], 棄却含め150回のサンプリングまで) 10,000回繰り返してサンプリングした結果をプロット。(うち、Burn-in: 2,000回) はじめに まず最初に必要なライブラリのインポートを行います。 import numpy as np import numpy.random as rd impor

    【統計学】マルコフ連鎖モンテカルロ法(MCMC)によるサンプリングをアニメーションで解説してみる。 - Qiita
  • 自動微分変分ベイズ法の紹介

    PRML上巻勉強会 at 東京大学の資料です。 この資料はChristopher M. Bishop 著「Pattern Recognition and Machine Learning」の日語版「パターン認識と機械学習 上 - ベイズ理論による統計的予測」について補足説明を入れた上でなるべくわかりやすくしたものです。 資料では第3章の前半、特に3.1節を中心に解説しています。 詳しくはこちらのサイト(外部)を御覧ください。 http://ibisforest.org/index.php?PRML

    自動微分変分ベイズ法の紹介
  • ベイズ統計学その20〜ベイズ推定を用いたt検定〜 - Rを通じて統計学を学ぶ備忘録ブログ

    □Bayesian Estimation Supersedes the t Test(BEST) 日は ベイズ で平均値の差の検定を行っていきます。使用パッケージはBESTですが、 JAGS もインストールしておく必要がありますので、ご注意ください。また、以下2の論文と説明書を参考にしております。 ・ John Kruschke(2013) Bayesian Estimation Supersedes the t Test, Journal of Experimental Psychology: Vol. 142, No. 2, 573– 603 ・ Mike Meredith and John Kruschke(2015): Bayesian Estimation Supersedes the t-Test ・ Packages "BEST" 平均値の比較といえば、Student’s

    ベイズ統計学その20〜ベイズ推定を用いたt検定〜 - Rを通じて統計学を学ぶ備忘録ブログ
  • E-musu's Tech Memorandum

    1. 導入 これはMetropolis Hastings Algorithmについてまとめたものです. この手法はマルコフ連鎖モンテカルロ法の1つです. マルコフ連鎖モンテカルロ法とは多次元の確率変数を発生させるサンプリング方法の1つであり,複雑化しているモデルの推定方法として多くの分野で使用されています. そこでMCMCを使うことになった背景やその仕組みについて考えていき,メトロポリス・ヘイスティングス法やそれに類する手法を説明します. 2. 共役分布を用いたパラメータ推定 ベイズ統計ではパラメータ推定などの統計的計算は基定理 \begin{equation} f\left( \theta | x \right) = \frac{f\left( x | \theta \right)f\left( \theta \right)}{f\left( x \right)} \propto f\

    E-musu's Tech Memorandum
  • Pythonでデータサイエンスを試す(8_MCMC) - あれもPython,これもPython

    前回から大分、間があいてしまいましたが、 Pythonでデータサイエンス続き編です。 前回のアソシエーションルールまでで、 編は一通り終了しました。 残りは10章に載っている、 様々な手法に触れてみよう編です。 手を動かしながら学ぶ ビジネスに活かすデータマイニング 作者: 尾崎隆出版社/メーカー: 技術評論社発売日: 2014/08/22メディア: 単行(ソフトカバー)この商品を含むブログ (6件) を見る 今回はベイジアンモデリング 教科書はこれ、ですが、ベイジアンモデリングそのものの説明は最小限でした。 準備 Pythonでベイジアンモデリングを用いるには、 MCMCを扱えるpystanを使用します。 これは重力波の研究にも使われたツールで、 StanというMCMCを扱うライブラリのPythonラッパーです。 andrewgelman.com pipで入ります。 pip inst

    Pythonでデータサイエンスを試す(8_MCMC) - あれもPython,これもPython
  • 【M-H法】Python で MCMC を書いてみた |

    この記事は Python Advent Calendar 2015 19日目の記事です。 MC法 (Monte Carlo Method) からスタートして, MCMC (Markov Chain Monte Carlo) を Python で書いてみます。 MC法による円周率の近似計算 MC法 (Monte Carlo Method)は乱数を利用した計算アルゴリズム。 MC法の hello world 的な例題として, 円周率の近似値を計算する。 import numpy as np import matplotlib.pyplot as plt def main(): N = 100000 x = np.random.uniform(-1.0, 1.0, N) y = np.random.uniform(-1.0, 1.0, N) inside_circle = [] for i in

  • 可視化で理解するマルコフ連鎖モンテカルロ法(MCMC) - ほくそ笑む

    先日行われた第9回「データ解析のための統計モデリング入門」読書会にて、 「可視化で理解するマルコフ連鎖モンテカルロ法」というタイトルで発表させて頂きました。 発表スライドは以下です。 可視化で理解するマルコフ連鎖モンテカルロ法 from hoxo_m この発表は、みどりぼんに登場する、マルコフ連鎖モンテカルロ法(MCMC)のアルゴリズムである「メトロポリス法」と「ギブス・サンプラー」について、可視化して理解しようというお話です。 「マルコフ連鎖モンテカルロ法」というのは、字面だけ見ると難しそうですが、この発表で理解すべきポイントは、次のスライド 1枚に凝縮されています。 このことを念頭に置いて、それぞれの手法を見ていきましょう。 まず、メトロポリス法ですが、これは、 前の状態の近くの点を次の遷移先候補として選ぶ(マルコフ連鎖) そのときの確率比 r < 1 ならば確率 r で棄却する。それ

    可視化で理解するマルコフ連鎖モンテカルロ法(MCMC) - ほくそ笑む
  • NIPS2014読み会で深層半教師あり学習の論文を紹介しました

    今週の火曜日 (1/20) に東大で NIPS2014 読み会 が開かれました. NIPS 自体の参加者数が増えているのと同様に,読み会も去年にくらべてさらに多くの人が集まりました. その中で僕もひとつ論文を紹介しました. 紹介した論文の著者は,スライド中にも出てくる変分 AutoEncoder の考案者です. 変分 AE では,生成モデルと認識モデルをそれぞれニューラルネットで定義して,確率変数としてそれらの出力をパラメータとする正規分布を使いました. 生成モデルを認識モデルで近似したときの変分下界は,認識モデルに関する期待値の形をしています. このように,最適化の対象となる分布に関する期待値の最適化は,一般には REINFORCE アルゴリズムによる勾配法を使います. REINFORCE アルゴリズムは,期待値を積分で書いた時に,積の微分を使って勾配を計算し,それを対数微分の公式 $x

  • emceeを試してみた - xiangze's sparse blog

    pythonのMCMCライブラリとしてemceeというのがあるらしいので試してみました。 Paralell tempering(レプリカ交換モンテカルロ法)が使えるの他のライブラリとの大きな違いになります。 http://dan.iel.fm/emcee/current/ ほかにもMultiprocessing,MPIに対応している点などが特徴です。 体はpure pythonで書かれているらしいのですが、普通のpythonと同様にCythonなどで高速化が出来るようです。 インストール 他のライブラリに依存していないので pip install emcee だけでインストールは完了です。ただしMPIを使う場合にはmpi4pyをインストールする必要があります。 実行例 http://dan.iel.fm/emcee/current/user/line/#maximum-likelihoo

    emceeを試してみた - xiangze's sparse blog
  • 超訳 PyMC3 Tutorial (マルコフ連鎖モンテカルロ法フレームワーク)その1 - Qiita

    Pythonでマルコフ連鎖モンテカルロ法(MCMC)を実行できるライブラリ、PyMC3のチュートリアルの訳を書いてみました。タイトルにあるように、原文をそのままではなく意訳を超えた「超訳」です 原文のURL http://pymc-devs.github.io/pymc3/getting_started/ イントロダクション(だいぶ省略) 確率的プログラミング(Probabilistic programming : PP)は柔軟なベイズ統計モデルをプログラムで行うことを可能にします。 PyMC3は新しいオープンソースの確率プログラミングフレームワークで、No-U-Turn Sampler (NUTS; Hoffman, 2014)や、ハミルトニアンモンテカルロ法 (HMC; Duane, 1987)のパラメーターの自己チューニングなど、次世代のマルコフ連鎖モンテカルロ法(MCMC)が使える

    超訳 PyMC3 Tutorial (マルコフ連鎖モンテカルロ法フレームワーク)その1 - Qiita
  • 1