首先介绍几个很不错的介绍BNN的blog(按易于理解的推荐阅读顺序)(可能有的需要购买才能读):
https://medium.com/@joeDiHare/deep-bayesian-neural-networks-952763a9537:
这篇博客里讲了一个很重要的总结,实现BNN的三个思路:
Here’s my take on three approaches.
- Approximating the integral with MCMC
- Using black-box variational inference (with
edward
)- Using MC dropout
关于Variational Inference,可以看这个:https://medium.com/@jonathan_hui/machine-learning-variational-inference-273d8e6480bb
不过说实话确实不好懂。
然而,上面 提到的,两年前很热门的Edward这个package,到底用的是MCMC还是VI,这个blog里的观点好像与第一篇不一样:
https://brendanhasz.github.io/2018/12/03/tfp-regression.html
然后我发现,根据这个介绍Edward 和Edward2 的文章里, 可以看出, Edward同时支持MCMC和VI: https://github.com/google/edward2/blob/master/Upgrading_From_Edward_To_Edward2.md
ok,扯完上面这一堆,我感觉最好的一个带 code的blog是:https://towardsdatascience.com/making-your-neural-network-say-i-dont-know-bayesian-nns-using-pyro-and-pytorch-b1c24e6ab8cd
(未完,maybe待续)