Churchのちょっとしたメモ

  • 情報サイト
  • web版Churchでお手軽にChurchする
    • Webでもできるが、リンク先のチュートリアルの中のコード欄のコードを改変して"run"してもよい(こちらに参考記事)
  • ごく簡単に言うと
    • 関数を返す関数が定義できる・関数を引数にとることができる
    • その関数を使って次なる関数を作る仕組みは、ベイズの定理に使える
      • 事前分布を関数として定め、その事前分布を引数として次なる関数を定義してそれ事後分布として返すことができる
  • Inferという関数で「推定作業」をまとめる
    • どのようにサンプリングするかを指定し分けることで、サンプルを生む関数やモデルは同じものを使う
    • forwardと指定すれば、モデルがあって、そこから分布に従った乱数を出すこと
    • enumerateと指定すれば、すべての場合の列挙・正確な関数の計算をすること
    • rejectionと指定すれば、rejectionサンプリングによるモンテカルロ
    • MCMCと指定すれば、分布に応じたサンプリングによるモンテカルロ