VAE——变分自编码器的数学推导
问题考虑一个生成模型(Generative model),可以从一个隐变量(latent variable, z)映射到一张图片(x),用有向无环图模型(directed acyclic graphical model / Bayesian network)表示为上图表示,x的分布可以通过首先从p(z)采样得到z后再从p(x|z)采样建模。p(z) 是先验概率,意味着只需要选择一个合适的分布就可以
问题
考虑一个生成模型(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;θ)=decoder(z;θ)p(x|z; \theta) = decoder(z; \theta)p(x∣z;θ)=decoder(z;θ)
此时已经对生成模型建模完毕,接下来为了进行求解,也就是要学习到参数θ\thetaθ。目前,唯一确定的是数据集样本x,当可以得到z→x^z \rightarrow \hat xz→x^后,还需要确定x,x^,zx, \hat{x}, zx,x^,z三者之间的对应关系,如下图
为题转换为:已知一个数据集中的样本x,如何确定对应的隐变量z,也就是求解p(z|x)。
因为p(x)=∫p(x∣z)p(z)dzp(x) = \int p(x|z)p(z) dzp(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散度 KL(P(x)∣Q(x))=Ex∼P(x)[logP(x)−logQ(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)=argminQ(z)∈QKL(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的公式编辑好垃圾…先不写了
更多推荐



所有评论(0)