问题
考虑一个生成模型(Generative model
),可以从一个隐变量(latent variable, z
)映射到一张图片(x
),用有向无环图模型(directed acyclic graphical model / Bayesian network
)表示为
上图表示,x
的分布可以通过首先从p(z)
采样得到z
后再从p(x|z)
采样建模。
p(z)
是先验概率,意味着只需要选择一个合适的分布就可以了,一般采用单位高斯分布(unit Gaussian distribution
),因为高斯分布的熵最大。(Paper: Let the prior over the latent variables be the centered isotropic multivariate Gaussian p ( z ) = N ( z ; 0 ; I ) p(z) = N (z; 0; I) p(z)=N(z;0;I))p(x|z)
用神经网络进行表示 p ( x ∣ z ; θ ) = d e c o d e r ( z ; θ ) p(x|z; \theta) = decoder(z; \theta) p(x∣z;θ)=decoder(z;θ)
此时已经对生成模型建模完毕,接下来为了进行求解,也就是要学习到参数
θ
\theta
θ。目前,唯一确定的是数据集样本x
,当可以得到
z
→
x
^
z \rightarrow \hat x
z→x^后,还需要确定
x
,
x
^
,
z
x, \hat{x}, z
x,x^,z三者之间的对应关系,如下图
为题转换为:已知一个数据集中的样本x
,如何确定对应的隐变量z
,也就是求解p(z|x)
。
因为
p
(
x
)
=
∫
p
(
x
∣
z
)
p
(
z
)
d
z
p(x) = \int p(x|z)p(z) dz
p(x)=∫p(x∣z)p(z)dz不可通过数值计算获得结果,且
p
(
z
∣
x
)
=
p
(
x
∣
z
)
p
(
z
)
p
(
x
)
p(z|x) = \frac{p(x|z)p(z)}{p(x)}
p(z∣x)=p(x)p(x∣z)p(z)
同样不可数值求解,因此使用近似推断的方法进行求解。近似推断有两大方法:MCMC
(马尔可夫蒙特卡洛)和VI
(变分推断)法,VAE
正是使用了VI
得名。
概念
泛函是将自变量函数映射到数值上的函数。
变分法求解泛函极值的方法。
散度可以简单的理解为不需要对称性的距离,即不要求从P到Q的值等于从Q到P的值。
KL散度
K
L
(
P
(
x
)
∣
Q
(
x
)
)
=
E
x
∼
P
(
x
)
[
log
P
(
x
)
−
log
Q
(
x
)
]
KL(P(x)|Q(x)) = E_{x \sim P(x)}[\log P(x) - \log Q(x)]
KL(P(x)∣Q(x))=Ex∼P(x)[logP(x)−logQ(x)]。
VI
预设一个关于隐变量的密度函数的集合
Q
\mathcal{Q}
Q,从中找到一个函数
Q
(
z
)
Q(z)
Q(z)使得和
p
(
z
∣
x
)
p(z|x)
p(z∣x)的最接近,使用KL散度来衡量
Q
∗
(
z
)
=
arg
min
Q
(
z
)
∈
Q
K
L
(
Q
(
z
)
∣
P
(
z
∣
x
)
)
Q^*(z) = \arg \min_{Q(z)\in \mathcal{Q}}KL(Q(z)|P(z|x))
Q∗(z)=argQ(z)∈QminKL(Q(z)∣P(z∣x))
由此,变分推断将一个推断问题转化为了优化问题。
(Paper: While there is much freedom in the form q ( z ∣ x ) q(z|x) q(z∣x), we’ll assume the true (but intractable) posterior takes on a approximate Gaussian form with an approximately diagonal covariance)
MD, CSDN的公式编辑好垃圾…先不写了