xiangze's sparse blog

機械学習、ベイズ統計、コンピュータビジョンと関連する数学について

Bayesian Layerとは

Gaussian ProcessやBayesian CNNなどのニューラルネットを含むような複数の確率的プログラミングモデルで使うためのBaysian Layerに関する情報が公開された。
論文 https://arxiv.org/abs/1812.03973



http://dustintran.com/papers/TranDusenberryVanDerWilkHafner2018_poster.pdf
kerasのlayerとして定義されている。アルゴリズムごとにlayerが用意されていてそれを組み合わせて使うよう。

  • LSTMCellReparameterization
  • Conv2DReparameterization
  • SparseGaussianProcess
  • RealNVP
  • MixofLogistic

などがありそれぞれ対応するkerasのlayerを継承して実装されている。事前分布は多変量正規分布として固定しているのだろうか。

現状のTFPと同じく変分推論の部分はneg_log_likelihood+KLの形で書かないといけないのは従来と変わらない。
ポスターでは既存のTFPでかけるVAEやGANについては書かれていないが組み合わせられるはず。
既存のDenseFlipout, Conv2DFlipoutなどとの関係は不明。

TPU並列化の力でBayesian DNNの事後分布推定が可能という話らしい。

実装の一部はtensor2tensor
github.com

で公開されている。そのうちtensorflow本体に入るかもしれない。

まだEager executionのtestも通ったらしい(?)

Gaussian Processについて
Add GaussianProcess layer. by dustinvtran · Pull Request #1224 · tensorflow/tensor2tensor · GitHub