2017-01-01から1年間の記事一覧

Haskellで確率モデル(書き直し)

ここ数日間の記事は、調べ物をしながらのメモの堆積物のようになってしまった もう一度、全体を見渡して、整理しよう 確率モデルとは 一般化して考えたい 特にパラメトリックモデルもノンパラメトリックモデルも併せて考えたい パラ、ノンパラは、パラメタの…

多観測の尤度計算〜Haskellで確率モデル(続)

昨日の記事でメトロポリスヘイスティングをやった その実行例として、二次元点集合に一次線形モデルを設定して回帰係数の事後分布を作った その中でサンプリングされた回帰直線係数の下での条件付き確率を、個別の観察点について計算し、それをたたんで一つ…

Haskellでメトロポリスヘイスティング

こちらには、前の記事で勉強したDistのことが書いてあるのだが、それを使ってメトロポリスヘイスティングを実装している。 以下の通り このHaskellコードを読んでいくことにする メトロポリスヘイスティングでは(関数 mh として作成されている) 事象の確率は…

Haskellで確率モデル

こちらにも書いたように、Haskellでは、確率変数のための仕組みRVarがある。 パラメトリック分布からの乱数発生もRVarを用いていることは、こちらや、こちらでも窺い知れる さて。このRVarは確率変数の型なのでこちらにも書いたように、確率モデルをRVar a …

駆け足で読む『確率とモナドと確率論的プログラミング』

記事 ぱらぱらとめくるには、Haskellの理解が浅すぎて無理なので、がんばって読む(が時間は掛けられない) 読みながら気になったこと、調べたこと、等をメモしていく 確率変数を扱いたい。確率変数はいろいろな値をとる変数なので、有限・無限集合。これをリ…

確率的プログラミングの汎用性

資料はこちら Haskellで確率的プログラミング、ということで調べ物をしている 確率事象を扱うために以下のような特徴があることがよい、という話 逆に言うと確率的プログラミングは以下のような取り扱いをするものだ、ということで、それがさらりとできるハ…

Haskellで乱数

こんな記事があって、Haskellでの乱数発生はいろいろあることがわかる mwc-randomはかなり速いし、これを使っておけばよいのでは?という結論 そのmwcは昨日の記事でも使われていた 簡単に言うと、乱数を使う処理は何度もせずに一度に済ませることにする そ…

この処理を眺めてみる ベルヌーイ事象とその独立試行の繰り返しの話 二値型確率事象Bookをデータ型として作り、それに生起確率ベクトルを付け加えている。付け加えるときは、weightedという関数を使っている。有限事象の確率変数なのでFiniteというクラスを…

乱数はいつ決まる?

上記が回ったところで、Main.hsをghciに読み込んで、Main.hsでやっていることを見てみる Probディレクトリの中で、stack buildも終わった状態で以下をやると、Main.hsを回すのに必要なライブラリなどは揃っていて、読み込める stack ghci ghci内で、appフォ…

確率的プログラミング 再 ハスケル

stackは入れておく stackで専用環境を作る stack new Prob cd Prob まず、probableパッケージのこのファイル(/Prob/app/Main.hs)を動くようにする module Main where import Control.Applicative import Control.Monad import Math.Probable import qualifie…

Covariance Functions

資料 Gaussian過程には分散共分散行列を使う それをつくるには、2点に対して値を計算する関数が要る。それがCovariance functions 2点の差ベクトルで決まると考える場合() 2点間距離で決まると考える場合() それ以外の距離っぽい定義で決まると考える場合(測…

Gaussian Process Regression

こちらにGaussian Process Regressionをベタコードで解説してある 手元のR環境だと、描図エラーが出るので、エラーを出す行だけコメントアウトしたものを以下に再掲する xの座標ペアごとにどれくらいの関連を入れるかを分散共分散計算関数で指定し 観測デー…

ぱらぱらめくる『Lecture notes on Bayesian Nonparametrics』

ぱらぱらめくれるか? テキスト Lecture Notes on Bayesian Nonparametrics Peter Orbanz 目次 Chapter 1 Terminology 用語・定義 Chapter 2 クラスタリングとディリクレ過程・チャイニーズ・レストラン過程 Chapter 3 Latent features/買い物記録とインディ…

Chapters 2,3,4 無限次元空間の分布を作る ぱらぱらめくる『Lecture notes on Bayesian Nonparametrics』

無限次元分布発生方法の名前 ディリクレ過程、チャイニーズ・レストラン、Stick-breaking インディアン・ビュッフェ過程 ガウス過程、Kriging、酔歩・ウィーナー過程、ガウシアンランダムフィールド どういう推定課題なのかによる分類 クラスタリング 特徴抽…

Chapter 1 ノンパラベイズとは ぱらぱらめくる『Lecture notes on Bayesian Nonparametrics』

この章では、以下を確認する パラメトリックとノンパラメトリック (パラ・ノンパラの)ベイズ パラメトリックとノンパラメトリック 事象の空間がある(ベルヌーイなら{0,1}のこと、サイコロなら、{1,2,3,4,5,6}のこと、実数全体を事象空間とする確率分布には、…

データ型

[:title=参考] それぞれの型にRリストでデータを渡す データを渡すだけで、Stan処理としては、ただの1次元正規分布のパラメタ推定 stanでは、ベクトルを要素とする行列、とか、行列を要素とするベクトルとかがあるが、それは、Rのアレイで渡せばよいようだ …

Stanサンプリング

参考サイト --- title: "StanDistribution" author: "ryamada" date: "2017年6月10日" output: html_document --- ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE) library(rstan) ``` # Stanの各種分布の練習 ```{r} .stan_code1 = ' data…

インストール回り

インストール説明サイト

『法数学入門』を書く

まずは章立てを検討する --- title: "法数学入門" author: "ryamada" date: "2017年6月4日" output: html_document: toc: true toc_depth: 6 number_section: true --- ```{r setup, include=FALSE} library(knitr) opts_chunk$set(echo = TRUE) library(rgl…

ディリクレ過程のメモ

Stick Breaking Process R package dirichletprocessがあるが、あえて自作すると: # Dirichlet process alpha <- 5 n <- 1000000 v <- rbeta(n,1,alpha) hist(v) ps <- rep(0,n) logv <- log(v) log1v <- log(1-v) cumsumlog1ps <- cumsum(log1v) ps[1] <- …

ぱらぱらめくる『Statistical Relational Artificial Intelligence』Statistical Relational Artificial Intelligence: Logic, Probability, and Computation (Synthesis Lectures on Artificial Intelligence and Machine Learning)作者: Luc De Raedt,Kris…

Haskell でProbabilistic programming その3

こちらの記事でHaskellをベースにしたProbabilistic programmingについてメモをした このペイパーを読みつつHaskellとその中でのMonadの使用方法について勉強した こちらとこちらに、それが提供するhaskell パッケージの使い方について書いた そのパッケージ…

Haskell でProbabilistic programming その2

こちらの記事でHaskellをベースにしたProbabilistic programmingについてメモをした このペイパーを読みつつHaskellとその中でのMonadの使用方法について勉強した(こちら)ので、少し頭の中を整理してみる 確率分布 確率分布は、台があって、台に非負の値が乗…

Haskell でProbabilistic programming

昨日の記事でHaskellをベースにしたProbabilistic programmingであるHARUKAのメモをした HaskellでのProbabilistic programmingについて、このドラフトペイパーに基づいて少し勉強する(ドラフトペイパーの中でFalse positive, True positiveの使い方が間違っ…

HAKARUのちょっとしたメモ

HAKARUのサイト HAKARUはHaskellを使ったProbabilistic Programming法で、MAPLEという数学代数計算アプリ(有償)と連動したもの(これが残念だ…。トライアル版MAPLEで試せるかどうかはやってみていません) 代数演算アプリを使うことで、数値計算を減らし、無限…

Churchのちょっとしたメモ

情報サイト web版Churchでお手軽にChurchする Webでもできるが、リンク先のチュートリアルの中のコード欄のコードを改変して"run"してもよい(こちらに参考記事) ごく簡単に言うと 関数を返す関数が定義できる・関数を引数にとることができる その関数を使っ…

ぱらぱらめくる『Essential Mathematics and Statistics for Forensic Science』

Essential Mathematics and Statistics for Forensic Science作者: Craig Adam出版社/メーカー: Wiley発売日: 2010/05/14メディア: ペーパーバックこの商品を含むブログを見る 目次 1 基礎 2 関数、公式、等式 3 指数関数・対数関数、それらの応用 4 三角法…

intractable Likelihood

こちらに確率的プログラミング全般についてのメモをした その中のi-like こちらはi-like.org.ukのサイト ABC(Approximate Bayesian Computation)もintractable likelihoodに対処する方法の一つだが、i-likeに対処することを俯瞰して行こうとするグループ・サ…

Approximate Bayesian Computation(ABC)

こちらに確率的プログラミング全般についてのメモをした その中のStatistical relational learning こちらは本の紹介サイト それによれば "probability theory and statistics"に基礎を置き、不確実さを定量的に扱う "logic, databases, and programming lan…

Approximate Bayesian Computation(ABC)

こちらに確率的プログラミング全般についてのメモをした その中のABC Wikipedia(En)はこちら By Mikael Sunnåker, Alberto Giovanni Busetto, Elina Numminen, Jukka Corander, Matthieu Foll, Christophe Dessimoz - Approximate Bayesian computation (Web…