Bayesian Network的辅助模型

Bayesian Network是有向无环图(directed acyclic graph, DAG),其推断的过程是由根节点(root node)逐次扩散到叶节点(leaf node)的过程,在Bayesian Network的一个节点可以描述为以下方向图:
这里写图片描述
图1 Bayesian Network的一个节点
图1中 Z j 是Bayesian Network中的一个节点,即一个随机变量, P a j 是它的Parents(父节点)。设 p θ ( Z j | P a j ) = N ( Z j   ;   h θ ( P a j ) , σ z 2 I ) ,表示在给定Parents时, Z j 是以 h θ ( P a j ) 为中心的正态分布。在我们用MC(蒙地卡罗)方法进行推断时,为获得 Z j 的样本,需要先得到 P a j 的样本 p a j ,然后通过 p θ ( Z j | P a j = p a j ) = N ( Z j   ;   h θ ( p a j ) , σ z 2 I ) 抽样才能得到,即构造了一个新的分布后再抽样。
文章《Fast Gradient-Based Inference with Continuous Latent Variable Models in Auxiliary Form》为我们提出了一种辅助模型,该模型简单地可见图2:
这里写图片描述
图2 辅助模型
辅助模型在原有的模型上添加了一个新的随机变量 E j 原来的 p θ ( Z j | P a j ) 成为了新的模型 p ^ θ ( Z j , E j | P a j ) ,令 p θ ( Z j | P a j ) p ^ θ ( Z j , E j | P a j ) 的边沿分布:

p θ ( Z j | P a j ) = E j p ^ θ ( Z j , E j | P a j )   d E j = E j p ^ θ ( Z j | P a j , E j ) p ^ θ ( E j | P a j )   d E j E j  is independent to  P a j , s o = E j p ^ θ ( Z j | P a j , E j ) p ^ θ ( E j )   d E j ( 1 )

上式中 p ^ θ ( Z j | P a j , E j ) 被称为conditionally deterministic variables的密度,它是 δ ( ) 函数,即 P a j E j 一旦确定,则 Z j 便能确定,不再是随机量。我们令:
z j = g θ ( p a j , e j ) so that p ^ θ ( Z j = z j | P a j = p a j , E j = e j ) = δ ( z j g θ ( p a j , e j ) ) ( 2 )

式中 g θ ( p a j , e j ) 是我们可以选择的生成函数,将(2)代入(1)有:
p θ ( Z j = z j | P a j = p a j ) = e δ ( z j g θ ( p a j , e j ) ) p ^ θ ( e )   d e ( 3 )

根据 δ ( ) 性质,则有: z j = g θ ( p a j , e j )
假设图1所反映的条件分布是正态分布:
p θ ( Z j = z j | P a j = p a j ) = N ( z j ; h θ ( p a j ) , σ z 2 I ) ( 4 )

式中 h θ ( p a j ) 是变量 Z j 的所有父节点参与的一个映射, p θ ( Z j = z j | P a j = p a j ) 是以这个映射的像为均值的正态分布,映射可以由一层(或多层)神经网络实现。
设计生成函数 g θ ( ) 如下:
z j = g θ ( p a j , e j ) = h θ ( p a j ) + e j σ z ( 5 ) 其中, e j N ( 0 , I ) e j = z j h θ ( p a j ) σ z N ( 0 , I ) z j N ( h θ ( p a j ) , σ z 2 I ) ( 6 )

代入(3)即有:
e δ ( z j g θ ( p a j , e j ) ) p ^ θ ( e )   d e = N ( z j ; h θ ( p a j ) , σ z 2 I ) ( 7 )

由此例可见,加入了辅助变量,并不影响原来的变量关系和概率分布。但我们在产生 Z j 的样本时的方法不同:
1、原来模型,是从(4)式所定义的分布: N ( z j ; h θ ( p a j ) , σ z 2 I ) 进行抽样;
2、辅助模型,是从 e j N ( 0 , I ) 中进行抽样,然后代入生成函数产生: z j = g θ ( p a j , e j ) = h θ ( p a j ) + e j σ z
由上比较可见,采用辅助模型在实现时是要简单一点的。其实在VAE的实现时,对CODE进行抽样就是这样完成的:
1、Encoder对输入样本 x j (例如:MNIST图),进行编码,这相当于 h θ ( p a j ) ,此时的 p a j 就是Encoder输入的 x j ,编码Code相当于 z j
2、Decoder对 z j 的抽样进行映射得到 x j ^ 。其概率图如下:
这里写图片描述
图3 VAE概率图模型
具体实现时,在VAE原来模型上增加了辅助变量,产生了新的辅助模型,如图:
这里写图片描述
图4 VAE实现模型
其中 Z j 抽样是按公式(5)实现的。
参考:
1、《Fast Gradient-Based Inference with Continuous Latent Variable Models in Auxiliary Form》Diederik P. Kingma 2013.6

Diederik P. Kingma在2014年,发表了著名的《Auto-Encoding Variational Bayes》,提出了VAE模型,可以说[1]就是VAE的先导。

猜你喜欢

转载自blog.csdn.net/StreamRock/article/details/81836416