タグ

samplingに関するgologo13のブックマーク (14)

  • C++ でお手軽乱数(boost::random のラッパー) - 木曜不足

    C++ で乱数、特に正規乱数とか欲しいなあ。 rand() 関数は使っちゃダメ! 絶対! ということらしいので、boost::random を使ってみた。 が、なんでちょこっと乱数が欲しいくらいでそんなややこしいコード書かないといけないの!? と、キレたくなるほど複雑。 同じ型名を何度も書くのとか、ダサダサでしょう…… なので、最小限の汎用性を持たせつつ、便利でお手軽に使えるラッパーを書いてみた。 #include <boost/random.hpp> template<class D, class G = boost::mt19937> class Rand { G gen_; D dst_; boost::variate_generator<G, D> rand_; public: Rand() : gen_(static_cast<unsigned long>(time(0))),

    C++ でお手軽乱数(boost::random のラッパー) - 木曜不足
  • どうしてサンプリングで推論できるの? - 木曜不足

    TokyoNLP #5 で「はじめてのトピックモデル」的なのをやろうと思ってたんだけど、地震とかとかで1ヶ月延びている間に「はじめての生成文法」にすり替わってた。あれー? で、次回はその後編の予定だし、その次に TokyoNLP 的なところでなんか話す機会をもらえる頃にはまた別のネタができてるだろうし、うーん、「はじめてのトピックモデル」はお蔵入りかな。 というわけで、なんか最近 LDA のことをあれこれ書いてるのは、そのへんの蔵出し。 で、そんなネタの内、昨日の記事でうっかり書き忘れてた一口メモ。 どうして LDA で Collapsed Gibbs sampling すれば、つまり乱数で適当に選ぶことを繰り返すだけで推論できてしまうんだろう? わかっている人には簡単で当たり前の話だが、正直恥ずかしながら最初はどうしてそうなるのかさっぱりわからなかったw 普通のベイジアンの枠組みでは、事

    どうしてサンプリングで推論できるの? - 木曜不足
  • Monte Carlo simulations of Ising models

    Simulations of Ising models This is a copy of a Superb Ising model site from TU Delft. The Ising model The Ising model is a simple model to study phase transitions. So-called spins sit on the sites of a lattice; a spin S can take the value +1 or -1. These values could stand for the presence or absence of an atom, or the orientation of a magnetic atom (up or down). The energy of the model derives f

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • マルコフ連鎖モンテカルロ法 - Wikipedia

    マルコフ連鎖モンテカルロ法(マルコフれんさモンテカルロほう、英: Markov chain Monte Carlo methods、通称MCMC)とは、求める確率分布を均衡分布として持つマルコフ連鎖を作成することによって確率分布のサンプリングを行う種々のアルゴリズムの総称である。具体的には、同時事後分布に従う乱数を継時的に生成する。代表的なMCMCとしてメトロポリス・ヘイスティングス法やギブスサンプリングがある。 MCMCで充分に多くの回数の試行を行った後のマルコフ連鎖の状態は求める目標分布の標として用いられる。試行の回数を増やすとともにサンプルの品質も向上する。 求められる特性を持つマルコフ連鎖を作成することは通常難しくない。問題は許容できる誤差内で定常分布に収束する試行の回数を決めることである。適切な連鎖なら任意の位置から始めても定常分布に速く達し、これを高速混合(rapid mix

  • https://www.ism.ac.jp/~iba/kougi_2006_ism/c20061.pdf

  • Gamma分布からのサンプリング - yasuhisa's blog

    自分用メモ。DPMにおいてハイパーパラメータのサンプリングをする必要がある場合、Gamma分布からサンプリングしてこなければならない。「Boostさんにお願いしてどうにかしてもらおう...」と思っていたところ、BoostさんはGamm分布の1変数のバージョンでしかAPIを提供していないということに気づいてしばらく止まる。 Gamma分布のpdf*1は、shape parameter k、scale parameter を用いて と書ける。Boostさんはこのscale parameter がの場合しか提供していないということである。しかし、shapeをあれこれ変えた場合のサンプリングも容易にできる。scaleのほうをfixすると となるが、この場合で元の式でと変数変換すればこの式。ゆえにBoostさんで提供されているGamma分布でshapeを指定して乱数を生成し、その値をscaleで「か

    Gamma分布からのサンプリング - yasuhisa's blog
  • DMPにおけるハイパーパラメータのサンプリングの仕方 - yasuhisa's blog

    ハイパーパラメータの決め方Collapsed Gibbs samplingなどではパラメータは積分消去されることからハイパーパラメータが通常のパラメータの役割を果たすことが少なくありません。そういうわけで通常だと割と適当に「えいやっ!!」と決めてしまうようなハイパーパラメータをベイジアンな人たちは頑張って決める。LDAのときとかは経験ベイズっぽく最適化したり、DPMのハイパーパラメータのようなものはハイパーパラメータに事前分布(つまり、ハイパーハイパーパラメータが導入されるということである...)をかけて、ハイパーパラメータもサンプリングしてしまうのが普通らしい。どこまで事前分布を置くのが適切なのかは色々あるんだろうけど、とりあえずやり方だけは把握しておくことにする。 "Hyperparameter estimation in Dirichlet process mixture model

    DMPにおけるハイパーパラメータのサンプリングの仕方 - yasuhisa's blog
  • Practical Bayes: Variational vs. Sampling | Graham's Research Blog

    Machine Translation, Speech Recognition, Machine Learning, and the like. Recently Bayesian methods (particularly non-parametric Bayesian methods) have been widely used in unsupervised learning for NLP, as they provide a principled way to balance model complexity and expressiveness. There are two major techniques for learning Bayesian models: Variational Bayes (VB), and Gibbs Sampling. For more det

  • とあるモデルのMCMC - yasuhisa's blog

    飽きもせずにGibbs Samplingとかばっかりやってますが、久しぶりにはまった。離散確率分布とかからサンプリングするのにrandとかを使ってたんだけど、これがとてもとてもとてもいけなかった。CとかC++のrandは線形合同法で実装されているとかで周期性が問題になる場合があるが、これがとてもとてもとても問題になった。対数尤度を見てるとそれなりに収束したのかなと思ってとあるF値を観察していたんだけど、こんな感じの推移を示した。 ちなみに、これは10個の平均をplotしたものである。平均してこれである。死んでしまえ。 200くらいで周期があるように見うけられたので、(半日くらい経って)boostのメルセンヌツイスターに切り変えてみた。これである。 MCMCするときにrandは使っちゃだめだよっていうのは常識なんですよね、きっと。ようやく身を持って勉強いたしましたまる。

  • Sampling: Random Order? Corpus Order? | Graham's Research Blog

    Machine Translation, Speech Recognition, Machine Learning, and the like. Gibbs sampling is a common technique that is used in Bayesian learning that is used to find the true distribution of some distribution over probabilistic variables that we cannot calculate directly. I won’t cover the details here, but Wikipedia or Pattern Recognition and Machine Learning give good introductions. But the impor

  • スライド 1

    ノンパラメトリックベイズモデル 上田 修功 NTT コミュニケーション科学基礎研究所 2009年 3月13日 パターン認識応用の視点で解説 CVIM/PRMU研究会 ノンパラメトリックベイズの基礎に関連する キーワード ディリクレ過程(DP: Dirichlet Process) 棒折り過程 (SBP: Stick Breaking Process) ディリクレ混合過程(DPM) 中華レストラン過程(CRP: Chinese Restaurant Process) 階層ディリクレ混合過程(HDPM) FAQ Q1: 新しい分野? No! 創始者Ferguson(1973),近年,機械学習で流行 Q4: ディリクレ過程はディリクレ分布と関係する? Yes! それこそが質 Q2: “ノンパラメトリック”の意味は? 直観的には”massive parametric”が妥当 Q3: 通常のベイ

    gologo13
    gologo13 2010/08/17
    ノンパラメトリックベイズ
  • ギブスサンプリング

    ギブスサンプリング 情報処理辞書 > ギブスサンプリング 英語:Gibbs sampling 日語:ギブスサンプリング (ギブスサンプリング) 分野:人工知能 説明: ギブスサンプリング(Gibbs sampling)とは、確率分布からサンプルを得るのに用いられるマルコフ連鎖モンテカルロ法の単純な型である。ベイズ学習で利用されることが多く、決定的手法が指数の時間やメモリを必要とする大きなネットワークの場合には特に役に立つ。 概要 p(θ)=f(θ)/Kという確率分布からサンプリングしたい場合を考えよう(Kは非常に大きく計算は困難である定数)。以下の手法(メトロポリス・ヘイスティングス法)を用いてサンプリングができる: 初期サンプルをθ0(f(θ0) > 0)とする。 候補生成分布p(θt+1|θt)に従って現在のサンプルθtを元に新たなサンプル候補を生成する。 受理確率を計算する。 確率

  • Bayes統計学のMCMCとの出会い

    1 2004 10 15 SAS 2 MCMC 3 4 ∫ = θ θ θ θ θ θ d p x p p x p x p ) ( ) | ( ) ( ) | ( ) | ( ) | ( θ x p θ ) (θ p ) | ( x p θ Bayesian inference. Encyclopedia of Statistical Science,Vol.1,pp.197-204. 5 MCMC MCMC Metropolis-Hastings 6 Metropolis-Hastings ) (⋅ π ) 0 ( x N j ,.., 2 , 1 = ) , ( ) 1 ( ⋅ − j x q y ) 1 , 0 ( U ) , ( ) 1 ( y x u j− ≤α y x j = ) ( ⎭ ⎬ ⎫ ⎩ ⎨ ⎧ = − − − − ) , ( ) ( ) , ( ) ( , 1 m

  • 1