今週のまとめ / 確率的プログラミング と CPUを作るゲーム
ブログはじめました (2年ぶり)。毎週つぶやいたリンクとか思いついたアイデアとかについてまとめてこうと思います。
確率的プログラミング
確率的プログラミングとは、端的に言えば確率モデルのDSLである。POSTDの記事 が詳しい。 昨今のAIブームや技術の進歩 (ハミルトニアンモンテカルロ法などのアルゴリズム) でブームになっていると感じる。
個人的な話だが、B2ぐらいの時から確率的言語とかファジイ論理言語は作ってみたいと思っていた。結局やらずに終わってしまったが。(後者については代わりに これ をやった )
Edward – Home
おそらく今一番ホットな確率モデルフレームワーク。確率モデル構築→推定→モデルの検証? を包括的にできるフレームワークらしい。"battery included" なかんじで色々な手法が使える。 割りととっつきやすそうだったので機会があれば使ってみたい。
The Algorithms Behind Probabilistic Programming
確率的プログラミングの背景にある(変分)ベイズ、サンプリングなどについて説明している。いい記事とおもったのでPOSTDに翻訳リクエスト投げといた。
Probabilistic Models of Cognition
確率プログラミングについてのオンライン書籍。ブラウザで動くLisp風言語でソースコードの実験ができる。最高。
WebPPL - probabilistic programming for the web
Web で動く確率的プログラミング言語。 JavaScript に埋め込む形で書かれるみたい。
GitHub - akelleh/causality: Tools for causal analysis
Python の 因果関係を分析? するライブラリ。ソースコード見てやりたいことはなんとなくわかったけど…正直良くわからない
ゲーム
これを買った。
これは、NANDから始めて論理回路を色々作り最終的にCPUを作ろうというゲーム。VHDL風の言語で論理回路を結線していく。 やってることはただのコンピュータアーキテクチャの講義の演習であるが、とても楽しくプレイすることが出来た。 情報実験はこれを採用してもいいんじゃないかってぐらい。
ただ、終わりがあっけないというか出来たCPUで遊んだりすることは出来ない。アプデに期待。
あとついでにコレも買った。 store.steampowered.com
その他
他に特に気になったものを載せていく。
- nearley - アーリー法を用いたJS製LL(k)パーサコンビネータ。パーサとしての機能の他、文のランダム生成や構文をビジュアライズする機能などがある。
- Google - Site Reliability Engineering - Googleの信頼性工学についての本。まだ読んでないが、理論と実践の両面から論じているようだ。
- GitHub - PistonDevelopers/dyon: A rusty dynamically typed scripting language - Rustに影響を受けた静的型付けスクリプト言語。4次元ベクトルがライブラリにあるのを見ると、ゲームやCGに向いてるのかな? 新生の言語なのでこれからも注目していきたい。
おわりに
なんかこんな感じで毎週やっていって大丈夫かな。