2017-06-01から1ヶ月間の記事一覧

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

記事 ぱらぱらとめくるには、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] <- …