算法思路
普通的神经网络的权值是确定的,而贝叶斯神经网络的权值是不确定的,他服从于一个概率分布,这便是贝叶斯神经网络和普通神经网络的差别。
可以简单认为,贝叶斯神经网络是无穷个神经网络的融合,不过给每个神经网络标上一个重要度而已。
普通神经网络训练其权重时,采用的方法无外乎两种:最大似然估计和最大后验估计。即:
w M L E = arg max w log P ( D ∣ w ) = arg max w ∑ i log P ( y i ∣ x i , w ) \begin{aligned} w^{MLE} &= \arg\max_{w} \log P(D|w)\\ &= \arg\max_w\sum_i\log P(y_i|x_i,w) \end{aligned} wMLE=argwmaxlogP(D∣w)=argwmaxi∑logP(yi∣xi,w)
w M A P = arg max w log P ( w ∣ D ) = arg max w log P ( D ∣ w ) + log P ( w ) − P ( D ) = arg max w log P ( D ∣ w ) + log P ( w ) \begin{aligned} w^{MAP}&=\arg\max_w\log P(w|D)\\ &= \arg\max_w\log P(D|w)+\log P(w) - P(D)\\ &= \arg\max_w\log P(D|w)+\log P(w) \end{aligned} wMAP=argwmaxlogP(w∣D)=argwmaxlogP(D∣w)+logP(w)−P(D)=argwmaxlogP(D∣w)+logP(w)
普通的神经网络就是这样求最值,其每个节点都是一个确定的值, w ⋆ w^\star w⋆。
但是神经网络是在假设 P ( w ) P(w) P(w)为先验估计的条件下,直接求解 P ( w ∣ D ) P(w|D) P(w∣D),每个节点都是一个概率分布。
模型推导
我们的最终目标是求出,对于输入 x x x,输出 y y y的概率分布,即 P ( y ∣ x ) P(y|x) P(y∣x),显然:
P ( y ∣ x ) = E P ( w ∣ D ) P ( y ∣ x , w ) P(y|x)=\mathbb E_{P(w|D)}P(y|x,w) P(y∣x)=EP(w∣D)P(y∣x,w