Auto-Encoding Variational Bayes, PGM(概率图模型)

我与影子孤独终老i 提交于 2020-03-06 03:49:56

1. PGM 概率图模型

AVEB(Auto-Encoding Variational Bayes)的思想可以从概率图模型来理解。它是建立在概率图模型Inference中的Variational Inference基础上的。

1.1 Variational Inference

概率图的inference,是一种从概率图模型中获取信息的方式(通俗的来说,就是向模型提问)。inference一般由两种常见的形式:

  • Marginal inference : 用来得到整个系统状态的某一部分(从其他状态变量中marginalize之后)的概率。(以图像处理为例,如果扣掉图像的一块,如何使用其他的图像信息补全这一块缺失的内容)。
  • MAP inference : 最大后验概率,从模型中得到结果。(以图像为例,输入一张图像,通过我们的概率模型,得到它是猫的概率和它是狗的概率)

Variational Inference是把inference问题,考虑成一个优化问题
我们有一组候选的概率分布Q,真实的概率分布记为p(p是未知的,但是我们有服从它的观测结果)。我们的目标则是在Q中找到一个元素q,使得q最接近于p。最后,我们使用p(完全已知的一个分布)来回答上面的inference问题。

这样的问题就涉及到了两个方面:

  • 一个是如何判断p与q的相似程度。
  • 如果找到这个最相似的q。

比较常用的方法是使用KL divergence衡量相似程度,并且使用gradient descent的方法找到最佳的q。

1.2 KL divergence

定义:
KL(qp)=xq(x)logq(x)p(x) KL(q||p) = \sum_{x} q(x)\log \frac{q(x)}{p(x)}

重要性质:
KL(qp)0 KL(q||p) \ge 0

KL(qp)=0, if p=q KL(q||p) = 0 ,\ if \ p =q

KL(qp)KL(pq), if pq KL(q||p) \ne KL(p||q) ,\ if \ p \ne q

在这里,p和q都是归一化的概率分布。但是实际上我们还是不能衡量KL,因为p对我们来说是未知的(intractable)。我们考虑一个更加一般的p分布, 它可能不是归一化的,所以p的表达式为:

p(x1,x2,...,xn;θ)=pˉ(x1,x2,...,xn;θ)Z(θ)=1Z(θ)kϕk(xk;θ) p(x_{1}, x_{2},...,x_{n};\theta) = \frac{\bar p(x_{1}, x_{2},...,x_{n};\theta) }{Z(\theta)} = \frac{1}{Z(\theta)} \prod_{k} \phi_{k}(x_{k};\theta)

ϕk\phi_{k}是一个factor(因子)。看这个表达式我们也可以更好的理解为什么p是intractable。这是由于Z(θ)Z(\theta)是intractable,为了求这个归一化常数,我们需要对所有可能的状态x进行计算,但是鉴于p其实是未知的分布,我们不可能分析它对于所有x状态的可能结果(当然我们可以用monte carto的方法sampling近似)。这里也其实表达了对于一般的分布,我们无法用直接KL衡量它与另一个分布q的相似程度

1.3 The Variational Lower bound

我们先分析下面的等式(直接把新的pˉ\bar p带入KL的表达式):
J(q)=xq(x)logq(x)pˉ(x) J(q) = \sum_{x} q(x)\log \frac{q(x)}{\bar p(x)}

J(q)=xq(x)logq(x)p(x)logZ(θ)=KL(qp)logZ(θ) J(q) = \sum_{x} q(x)\log \frac{q(x)}{p(x)} - \log Z(\theta) = KL(q||p) - \log Z(\theta)

我们可以得到下面的等式不等式:

logZ(θ)=KL(qp)J(q)J(q) \log Z(\theta) = KL(q||p) - J(q) \ge - J(q)

这表示了,J(q)- J(q) 其实是logZ(θ)\log Z(\theta)的一个下界(lower bound)。而KL(qp)KL(q||p)恰好是下界与真实值之间的gap。如果我们尝试最大化这个下界J(q)- J(q) ,那么会促使J(q)- J(q)logZ(θ)\log Z(\theta)变得越来越接近,也就是说他们之间的gap越来越小,也就是达到了最小化KL(qp)KL(q||p)的目的。

J(q)- J(q)被称作 the variational lower bound 或者 the evidence lower bound (ELBO)。

J(q)=xq(x)logq(x)+xq(x)logpˉ(x) -J(q) = -\sum_{x} q(x)\log q(x) + \sum_{x} q(x)\log \bar p(x)

J(q)=Eq(x)[logpˉ(x)logq(x)] -J(q) = E_{q(x)}[\log \bar p(x) - \log q(x)]

通常上面的结论也被写为:

logZ(θ)Eq(x)[logpˉ(x)logq(x)]=L(p,q) \log Z(\theta) \ge \mathbb{E}_{q(x)}[\log \bar p(x) - \log q(x)] = \mathcal{L}(p,q)
对这个表达式求相对于q分布的期望值。

2. Black-box variational inference

2.1 gradient descent

这是一个用来最大化ELBO的算法,它的核心思想很简单,它不在乎p和q的分布具体是什么,而单纯的只考虑他们的梯度,然后使用梯度下降(gradient descent)来优化目标函数

  • q分布的参数为ϕ\phi,p分布的参数为θ\theta。所以我们需要分别对ELBO对ϕ\phiθ\theta进行求导。
  • 也就引出的它的唯一一个前提条件(或者说假设):q是相对于ϕ\phi可微的(differentiable)。

我们需要计算的梯度为:
θ,ϕEqϕ(z)[logpθ(z)logqϕ(z)] \nabla_{\theta, \phi} \mathbb{E}_{q_{\phi}(z)}[\log p_{\theta}(z) - \log q_{\phi}(z) ]
注意这里的标记和前面的不一样了,在这里z是我们在这个inference中想要求的量,x是它的输入值,p可以理解为我们的观测数据,q是我们预测模型。

2.2 Score function gradient estimator

我们把上面的梯度公式分开ϕ\phiθ\theta两部分来求:

θ\theta部分:
θEqϕ(z)[logpθ(z)logqϕ(z)]=θEqϕ(z)[logpθ(z)]=Eqϕ(z)[θlogpθ(z)] \nabla_{\theta} \mathbb{E}_{q_{\phi}(z)}[\log p_{\theta}(z) - \log q_{\phi}(z) ] = \nabla_{\theta} \mathbb{E}_{q_{\phi}(z)}[\log p_{\theta}(z)] = \mathbb{E}_{q_{\phi}(z)}[\nabla_{\theta} \log p_{\theta}(z)]

这样我们可以通过Monte Carlo来对Δθlogpθ(z)\Delta_{\theta} \log p_{\theta}(z)进行sample,得到它的结果。

ϕ\phi部分:
ϕEqϕ(z)[logpθ(z)logqϕ(z)] \nabla_{\phi} \mathbb{E}_{q_{\phi}(z)}[\log p_{\theta}(z) - \log q_{\phi}(z) ]

这一个部分则更为复杂,因为它涉及到的期望的分布也是和ϕ\phi相关的。我们可以通过score function estimator求(可以在这篇文章的 附录B中得到下面公式的证明 paper):

ϕEqϕ(z)[logpθ(z)logqϕ(z)]=Eqϕ(z)[(logpθ(z)logqϕ(z))ϕlogqϕ(z)] \nabla_{\phi} \mathbb{E}_{q_{\phi}(z)}[\log p_{\theta}(z) - \log q_{\phi}(z) ] = \mathbb{E}_{q_{\phi}(z)} [(\log p_{\theta}(z) - \log q_{\phi}(z)) \nabla_{\phi}\log q_{\phi}(z)]

然后我们就可以通过Monte Carlo来sample期望的结果了。
但是这个算法存在一个很大的问题 :high variance

3. Our problem - Latent variable model

在继续讲解算法之前,我们先把我们的问题整理一下,并且把前面的公式,使用符合问题的记号重新在这里表达:

  • 我们假设我们在这里的问题是生成随机的人脸图片。
  • 准备阶段时候,我们有一系列的人脸图片数据集{x}。
  • 我们的目的是,使用算法在这些图片中找到一定的规律,encode这些图片为一系列的参数(特征)z:
    P(zx) P(z|x)
  • 我们随机给出一组参数(特征)z,可以通过算法生成一张新的人脸的图像x:
    P(xz) P(x|z)

我们在这里的p分布为:

pθ(zx)=pθ(x,z)pθ(x) p_{\theta}(z | x) = \frac{ p_{\theta}(x, z) }{p_{\theta}(x)}

J(q)=(zx)qϕ(zx)logqϕ(zx)pθ(z,x)=(zx)qϕ(zx)logqϕ(zx)pθ(zx)logpθ(x)=L(p,q) J(q) = \sum_{(z|x)} q_{\phi}(z | x)\log \frac{q_{\phi}(z | x)}{p_{\theta}(z, x)} = \sum_{(z|x)} q_{\phi}(z | x)\log \frac{q_{\phi}(z | x)}{p_{\theta}(z | x)} - \log p_{\theta}(x) = -\mathcal{L}(p,q)

我们可以得到下面的等式不等式:

logpθ(x)=KL(qϕ(zx)pθ(zx))+L(p,q) \log p_{\theta}(x) = KL(q_{\phi}(z | x)||p_{\theta}(z | x)) + \mathcal{L}(p,q)

4. Auto-encoding reformulation

这里对ELBO的公式进行了简单的reform:

logpθ(x)=KL(qϕ(zx)pθ(zx))(zx)qϕ(zx)logqϕ(zx)pθ(z,x) \log p_{\theta}(x) = KL(q_{\phi}(z | x)||p_{\theta}(z | x)) - \sum_{(z|x)} q_{\phi}(z | x)\log \frac{q_{\phi}(z | x)}{p_{\theta}(z, x)}

=(zx)qϕ(zx)log[pθ(xz)qϕ(zx)pθ(zx)pθ(xz)](zx)qϕ(zx)logqϕ(zx)pθ(z)pθ(z)pθ(z,x) = \sum_{(z|x)} q_{\phi}(z | x)\log [p_{\theta}(x |z)\frac{q_{\phi}(z | x)}{p_{\theta}(z | x) p_{\theta}(x |z)}] - \sum_{(z|x)} q_{\phi}(z | x)\log \frac{q_{\phi}(z | x)}{p_{\theta}(z)} \frac{p_{\theta}(z)}{p_{\theta}(z, x)}

=Eqϕ(zx)[log[pθ(xz)]KL(qϕ(zx)pθ(z))+(zx)qϕ(zx)logqϕ(zx)pθ(zx)pθ(xz)pθ(z,x)pθ(z) = \mathbb{E}_{q_{\phi}(z | x)}[\log [p_{\theta}(x |z)] - KL(q_{\phi}(z | x) || p_{\theta}(z)) + \sum_{(z|x)} q_{\phi}(z | x) \log \frac{q_{\phi}(z | x)}{p_{\theta}(z | x) p_{\theta}(x |z)}\frac{p_{\theta}(z, x)}{p_{\theta}(z)}

=Eqϕ(zx)[log[pθ(xz)]KL(qϕ(zx)pθ(z))+KL(qϕ(zx)pθ(zx)) = \mathbb{E}_{q_{\phi}(z | x)}[\log [p_{\theta}(x |z)] - KL(q_{\phi}(z | x) || p_{\theta}(z)) + KL(q_{\phi}(z | x) || p_{\theta}(z | x))

(因为上面最右边一个很长的表达式也是一个KL,而且我们知道KLdivergence是非负的)

logpθ(x)Eqϕ(zx)[log[pθ(xz)]KL(qϕ(zx)pθ(z)) \log p_{\theta}(x) \ge \mathbb{E}_{q_{\phi}(z | x)}[\log [p_{\theta}(x |z)] - KL(q_{\phi}(z | x) || p_{\theta}(z))

  • 上面的右边是在z~$q(z|x)上sample的期望和divergence。相当于前面我们提到的,提供一个x(图像),把它encode成一个特征表达z,所以在这里q就是相当于是一个encoder
  • Eqϕ(zx)[log[pθ(xz)]\mathbb{E}_{q_{\phi}(z | x)}[\log [p_{\theta}(x |z)]这一项则是一个maximal log-likelihood函数,它表达了如果给到我们的提取的z特征,能不能最大程度恢复原本的图像x。p就相当于一个decoder
  • KL(qϕ(zx)pθ(z))KL(q_{\phi}(z | x) || p_{\theta}(z))这一项是一个的divergence。用来限制qϕ(zx)q_{\phi}(z | x),以保证它不会每次都生成一样的特征qϕ(z)q_{\phi}(z)

5. The Reparameterization Trick

这里考虑对分布重新进行参数化,以简化求梯度的难度。
原本的分布为:

qθ(zx) q_{\theta}(z | x)

假设误差是正态分布:

ϵp(ϵ) \epsilon \sim p(\epsilon)

假设z的分布是依赖于x的函数,同时包含一定的误差ϵ\epsilon:

z=gϕ(ϵ,x) z = g_{\phi}(\epsilon, x)

z=gϕ,σ(ϵ)=μ+ϵσ z = g_{\phi, \sigma}(\epsilon) = \mu + \epsilon \cdot \sigma

所以对任意一个函数的期望的梯度可以表示为:

ϕEzqϕ(zx)[f(x,z)]=ϕEϵp(ϵ)[f(x,gϕ(ϵ,x))]=Eϵp(ϵ)[ϕf(x,gϕ(ϵ,x))] \nabla_{\phi} \mathbb{E} _{z \sim q_{\phi}(z|x)} [f(x,z)] = \nabla_{\phi} \mathbb{E} _{\epsilon \sim p(\epsilon )} [f(x,g_{\phi}(\epsilon, x))] = \mathbb{E} _{\epsilon \sim p(\epsilon )} [ \nabla_{\phi} f(x,g_{\phi}(\epsilon, x))]

用这样的重新参数化,可以更加轻松的解决前面的梯度问题。而且在这种方法下没有那么多的variance (这个在文章中有更加细节的讨论)

6. Neural Network pick q and p

接下来就是使用神经网络来选择适当的decoder(p)和encoder(q)的问题了。

7. Loss function in Neural Network

7.1 reformulation of ELBO

从上面的推导,我们得到:

logpθ(x)=Eqϕ(zx)[log[pθ(xz)]KL(qϕ(zx)pθ(z))+KL(qϕ(zx)pθ(zx)) \log p_{\theta}(x) = \mathbb{E}_{q_{\phi}(z | x)}[\log [p_{\theta}(x |z)] - KL(q_{\phi}(z | x) || p_{\theta}(z)) + KL(q_{\phi}(z | x) || p_{\theta}(z | x))

可以写为:

logpθ(x)Eqϕ(zx)[log[pθ(xz)]+KL(qϕ(zx)pθ(z))=KL(qϕ(zx)pθ(zx)) \log p_{\theta}(x) - \mathbb{E}_{q_{\phi}(z | x)}[\log [p_{\theta}(x |z)] + KL(q_{\phi}(z | x) || p_{\theta}(z)) = KL(q_{\phi}(z | x) || p_{\theta}(z | x))

所以其实我们的目标函数其实可以看作为最小化:

logpθ(x)Eqϕ(zx)[log[pθ(xz)]+KL(qϕ(zx)pθ(z)) \log p_{\theta}(x) - \mathbb{E}_{q_{\phi}(z | x)}[\log [p_{\theta}(x |z)] + KL(q_{\phi}(z | x) || p_{\theta}(z))

  • 第一项是最小化从x通过decode p恢复的图像和原本的输入图像的差异。
  • 第二项则是前面解释过的regulatization项。

7.2 Neural Network distribution

使用前面提到的reparameterization之后,我们的分布则变为:

p(xz)=N(x;μ(z),diag(σ(z))2) p(x|z) = \mathcal{N} (x; \vec\mu(z), diag(\vec\sigma(z))^{2})

p(z)=N(z;0,I) p(z) = \mathcal{N}(z;0,I)

q(zx)=N(z;μ(x),diag(σ(x))2) q(z|x) = \mathcal{N}(z;\vec\mu(x), diag(\vec\sigma(x))^{2})

7.3 Loss function

带入到我们的reformulation ELBO表达式中:

logpθ(x)Eqϕ(zx)[log[pθ(xz)]+KL(N(z;μ(x),diag(σ(x))2)N(z;0,I)) \log p_{\theta}(x) - \mathbb{E}_{q_{\phi}(z | x)}[\log [p_{\theta}(x |z)] + KL(\mathcal{N}(z;\vec\mu(x), diag(\vec\sigma(x))^{2}) || \mathcal{N}(z;0,I))

下图来自Medium
在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!