【深度学习系列】贝叶斯神经网络

没有免费的午餐定律
如果一个算法对某些问题有效,那么它一定在另外一些问题比纯随机搜索方法更差。

推荐学习贝叶斯神经网络资料:
[1] https://www.bilibili.com/video/BV1TL4y187qF?spm_id_from=333.337.search-card.all.click

[2] https://zhuanlan.zhihu.com/p/81170602

推荐的工具:
基于pytorch的Pyro以及基于tensorflow的Edward。

其他资源:
https://github.com/JavierAntoran/Bayesian-Neural-Networks

  • 贝叶斯神经网络(BNN)的优缺点:

优点:鲁棒

缺点:耗时,收敛慢,很难计算不适用于参数非常多的深度神经网络。

  • 贝叶斯神经网络与频率理论的区别

贝叶斯神经网络是对可信度的衡量,有先验概率,估计也是一个概率分布
然而概率理论要求对事件采样达到一个极限,没有先验概率,估计是一个数。例如抛硬币就是一个概率理论的代表。

【深度学习系列】贝叶斯神经网络_第1张图片
【深度学习系列】贝叶斯神经网络_第2张图片
如何设计贝叶斯神经网络
组成部分:一个神经网络+一个统计模型+先验概率和似然概率
【深度学习系列】贝叶斯神经网络_第3张图片
统计模型的常见为概率图模型(PGM),神经网络的边就是分布概率,
统计模型结合神经网络的结构:
【深度学习系列】贝叶斯神经网络_第4张图片
变分推断算法【深度学习系列】贝叶斯神经网络_第5张图片

神经网络模型
神经网络模型是一个条件分布模型 P ( y ∣ x , w ) P(y|x,w) P(yx,w),即输入样本 x x x预测 y y y的分布, w w w为神经网络的权重。神经网络的学习被视作一个最大似然估计(MLE):
w M L E = arg max ⁡ l o g P ( D ∣ w ) w^{MLE} = \argmax log P(D|w) wMLE=argmaxlogP(Dw)
其中 D D D为训练数据集。最大似然估计的过程中,权重的取值是没有先验概率的。一旦权重取值引入先验概率,模型的预测就变成了一个最大后验概率(MAP)。

贝叶斯估计同样引用先验概率的假设,但是并不是求最大值,而是一个权重的后验概率 P ( w ∣ D ) P(w|D) P(wD)。基于 w w w输入 x x x预测输出 y y y的概率模型为:
P ( y ∣ x ) = E P ( w ∣ D ) [ P ( y ∣ x , w ) ] P(y|x) = E_{P(w|D)}[P(y|x,w)] P(yx)=EP(wD)[P(yx,w)]

基于Pyro的BNN代码实现:

你可能感兴趣的:(深度学习系列,深度学习,神经网络,机器学习)