2018年12月のまとめ
年が明けてしまいましたが2018年12月のまとめです。
アドベントカレンダー
tensorflow probability(TFP)とpytorchベースの確率的プログラミングライブラリpyroに関して書きました。jupyterでlatexを書いています。
TFP
tensorflowの枠組みでNMF(nonnegative matrix factorisation)のMAP推定の実装に挑戦しましたが現状うまくいっていません。
ed.を使わずにlossで使う対数尤度の式を書いた方が良いのかもしれません。
Edward1の頃からKLダイバージェンスを定義してそのメソッドで最適化するのか、対数尤度を直接書き下すのか方針が揺らいでいる印象があります。
更新式をちゃんと書いている例 非負値行列因子分解をRで(ベイズ推論による機械学習入門)2 - 廿TT
参考 Bayesian Inference for Nonnegative Matrix Factorisation Models
TFPでeight schools modelの推測をHMCで行なったサンプルがあり、それを自動変分ベイズに置き換えて実行したのですがこちらもまだうまくいっていないようです。
Eight_Schools_VI.ipynb · GitHub
pyro
pyroにはNUTS, 変分ベイズが実装されており事後予測分布の評価や表示の関数もあって使いやすいです。
いくつかのサンプルコードとチュートリアルも公開されています。
pyro/examples at dev · uber/pyro · GitHub
Welcome to Pyro Examples and Tutorials! — Pyro Tutorials 0.3.0 documentation
SVGD(Stein Variational Gradient Descent)法による最適化
以前興味を持っていたカーネルを用いる確率分布関数間の最適化の手法で並列化がしやすい形になっています。
論文で説明されているコードに落とし込める程度の数式を追った結果です。
gist.github.com
少し古い研究(2016年)ですがGANバージョンも公開されています。
Tensorflowで実装できたはず です。
https://github.com/xiangze/SVGD
pyroでも実装を組み込むべきかがissueに上がっています。
Stein variational gradient descent, Stein message passing · Issue #1257 · uber/pyro · GitHub
その他所感
Bayesian Data Analysis(BDA)を読んでいますがなかなか進みません。
Bayesian Data Analysis (Chapman & Hall/CRC Texts in Statistical Science)
- 作者: Andrew Gelman,John B. Carlin,Hal S. Stern,David B. Dunson,Aki Vehtari,Donald B. Rubin
- 出版社/メーカー: Chapman and Hall/CRC
- 発売日: 2013/11/05
- メディア: ハードカバー
- この商品を含むブログを見る