【基础知识】VAE 变分推断公式|变分分布|先验分布|后验分布|KL散度|边缘似然
在VAE的上下文中,先验分布提供了对潜在变量应该如何分布的假设,而后验分布则是给定观测数据后,对潜在变量分布的更新。VAE的训练过程涉及到调整编码器和解码器(Decoder)的参数,以最小化重构误差(使解码器输出尽可能接近输入数据)和正则化项(通常是KL散度,使变分后验接近先验)。通过这种方式,VAE能够学习到能够生成数据的有效的潜在表示。
VAE 变分推断公式
这个绿框中的公式是变分推断(Variational Inference)的核心组成部分,用于在贝叶斯模型中近似复杂的后验分布 p ( z ∣ x ) p(z|x) p(z∣x)。变分推断通过引入一个简单的分布 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x),来近似真实的后验分布。
具体来说,绿框中的等式:
log
p
θ
(
x
(
i
)
)
=
D
K
L
(
q
ϕ
(
z
∣
x
(
i
)
)
∣
∣
p
θ
(
z
∣
x
(
i
)
)
)
+
L
(
θ
,
ϕ
;
x
(
i
)
)
\log p_\theta(x^{(i)}) = D_{KL}(q_\phi(z|x^{(i)}) || p_\theta(z|x^{(i)})) + \mathcal{L}(\theta, \phi; x^{(i)})
logpθ(x(i))=DKL(qϕ(z∣x(i))∣∣pθ(z∣x(i)))+L(θ,ϕ;x(i))
解释如下:
-
log
p
θ
(
x
(
i
)
)
\log p_\theta(x^{(i)})
logpθ(x(i)):这是数据点
x
(
i
)
x^{(i)}
x(i)在模型参数
θ
\theta
θ下的对数似然。
-
D
K
L
(
q
ϕ
(
z
∣
x
(
i
)
)
∣
∣
p
θ
(
z
∣
x
(
i
)
)
)
D_{KL}(q_\phi(z|x^{(i)}) || p_\theta(z|x^{(i)}))
DKL(qϕ(z∣x(i))∣∣pθ(z∣x(i))):这是Kullback-Leibler散度,它衡量了变分分布
q
ϕ
(
z
∣
x
(
i
)
)
q_\phi(z|x^{(i)})
qϕ(z∣x(i))与真实后验分布
p
θ
(
z
∣
x
(
i
)
)
p_\theta(z|x^{(i)})
pθ(z∣x(i))之间的差异。KL散度是非负的,它衡量了使用
q
q
q分布来近似
p
p
p分布时的信息损失。
-
L
(
θ
,
ϕ
;
x
(
i
)
)
\mathcal{L}(\theta, \phi; x^{(i)})
L(θ,ϕ;x(i)):这是变分下界(Evidence Lower BOund, 或称ELBO)。变分下界是模型证据的一个下界,通过优化这个下界可以间接地使得变分分布
q
ϕ
q_\phi
qϕ接近真实后验分布
p
θ
p_\theta
pθ。
等式表明,数据点的对数似然可以被分解为两部分:KL散度和ELBO。在实践中,我们无法直接最大化对数似然,因为 p ( z ∣ x ) p(z|x) p(z∣x)是不可知的。相反,我们最大化ELBO,同时保持KL散度尽可能小,从而间接地最大化对数似然。
在变分自编码器(VAE)等模型中,通过优化 ϕ \phi ϕ和 θ \theta θ来最大化ELBO,可以训练模型来生成数据,并学习数据的隐含结构。在此过程中,我们通常忽略KL散度项,因为它不能被直接计算,而是通过优化ELBO来最小化KL散度。
变分分布
变分分布的一般形式可以写成 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x),其中 z z z是潜在变量, x x x是观测数据,而 ϕ \phi ϕ是参数化这个分布的参数。这个分布可以是任何形式,但在实践中常见的是选择可以容易计算和采样的分布,例如多元正态分布。
对于多元正态分布,变分分布的公式可以具体写为:
q
ϕ
(
z
∣
x
)
=
N
(
z
;
μ
ϕ
(
x
)
,
Σ
ϕ
(
x
)
)
q_\phi(z|x) = \mathcal{N}(z; \mu_\phi(x), \Sigma_\phi(x))
qϕ(z∣x)=N(z;μϕ(x),Σϕ(x))
其中:
-
N
\mathcal{N}
N表示多元正态分布。
-
μ
ϕ
(
x
)
\mu_\phi(x)
μϕ(x)是一个向量,表示给定数据
x
x
x时,潜在变量
z
z
z的均值,由参数
ϕ
\phi
ϕ定义的函数(如神经网络)计算得出。
-
Σ
ϕ
(
x
)
\Sigma_\phi(x)
Σϕ(x)是一个协方差矩阵,同样是由
x
x
x和参数
ϕ
\phi
ϕ计算得出的。
在VAE中,协方差矩阵通常被简化为对角矩阵,这意味着潜在变量的各个维度被假设为条件独立的,即:
Σ ϕ ( x ) = diag ( σ ϕ 2 ( x ) ) \Sigma_\phi(x) = \text{diag}(\sigma^2_\phi(x)) Σϕ(x)=diag(σϕ2(x))
这里 σ ϕ 2 ( x ) \sigma^2_\phi(x) σϕ2(x)是一个向量,包含了各个潜在变量维度的方差,也是由参数 ϕ \phi ϕ定义的函数计算得出。
在实际操作中,为了数值稳定性和更高效的优化,我们通常对 σ ϕ 2 ( x ) \sigma^2_\phi(x) σϕ2(x)的对数进行参数化,即:
log σ ϕ 2 ( x ) \log \sigma^2_\phi(x) logσϕ2(x)
这样,变分分布的参数 ϕ \phi ϕ通常由两部分组成:一个用于产生均值的网络部分和一个用于产生对数方差的网络部分。通过调整这些参数,VAE的编码器学习将数据 x x x映射到适当的潜在分布 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x)上。
在变分自编码器(VAE)中,先验分布和后验分布扮演着关键角色。VAE是一种深度学习模型,它通过贝叶斯推断的原理来学习输入数据的潜在表示。下面我将解释如何在VAE中使用先验分布和后验分布。
先验分布 (Prior Distribution)
在VAE中,我们假设存在一个潜在空间(latent space),其中数据的隐形表征(latent representations)是从一个先验分布中抽取的。常见的做法是假设这个先验分布是标准正态分布,即对于潜在变量 z z z,先验分布 p ( z ) p(z) p(z)通常设为 N ( 0 , I ) \mathcal{N}(0, I) N(0,I),其中 I I I是单位矩阵。
先验的作用:
- 先验分布定义了潜在空间的结构。在VAE中,通过强制潜在变量遵循一个简单的分布(例如标准正态分布),我们可以希望模型学习到一个良好的、通用的潜在空间,其中相似的点生成相似的数据。
后验分布 (Posterior Distribution)
在给定观测数据 x x x的情况下,我们想要知道潜在变量 z z z的分布,这就是后验分布 p ( z ∣ x ) p(z|x) p(z∣x)。在VAE中,这个分布是通过编码器(Encoder)近似的,编码器是一个神经网络,它将输入数据 x x x映射到潜在空间的分布参数上(例如,均值和方差)。因为直接计算后验分布通常是不可行的,VAE采用变分推断来近似后验分布,通过引入一个变分分布 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x),通常也是一个正态分布,但其参数是由输入数据 x x x通过编码器网络学到的。
后验的作用:
- 后验分布代表了在观察到数据 x x x后,我们对潜在变量 z z z的最佳猜测。在VAE中,这是通过最小化后验分布和变分分布之间的KL散度来实现的,即使变分分布 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x)尽可能接近真实的后验分布 p ( z ∣ x ) p(z|x) p(z∣x)。
总结
在VAE的上下文中,先验分布提供了对潜在变量应该如何分布的假设,而后验分布则是给定观测数据后,对潜在变量分布的更新。VAE的训练过程涉及到调整编码器和解码器(Decoder)的参数,以最小化重构误差(使解码器输出尽可能接近输入数据)和正则化项(通常是KL散度,使变分后验接近先验)。通过这种方式,VAE能够学习到能够生成数据的有效的潜在表示。
VAE中我们的目标是什么
在变分自编码器(VAE)中,目标是学习一个概率模型,以便能够生成与训练数据统计特性相似的新数据。这个目标通过以下几个关键步骤实现:
-
学习数据的潜在表示:VAE旨在发现数据的潜在(latent)空间,这个空间捕捉了数据的内在结构。通过将高维数据映射到较低维的潜在空间,VAE试图以更简洁和抽象的方式表示数据,使得这种表示能够捕获数据的核心特征和变异来源。
-
生成新的数据:通过学习潜在空间的结构,VAE能够从这个空间中采样新的潜在点,并将这些点通过解码器(decoder)映射回原始数据空间,从而生成新的数据。理想情况下,这些新数据应该在统计上与训练数据类似,但却是新颖的,即它们不是训练集中的复制品。
-
最大化证据下界(ELBO):具体到优化目标,VAE通过最大化证据下界(Evidence Lower BOund, ELBO)来训练。ELBO是数据的对数似然的一个下界,它由两部分组成:一部分是重构误差,它衡量了生成的数据与真实数据之间的相似度;另一部分是KL散度,它衡量了潜在表示的分布与先验分布之间的差异。通过最大化ELBO,VAE试图在保持生成数据质量的同时,使潜在表示的分布尽可能接近先验分布。
-
正则化潜在空间:VAE的训练过程还隐含地鼓励潜在空间的规整化,使得潜在空间中相近的点能够解码成相似的数据。这个特性使得VAE生成的数据具有连续性和多样性,同时使潜在空间具有良好的可解释性。
总之,VAE的目标是通过学习数据的潜在表示并在这个表示的基础上生成新数据,同时确保潜在空间的连续性和规整性,以及生成数据的质量和多样性。通过这种方式,VAE为复杂数据分布提供了一个强大且灵活的生成模型框架。
KL 散度
KL散度,也称为Kullback-Leibler散度,是衡量两个概率分布 P P P和 Q Q Q相似度的一种方法,它是非对称的,其公式为:
D
K
L
(
P
∣
∣
Q
)
=
∑
x
P
(
x
)
log
P
(
x
)
Q
(
x
)
D_{KL}(P || Q) = \sum_{x} P(x) \log \frac{P(x)}{Q(x)}
DKL(P∣∣Q)=x∑P(x)logQ(x)P(x)
对于连续变量,公式变为积分形式:
D
K
L
(
P
∣
∣
Q
)
=
∫
−
∞
+
∞
p
(
x
)
log
p
(
x
)
q
(
x
)
d
x
D_{KL}(P || Q) = \int_{-\infty}^{+\infty} p(x) \log \frac{p(x)}{q(x)} dx
DKL(P∣∣Q)=∫−∞+∞p(x)logq(x)p(x)dx
在这些公式中:
-
P
P
P和
Q
Q
Q是两个概率分布。
-
P
(
x
)
P(x)
P(x)是分布
P
P
P在
x
x
x处的概率密度或概率质量。
-
Q
(
x
)
Q(x)
Q(x)是分布
Q
Q
Q在
x
x
x处的概率密度或概率质量。
-
log
\log
log通常指自然对数,基于
e
e
e。
物理含义:
KL散度衡量了两个概率分布之间的“信息损失”,即当你用概率分布 Q Q Q来近似真实分布 P P P时,损失了多少信息。它来源于信息论,其中“信息”通常被定义为减少不确定性的东西。如果两个分布完全相同,那么KL散度为0,因为没有信息损失。如果两个分布有所不同,KL散度会量化这种差异。
边缘似然
边缘似然:
边缘似然,有时也称为模型证据,是指给定观测数据后,模型参数的整体可能性。在贝叶斯统计中,边缘似然是指积分掉(或者说边缘化)所有可能的参数后,数据的概率。如果你有一个模型 M M M和数据 D D D,边缘似然可以表示为:
p
(
D
∣
M
)
=
∫
p
(
D
∣
θ
,
M
)
p
(
θ
∣
M
)
d
θ
p(D | M) = \int p(D | \theta, M) p(\theta | M) d\theta
p(D∣M)=∫p(D∣θ,M)p(θ∣M)dθ
这里:
-
p
(
D
∣
θ
,
M
)
p(D | \theta, M)
p(D∣θ,M)是在给定参数
θ
\theta
θ和模型
M
M
M下数据
D
D
D的似然。
-
p
(
θ
∣
M
)
p(\theta | M)
p(θ∣M)是参数
θ
\theta
θ的先验分布。
- 积分是对所有可能的参数 θ \theta θ进行的。
边缘似然是衡量模型拟合数据的好坏的一个指标。在模型选择中,边缘似然可以用来进行贝叶斯模型比较,优选能够更好地解释观测数据的模型。高的边缘似然意味着模型和数据更匹配。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)