Chainerをバックエンドにブラックボックス変分ベイズを実装する日記[1]

この記事

Chainerでブラックボックス変分ベイズを実装するぞと言う宣言。意味はない。

導入

世の中には深層学習フレームワークを自動微分バックエンドとして使用した確率的プログラミングフレームワークがある。

知っている限りだとTensorFlowをバックエンドにしたEdward (BayesFlow)、PytorchをバックエンドにしたPyro。

勉強のために昔Edwardで遊び、最近Pyroで遊んだのですがそれらで作るものが特に思い浮かばない。

職がD&Sエンジニアではなく、趣味でも用途特に思いつかない、コンペに出るほどの熱意もないので。

それでもSVIについて理解は深めたいのでChainer使ってぼちぼち自前でSVIを実装していく。

進め方

雑に進めるが、以下のようにしたい

  • 雑でもいいので小さく動くものを作って拡張していく。
  • 雑でもいいのでテストを書きながら作る
  • 日記、作業ログを書く

作るもののAPIのイメージ

poutineみたいにグローバルな副作用を扱いたくない(poutine自体を否定するものではない、自分は取り入れない)

define by runっぽさは残したい