L4 Latent Variable Model

Lecture4 Latent Variable Model

在之前我们所介绍的Autoregressive Model和Flow Model中,讨论的都是observable的数据,及一切数据都是可以观测到的。这一讲主要讨论的是latent variable model,即有些变量我们是无法直接观测的。

Latent Variable

首先,我们需要理解什么是latent variable。Lecture中举了一个例子
在这里插入图片描述

上图中这几只柯基犬,他们所在的长椅,身后的大树,这些都是我们可以从图中直接观测到的。而图中整体的背景,狗分别对应第几个object,所在的位置坐标,这些不是我们能够直接从图上看出来的,就可以理解为latent variable。

然而对我来说,这个例子还是不够形象,因此我Wikipedia了一下,上面是这样解释的:

Latent variables, as created by factor analytic methods, generally represent “shared” variance, or the degree to which variables “move” together.

把这句话与我们的生成任务结合,其实就好理解了,latent variable可以看作是从一类数据中抽象出来的更加general的信息,或者说是一类数据的pattern、mode。比如上图,如果背景是latent variable之一,图中背景是公园里的树和长椅,那么也就意味着这种有狗狗的图片的背景通常和树、公园、长椅相关。

General Latent Variable Model

LVM的general形式可以用下图表示, z z z表示latent variable, x x x是我们的数据。latent variable服从一个概率分布 p Z ( z ) p_{Z}(z) pZ(z),这个分布也是我们给定的。

在这里插入图片描述

和之前一样,我们要解决的还是以下这几大问题:

  • Sample: x ∼ p θ ( x ∣ z ) x \sim p_{\theta}(x|z) xpθ(xz)
  • Inference: p θ ( x )   =   ∑ z p Z ( z ) p θ ( x ∣ z ) p_{\theta}(x)\ =\ \sum_{z}p_{Z}(z)p_{\theta}(x|z) pθ(x) = zpZ(z)pθ(xz)
  • Train: max ⁡ θ   ∑ i log ⁡ p θ ( x ( i ) )   =   max ⁡ θ   ∑ i log ⁡ ∑ z p Z ( z ) p θ ( x ( i ) ∣ z ) \max_{\theta}\ \sum_{i}\log p_{\theta}(x^{(i)})\ =\ \max_{\theta}\ \sum_{i}\log \sum_{z}p_{Z}(z)p_{\theta}(x^{(i)}|z) maxθ ilogpθ(x(i)) = maxθ ilogzpZ(z)pθ(x(i)z)
  • Representation: x → z x \rightarrow z xz

Variational Auto Encoder

首先,我们来看我们的training objective:
max ⁡ θ    ∑ i log ⁡ ∑ z p Z ( z ) p θ ( x ( i ) ∣ z ) \max_{\theta}\ \ \sum_{i}\log \sum_{z}p_{Z}(z)p_{\theta}(x^{(i)}|z) θmax  ilogzpZ(z)pθ(x(i)z)
很明显的一个问题是 z z z的取值,如果 z z z的取值比较少,我们假设是三种取值 A , B , C A,B,C A,B,C,并且每一种取值等概率,那么我们就可以直接用Gaussians来fit p θ ( x ∣ z ) p_{\theta}(x|z) pθ(xz):
p θ ( x ∣ z = k )   =   1 ( 2 π ) n / 2 ∣ Σ k ∣ 1 2 e x p ( − 1 2 ( x − μ k ) T Σ k − 1 ( x − μ k ) ) p_{\theta}(x|z=k)\ =\ \frac{1}{(2\pi)^{n/2}|\Sigma_{k}|^{\frac{1}{2}}}exp(-\frac{1}{2}(x-\mu_{k})^T \Sigma_{k}^{-1}(x-\mu_k)) pθ(xz=k) = (2π)n/2Σk211exp(21(xμk)TΣk1(xμk))
那么training objective就变成了mixture of Gaussians:
max ⁡ μ , Σ     ∑ i log ⁡ [ 1 3 1 ( 2 π ) n / 2 ∣ Σ A ∣ 1 2 e x p ( − 1 2 ( x − μ A ) T Σ A − 1 ( x − μ A ) ) + 1 3 1 ( 2 π ) n / 2 ∣ Σ B ∣ 1 2 e x p ( − 1 2 ( x − μ B ) T Σ B − 1 ( x − μ B ) ) + 1 3 1 ( 2 π ) n / 2 ∣ Σ C ∣ 1 2 e x p ( − 1 2 ( x − μ C ) T Σ C − 1 ( x − μ C ) ) ] \max_{\mu, \Sigma}\ \ \ \sum_{i}\log [\frac{1}{3} \frac{1}{(2\pi)^{n/2}|\Sigma_{A}|^{\frac{1}{2}}}exp(-\frac{1}{2}(x-\mu_{A})^T \Sigma_{A}^{-1}(x-\mu_A)) + \\ \frac{1}{3} \frac{1}{(2\pi)^{n/2}|\Sigma_{B}|^{\frac{1}{2}}}exp(-\frac{1}{2}(x-\mu_{B})^T \Sigma_{B}^{-1}(x-\mu_B)) + \\ \frac{1}{3} \frac{1}{(2\pi)^{n/2}|\Sigma_{C}|^{\frac{1}{2}}}exp(-\frac{1}{2}(x-\mu_{C})^T \Sigma_{C}^{-1}(x-\mu_C))] μ,Σmax   ilog[31(2π)n/2ΣA211exp(21(xμA)TΣA1(xμA))+31(2π)n/2ΣB211exp(21(xμB)TΣB1(xμB))+31(2π)n/2ΣC211exp(21(xμC)TΣC1(xμC))]

在这里插入图片描述

上图是一个二维的例子。

那如果 z z z的取值非常多,我们没办法一一列举呢?事实上这才是绝大多数情况。一种方法是prior sampling

Prior Sampling

主要思想是既然 z z z取值太多,那么我们就sample一些 z z z做一个approximation。
∑ i log ⁡ ∑ z p Z ( z ) p θ ( x ( i ) ∣ z )   ≃ ∑ i log ⁡ 1 K ∑ k = 1 K p θ ( x ( i ) ∣ z k ( i ) )       z k ( i ) ∼ p Z ( z ) \sum_{i}\log \sum_{z}p_{Z}(z)p_{\theta}(x^{(i)}|z)\ \simeq \sum_{i}\log \frac{1}{K}\sum_{k=1}^{K}p_{\theta}(x^{(i)}|z^{(i)}_{k})\ \ \ \ \ z^{(i)}_{k} \sim p_{Z}(z) ilogzpZ(z)pθ(x(i)z) ilogK1k=1Kpθ(x(i)zk(i))     zk(i)pZ(z)
这样做有两个问题:

  1. 在有些情况里,sample z z z from p Z ( z ) p_{Z}(z) pZ(z)可能比较困难
  2. sample出来的 z z z与我们的 x x x不相关,这种概率非常大

Importance Sampling

来看怎么改进,下面需要一些数学推导,我们先把objective抽象成如下形式: E z ∼ p Z ( z ) f ( z ) \mathbb{E}_{z \sim p_{Z}(z)}f(z) EzpZ(z)f(z)
E z ∼ p Z ( z ) [ f ( z ) ]   =   ∑ z p Z ( z ) f ( z ) =   ∑ z q ( z ) q ( z ) p Z ( z ) f ( z ) =   E z ∼ q ( z ) p Z ( z ) q ( z ) f ( z ) \mathbb{E}_{z \sim p_Z(z)}[f(z)]\ =\ \sum_{z}p_Z(z)f(z) \\ =\ \sum_{z}\frac{q(z)}{q(z)}p_{Z}(z)f(z) \\ =\ \mathbb{E}_{z \sim q(z)} \frac{p_Z(z)}{q(z)}f(z) EzpZ(z)[f(z)] = zpZ(z)f(z)= zq(z)q(z)pZ(z)f(z)= Ezq(z)q(z)pZ(z)f(z)
这样一来,我们就把 z z z的概率分布从 p Z ( z ) p_{Z}(z) pZ(z)转移到了 q ( z ) q(z) q(z),于是只要我们让 q ( z ) q(z) q(z)能够满足:

  1. sample z z z很容易
  2. sample出来的 z z z是informative的,与我们的 x x x是相关的

那就可以再使用prior sampling的方法去做approximation了。于是问题转变成了怎么选取 q ( z ) q(z) q(z)。我们先不看第一个要求,先考虑第二个,我们希望sample的 z z z能够和我们的 x x x对应起来,把这句话换个说法,也就是给定 x x x,我们希望sample出来的 z z z的概率越大越好,那不就是 p θ ( z ∣ x )   =   p θ ( x ∣ z ) p Z ( z ) p θ ( x ) p_{\theta}(z|x)\ =\ \frac{p_{\theta}(x|z)p_{Z}(z)}{p_{\theta}(x)} pθ(zx) = pθ(x)pθ(xz)pZ(z)么?

唯一的问题是,我们现在还不确定怎么从这个分布里进行sample。那再换种思路,如果我们令 q ( z ) q(z) q(z)是一个好sample的分布,比如Gaussian,然后让这个 q ( z ) q(z) q(z) p θ ( z ∣ x ) p_{\theta}(z|x) pθ(zx)越接近越好不就解决了么?如何measure两个分布的差距?自然想到用 K L KL KL Divergence。
m i n q ( z ) K L ( q ( z ) ∣ ∣ p θ ( z ∣ x ) ) = m i n q ( z ) E z ∼ q ( z ) log ⁡ ( q ( z ) p θ ( z ∣ x ) ) = m i n q ( z ) E z ∼ q ( z ) log ⁡ ( q ( z ) p θ ( x ∣ z ) p Z ( z ) / p θ ( x ) ) = m i n q ( z ) E z ∼ q ( z ) [ log ⁡ q ( z ) − log ⁡ p θ ( x ∣ z ) − log ⁡ p Z ( z ) ] + log ⁡ p θ ( x ) min_{q(z)} KL(q(z) || p_{\theta}(z|x)) \\ = min_{q(z)} \mathbb{E}_{z \sim q(z)} \log(\frac{q(z)}{p_{\theta}(z|x)}) \\ = min_{q(z)} \mathbb{E}_{z \sim q(z)} \log(\frac{q(z)}{p_{\theta}(x|z)p_{Z}(z)/p_{\theta}(x)})\\ = min_{q(z)} \mathbb{E}_{z \sim q(z)} [\log q(z) - \log p_{\theta}(x|z) - \log p_{Z}(z)] + \log p_{\theta}(x) minq(z)KL(q(z)∣∣pθ(zx))=minq(z)Ezq(z)log(pθ(zx)q(z))=minq(z)Ezq(z)log(pθ(xz)pZ(z)/pθ(x)q(z))=minq(z)Ezq(z)[logq(z)logpθ(xz)logpZ(z)]+logpθ(x)

Amortized Inference

考虑到当inference的需求量比较高时,每次我们都需要train一个独立的 q ( z ) q(z) q(z),效率比较低。于是我们可以也把 q ( z ) q(z) q(z)做一个parameterize,就是用neural network来拟合 q ( z ) q(z) q(z),于是 q ( z ) q(z) q(z)就变成了 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx)。这样做的好处是比较快,但是准确性自然就有所下降。

Variational Lower Bound

我们把上面得到的式子做一个移项就能够得到
log ⁡ p θ ( x )   =   E z ∼ q ϕ ( z ) [ log ⁡ p θ ( x ∣ z ) + log ⁡ p Z ( z ) − log ⁡ q ϕ ( z ) ] + K L ( q ϕ ( z ∣ x ) ∣ ∣ p θ ( x ∣ z ) ) \log p_{\theta}(x)\ =\ \mathbb{E}_{z \sim q_{\phi}(z)} [\log p_{\theta}(x|z) + \log p_{Z}(z) - \log q_{\phi}(z)] + KL(q_{\phi}(z|x) || p_{\theta}(x|z)) logpθ(x) = Ezqϕ(z)[logpθ(xz)+logpZ(z)logqϕ(z)]+KL(qϕ(zx)∣∣pθ(xz))
等式右边第一项就叫做Variational Lower Bound(VLB)。我们的目标是maximize likelihood,也就是等式左边,同时minimize 我们构造出的 q ϕ ( z ) q_{\phi}(z) qϕ(z) p θ ( x ∣ z ) p_{\theta}(x|z) pθ(xz)之间的KL divergence,因此我们的training objective就等价为maximize VLB。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值