首先回顾贝叶斯公式: p ( z ∣ x ) = p ( x , z ) p ( x ) = p ( x ∣ z ) p ( z ) p ( x ) p(z|x)=\frac{p(x,z)}{p(x)}=\frac{p(x|z)p(z)}{p(x)} p(z∣x)=p(x)p(x,z)=p(x)p(x∣z)p(z)通常:
引入全概率公式: p ( x ) = ∫ p ( x ∣ z ) p ( z ) d z p(x)=\int p(x|z)p(z)dz p(x)=∫p(x∣z)p(z)dz可以将贝叶斯公式改写为: p ( z ∣ x ) = p ( x ∣ z ) p ( z ) ∫ p ( x ∣ z ) p ( z ) d z p(z|x)=\frac{p(x|z)p(z)}{\int p(x|z)p(z)dz} p(z∣x)=∫p(x∣z)p(z)dzp(x∣z)p(z)当隐变量 z z z是离散型变量时,积分符号改成求和: p ( z ∣ x ) = p ( x ∣ z ) p ( z ) ∑ p ( x ∣ z ) p ( z ) d z p(z|x)=\frac{p(x|z)p(z)}{\sum p(x|z)p(z)dz} p(z∣x)=∑p(x∣z)p(z)dzp(x∣z)p(z)
通常,使用 P P P表示分布函数, p p p表示概率密度函数
在常规的神经网络中,对于一个神经元有:
其中,权重 w i w_{i} wi和偏置 b b b都是确定的一个值,在前向推理过程中,缺少了一定的随机性,如果将权重和偏置视为分布,推理时每次从分布中采样出具体的权重和偏置,就得到了基于贝叶斯的深度学习Bayesian neural networks(BNN)。
正如过去说过的,贝叶斯理论的核心即:一切皆为随机变量,换言之,一切皆分布
下面是一个直观的例子:
该网络分别有两层参数,即对应两层参数的分布。
在深度学习的基础上把权重和偏置变为分布(distribution)就是贝叶斯深度学习。
贝叶斯深度学习有以下优点:
贝叶斯网络(Bayesian network),又称信念网络(belief network),是有向无环图模型(directed acyclic graphical model),是一种概率图模型(概率图模型的核心是多维随机变量的联合概率分布进行计算)。
贝叶斯神经网络(Bayesian neural network)是贝叶斯和神经网络的结合。
贝叶斯神经网络和贝叶斯网络是两个不同的对象。
想要像非贝叶斯神经网络那样进行前向传播,我们可以对贝叶斯神经网络的权重和偏置进行采样,得到一组参数,然后像非贝叶斯神经网络那样使用即可。
当然,我们可以对权重和偏置的分布进行多次采样,得到多个参数组合,参数的细微改变对模型结果的影响就可以体现出来。这也是贝叶斯深度学习的优势之一,多次采样最后一起得到的结果会更加具有鲁棒性。
给定训练集 D = { ( x 1 , y 1 ) , . . . , ( x m , y m ) } D=\left\{(x_{1},y_{1}),...,(x_{m},y_{m})\right\} D={(x1,y1),...,(xm,ym)},训练贝叶斯神经网络,按照贝叶斯公式有: p ( w ∣ x , y ) = p ( y ∣ x , w ) p ( w ) ∫ p ( y ∣ x , w ) p ( w ) d w p(w|x,y)=\frac{p(y|x,w)p(w)}{\int p(y|x,w)p(w)dw} p(w∣x,y)=∫p(y∣x,w)p(w)dwp(y∣x,w)p(w)我们希望得到后验概率 p ( w ∣ x , y ) p(w|x,y) p(w∣x,y),先验概率 p ( w ) p(w) p(w)是提前设置的(初始化),比如初始时令 p ( w ) p(w) p(w)为标准正态分布。
似然 p ( y ∣ x , w ) p(y|x,w) p(y∣x,w)是一个关于 w w w的函数,当 w w w等于某个值时,我们便可以确定分子 p ( y ∣ x , w ) p ( w ) p(y|x,w)p(w) p(y∣x,w)p(w),对于分母,要对 w w w的取值空间进行积分,但 w ∈ R w\in R w∈R,这是非常复杂的计算,因此需要寻求其他近似方法以计算分母。
对于训练,通常有以下三种方法: