变分推断(variational inference)
variational inference
大家对贝叶斯公式应该都很熟悉
我们称
P(Z|X)
为posterior distribution
。posterior distribution
的计算通常是非常困难的,为什么呢?
假设
Z
是一个高维的随机变量,如果要求
P(Z=z|X=x)
,我们不可避免的要计算
∫zp(X=x,Z=z)dz
,由于
Z
是高维随机变量,这个积分是相当难算的。
variational inference
就是用来计算posterior distribution
的。
core idea
variational inference
的核心思想包含两步:
- 假设分布 q(z;λ) (这个分布是我们搞得定的,搞不定的就没意义了)
- 通过改变分布的参数 λ , 使 q(z;λ) 靠近 p(z|x)
总结称一句话就是,用一个简单的分布( q(z;λ) )拟合复杂的分布( p(z|x) )
这种策略将计算
p(z|x)
的问题转化成优化问题了
收敛后,就可以用 q(z;λ) 来代替 p(z|x) 了
公式推倒
等式的两边同时对分布 Q(z) 求期望,得
我们的目标是使 q(z:λ) 靠近 p(z|x) ,就是 minmizeλKL(q(z;λ)||p(z|x)) ,由于 KL(q(z;λ)||p(z|x)) 中包含 p(z|x) ,这项非常难求。将 λ 看做变量时, logP(x) 为常量,所以, minmizeλKL(q(z;λ)||p(z|x)) 等价于 maxmizeλEq(z;λ)logp(x,z)q(z;λ) 。 Eq(z;λ)[logp(x,z)−logq(z;λ)] 称为Evidence Lower BOund(
ELBO
)。
现在,variational inference
的目标变成
为什么称之为ELBO
呢?
p(x)
一般被称之为evidence
,又因为
KL(q||p)>=0
, 所以
p(x)>=Eq(z;λ)[logp(x,z)−logq(z;λ)]
, 这就是为什么被称为ELBO
ELBO
继续看一下ELBO
The first term represents an energy. The energy encourages q to focus probability mass where the model puts high probability, p(x,z) . The entropy encourages q to spread probability mass to avoid concentrating to one location.
q(Z)
Z
包含K个独立部分(K 维, 当然,第i维也可能是高维向量),我们假设:
这个被称为
mean field approximation
。关于
mean field approximation
,
https://metacademy.org/graphs/concepts/mean_field
ELBO
则变成
第一项为
energy
, 第二项为
H(q)
energy
符号的含义:
先处理第一项:
其中 q∗j(Zj;λj)=1Cexp[Eq(Z¯j;λ¯j)logp(X,Z)] , C 保证 q∗j(Zj;λj) 是一个分布。 C 与分布的参数 λ¯j 有关,与变量无关!!
H(q)
再处理第二项:
再看ELBO
经过上面的处理,ELBO变为
再看上式 {} 中的项:
所以ELBO又可以写成:
我们要 maxmizeELBO ,如何更新 qi(Zi;λi) 呢?
从
可以看出,当 qi(Zi;λj)=q∗i(Zi;λi) 时, KL(qi(Zi;λj)||q∗i(Zi;λi))=0 。 这时,ELBO取最大值。
所以参数更新策略就变成了
关于 q∗i(Zi;λi)
qi 是要更新的节点, X 是观测的数据,由于
Markov Blanket
(下面介绍),更新公式变成:
由于式子中和 Zi 无关的项都被积分积掉了,所以写成了
Markov Blanket
这种形式
Markov Blanket
In machine learning, the Markov blanket for a node
A
in a Bayesian network is the set of nodes
mb(A)
composed of
A′s
parents, its children, and its children’s other parents. In a Markov random field, the Markov blanket of a node is its set of neighboring nodes.
Every set of nodes in the network is conditionally independent of
A
when conditioned on the set
mb(A)
, that is, when conditioned on the Markov blanket of the node
A
. The probability has the Markov property; formally, for distinct nodes
A
and
B
:
The Markov blanket of a node contains all the variables that shield the node from the rest of the network. This means that the Markov blanket of a node is the only knowledge needed to predict the behavior of that node.
参考资料
https://en.wikipedia.org/wiki/Markov_blanket
http://edwardlib.org/tutorials/inference
http://edwardlib.org/tutorials/variational-inference