没有免费的午餐定律
如果一个算法对某些问题有效,那么它一定在另外一些问题比纯随机搜索方法更差。
推荐学习贝叶斯神经网络资料:
[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)的优缺点:
优点:鲁棒
缺点:耗时,收敛慢,很难计算不适用于参数非常多的深度神经网络。
- 贝叶斯神经网络与频率理论的区别
贝叶斯神经网络是对可信度的衡量,有先验概率,估计也是一个概率分布
然而概率理论要求对事件采样达到一个极限,没有先验概率,估计是一个数。例如抛硬币就是一个概率理论的代表。
如何设计贝叶斯神经网络
组成部分:一个神经网络+一个统计模型+先验概率和似然概率
统计模型的常见为概率图模型(PGM),神经网络的边就是分布概率,
统计模型结合神经网络的结构:
变分推断算法
神经网络模型
神经网络模型是一个条件分布模型
P
(
y
∣
x
,
w
)
P(y|x,w)
P(y∣x,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(D∣w)
其中
D
D
D为训练数据集。最大似然估计的过程中,权重的取值是没有先验概率的。一旦权重取值引入先验概率,模型的预测就变成了一个最大后验概率(MAP)。
贝叶斯估计同样引用先验概率的假设,但是并不是求最大值,而是一个权重的后验概率
P
(
w
∣
D
)
P(w|D)
P(w∣D)。基于
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(y∣x)=EP(w∣D)[P(y∣x,w)]
基于Pyro的BNN代码实现: