#人数はどれくらいですか?> shelarcyさん
#都合が付けば参加するという方を含めると、今のところ参加人数は8人です。
#5-6人までなら会社の会議室が使えるかもしれないのですが、ちょっと厳しそうですね。
#うーん、そうですか。ではもうちょっと探してみますが、とりあえず他に良さそうな場所が見つからなかった場合の予備として押さえてもらえると助かります。
#わかりました。おさえられるか確認しておきます。また連絡します。
#そういえば、時間帯はどの程度を考えられていますか?
#24日は参加できないのですが、Probabilistic programming って何ですか?
#Oleg さん達は次の日に帰国されるようなので、13:00-18:00 辺りを時間帯として考えています。
#もっと長く話たいと言う方がいれば、別途朝から集まったり、あとは二次会を儲けてそこで時間が許す限り話せば良いと思いますし。
#了解です。会議室は空いてそうなので押さえておきます。
#部屋はちょっと狭くて、無線LANあり、プロジェクターはないですが、大きなTVモニタがあるのでそれに映す感じになります。
##このページの「会議室兼卓球台」です。狭いのを覚悟してください。
#あと、TVがテレビ会議システムになっていて、常時京都のオフィスとも繋がっているので、弊社京都オフィスの社員がお話を聞かせていただくかもしれません。
#はい、分かりました。
#ありがとうございます。
#書き忘れましたが、場所は中目黒です。
#確率的プログラミング(Probabilistic Programming)は、ダイス目の答えのような確率的な値をそのまま扱い、確率的な値を元に確率的な答えを求めるというものです。 http://bit.ly/a4saOE #そういった確率的な計算をしたい場合には、確率的な値を何らかの具体的な値に変換し、それを使って計算するのが普通だと思います。ですが、確率的プログラミングでは、確率的な値をそのまま変数として確率的な計算ができるのが特徴ですね。
##ありがとうございます。想像するに、名前は確率だけど実際には「(1/6, 1/6, ..., 1/6) のような多値の入力を受けて、それぞれの場合の出力をはくプログラム」という感じでしょうか?
#基本的には、そうですね。ただ、[1..6] のような具体的な値にしておく事で、普通にプログラミングする場合と同様に値をフィルタすることができます。
#例えば、他の部分での計算結果により2と3の場合は発生しないので、[1,3..6] からそれぞれの場合の出力をはく、とか。
#なるほど。目が偶数の場合の出力、とかできるわけですね。
#昔、似たようなことを考えたことがあったので、ちょっと気になりました。Haskellなら離散事象であれば無限でもいけるので面白いことができそうですね。
#最終的には IO アクションを用いる事で、それぞれの計算結果の発生確率からランダムな一つの答えを導きだすことができます。 http://bit.ly/cAcA2d #確かに Haskell なら、こうした仕組み自体は容易に実現できると思います。ただ、問題となるのは、こうした仕組みをどうやって効率良く実装するかですね。
#Oleg さんのシステムでは、この「確率的プログラミングを行なうための仕組みをどう効率よく実現したか」が一つの重要なポイントになっています。 http://okmij.org/ftp/kakuritu/ #関数(プログラミング的な意味で)によって確率変数を表現する自然さにわくわくする。RT : shelarcy@twitter: 最終的には IO アクションを用いる事で、それぞれの計算結果の発生確率からランダムな一つの答えを導きだすことができます。
#この効率的な実装をするために、限定継続を OCaml で利用しているという感じですね。どうして Haskell ではなく OCaml で限定継続を使ったかは、良く分かりません。この辺は本人に聞いた方が良さそうですね。
#効率のことは頭にありませんでした。それに、そういえば OCaml って書いてましたね。。。
#Oleg さんのシステムは OCaml ですが、最初にリンクを張った Haskell で書かれたライブラリも HackageDB で提供されています。
##あとは、Oleg さんのシステムのアイデアを元に、誰かが限定継続のライブラリ [ http://bit.ly/a5mK51 ] を使って書き直せば効率良くなるはずです……。 #"Functional Pearls"のPDFを見て遊んでみます。