VAE学习之路

本文详细探讨了变分自编码器(VAE)的学习之路,首先介绍了变分贝叶斯的概念,包括先验分布、后验分布、似然函数和变分贝叶斯推断。接着,文章阐述了变分贝叶斯在VAE中的应用,解释了如何通过变分推断近似复杂后验分布,以及在模型选择中的作用。最后,VAE的推断过程和目标函数分析,以及编码器和解码器在神经网络中的实现被详述,展示了如何使用KL散度优化VAE。
摘要由CSDN通过智能技术生成

VAE学习之路

主要的论文Auto-Encoding Variational Bayes.

论文下载地址:http://arxiv.org/abs/1312.6114

“该论文提出一个融合变分贝叶斯(Variational Bayes)方法和神经网络的方法,这个方法可以用来构造生成模型的自编码器。”

这句话中提到–变分贝叶斯,先解释一下什么事变分贝叶斯。

变分贝叶斯

贝叶斯

先验分布、后验分布、似然函数、贝叶斯公式

先验分布: 先验概率仅仅依赖于主观上的经验估计,也就是事先根据已有的知识的推断,先验概率就是没有经过实验验证的概率,根据已知进行的主观臆测。

如抛一枚硬币,在抛之前,主观推断P(正面朝上) = 0.5。

后验分布: 后验概率是指在得到“结果”的信息后重新修正的概率,如贝叶斯公式中的。是“执果索因”问题中的”果”。先验概率与后验概率有不可分割的联系,后验概率的计算要以先验概率为基础。解释下来就是,在已知果(B)的前提下,得到重新修正的因(A)的概率P(A|B),称为A的后验概率,也即条件概率。后验概率可以通过贝叶斯公式求解。

似然函数:数理统计学中,似然函数是一种关于统计模型中的参数函数,表示模型参数中的似然性。是用于在已知某些观测所得到的结果时,对有关事物的性质的参数进行估计。

对于“一枚正反对称的硬币上抛十次”这种事件,我们可以问硬币落地时十次都是正面向上的“概率”是多少;
而对于“一枚硬币上抛十次,落地都是正面向上”这种事件,我们则可以问,这枚硬币正反面对称(也就是正反面概率均为0.5的概率)的“似然”程度是多少。

变分贝叶斯

解释知识点最全的网址http://blog.huajh7.com/2013/03/06/variational-bayes/

​ 通常在研究贝叶斯模型中,很多情况下我们关注的是如何求解后验概率(Posterior),不幸的是,在实际模型中我们很难通过简单的贝叶斯理论求得后验概率的公式解,但是这并不影响我们对贝叶斯模型的爱——既然无法求得精确解,来个近似解在实际中也是可以接受的:-)。

一般根据近似解的求解方式可以分为:1 随机(Stochastic)近似方法(代表是MCMC,利用Gibbs Sampling训练LDA的模型便是一种)。2 另外一种确定性(Deterministic)近似方法。本篇要介绍的变分推断便属于后者,一般情况下确定性近似方法会比随机近似方法更快和更容易判断收敛。变分贝叶斯推断是一种求解框架,类似于EM算法,在求解概率模型中有很广泛的运用,是纵横江湖不可或缺的利器:-)

几个概念:
1 拓扑:

​ 拓扑学研究不同空间在连续变化下保持不变的量。

​ 拓扑是研究几何图形或空间在连续改变形状后还能保持不变的一些性质的一个学科。它只考虑物体间的位置关系而不考虑它们的形状和大小。

下面网址介绍了五个有趣的拓扑变换问题,特别特别地有趣。

http://www.matrix67.com/blog/archives/5140

2 泛函:

​ 简单地讲就是函数的函数,以函数集合为定义域的实值映射。

例如:要找到一个更加简单的函数D(Z)来近似P(Z|D),同时问题转化为求解证据logP(Z)的下界L(Q),或者L(Q(Z))。应该注意到L(Q)并非普通的函数,而是以整个函数为自变量的函数,这便是泛函。

我们先介绍一下什么是泛函,以及泛函取得极值的必要条件。

泛函

设对于(某一函数集合内的)任意一个函数y(x),有另一个数J[y]与之对应,则称J[y]为y(x)的泛函。泛函可以看成是函数概念的推广。 这里的函数集合,即泛函的定义域,通常要求y(x) 满足一定的边界条件,并且具有连续的二阶导数.这样的y(x)称为可取函数。

泛函不同于复合函数

例如g=g(f(x)); 对于后者,给定一个x值,仍然是有一个g值与之对应; 对于前者,则必须给出某一区间上的函数y(x),才能得到一个泛函值J[y]。(定义在同一区间上的)函数不同,泛函值当然不同, 为了强调泛函值J[y]与函数y(x)之间的依赖关系,常常又把函数y(x)称为变量函数。

泛函的形式多种多样,通常可以积分形式: J[y]=x1x0F(x,y,y)dx]

泛函的极值

“当变量函数为y(x)时,泛函J[y]取极大值”的含义就是:对于极值函数y(x)及其“附近”的变量函数y(x)+δy(x),恒有J[y+δy]≤J[y];

所谓函数y(x)+δy(x)在另一个函数y(x)的“附近”,指的是:

  1. |δy(x)|<ε;
  2. 有时还要求|(δy)′(x)|<ε.

这里的δy(x)称为函数y(x)的变分。

Euler–Lagrange方程

可以仿造函数极值必要条件的导出办法,导出泛函取极值的必要条件,这里不做严格的证明,直接给出。 泛函J[y]取到极大值的必要条件是一级变分δJ[y]为0,其微分形式一般为二阶常微分方程,即Euler-Largange方程:

FyddxFy=0

3 变分:

​ 求依赖于某些未知函数的泛函数极值的方法。与微分学中函数极值问题相类似。最速降线问题、短程线问题和等周问题等是古典变分学研究的典型问题。它最终寻求的是极值函数:它们使得泛函取得极大或极小值。在变分法中,我们研究的对象是高阶函数,它接受一个函数作为参数,并返回一个值。

​ 变分法是处理函数的变量的数学领域,和处理数的函数的普通微积分相对。

​ 上世纪90年代,变分推断在概率模型上得到迅速发展。

4 KL散度:

来源:以下内容+KL详细公式过程来源:http://blog.csdn.net/aws3217150/article/details/57072827

作用:想要衡量两个概率模型有多大差异,可以利用KL-Divergence。

定义:两个概率密度函数为p(x)和q(x)之间的相对熵定义为: DKL(p||q)=xp(x)logp(x)q(x)

性质:KL散度性质如下:

​ 1 DKL(p||q)DKL(q||p)

​ 2 DKL(p||q)0 ,当且仅当p = q 时为0;

​ 3 不满足三角不等式。

5 变分贝叶斯:

一、问题描述

​ 变分贝叶斯是一类用于贝叶斯估计和机器学习领域中近似计算复杂积分的技术。它主要应用于复杂的统计模型中,这种模型一般包括三类变量:观测变量(observed variables, data),未知参数(parameters)和潜变量(latent variables)。在贝叶斯推断中,参数和潜变量统称为不可观测变量(unobserved variables)。

变分贝叶斯方法主要是两个目的:

(1)近似不可观测变量的后验概率,以便通过这些变量作出统计推断。

(2)对一个特定的模型,给出观测变量的边缘似然函数(或称为证据,evidence)的下界。主要用于模型的选择,认为模型的边缘似然值越高,则模型对数据拟合程度越好,该模型产生Data的概率也就越高。

​ 对于第一个目的(1)的解决方法:

A. 蒙特卡洛模拟,特别是用Gibbs取样的MCMC方法,可以近似计算复杂的后验分布,能很好地应用到贝叶斯统计推断。此方法通过大量的样本估计真实的后验,因而近似结果带有一定的随机性。

B. 与A不同的是,变分贝叶斯方法提供一种局部最优,但具有确定解的近似后验方法。从某种角度看,变分贝叶斯可以看做是EM算法的扩展,因为它也是采用极大后验估计(MAP),即用单个最有可能的参数值来代替完全贝叶斯估计。另外,变分贝叶斯也通过一组相互依赖(mutually dependent)的等式进行不断的迭代来获取最优解。

二、形式化描述:

​ 重新考虑一个问题:1)有一组观测数据D,并且已知模型的形式,求参数与潜变量(或不可观测变量)Z={Z1,…,Zn} 的后验分布:P(Z|D)。

​ 正如上文所描述的后验概率的形式通常是很复杂(Intractable)的,对于一种算法如果不能在多项式时间内求解,往往不是我们所考虑的。因而我们想能不能在误差允许的范围内,用更简单、容易理解(tractable)的数学形式Q(Z)来近似P(Z|D),即P(Z|D)≈Q(Z)。

由此引出如下两个问题:

(1) 假设存在这样的Q(Z),那么如何度量Q(Z)与P(Z|D)之间的差异性(dissimilarity)?

(2) 如何得到简单的Q(Z)?

对于问题一,幸运的是,我们不需要重新定义一个度量指标。在信息论中,已经存在描述两个随机分布之间距离的度量,即相对熵,或者称为Kullback-Leibler散度。

对于问题二,显然我们可以自主决定Q(Z)的分布,只要它足够简单,且与P(Z|D)接近。然而不可能每次都手工给出一个与P(Z|D)接近且简单的Q(Z),其方法本身已经不具备可操作性。所以需要一种通用的形式帮助简化问题。那么数学形式复杂的原因是什么?在“模型的选择”部分,曾提到Occam’s razor,认为一个模型的参数个数越多,那么模型复杂的概率越大;此外,如果参数之间具有相互依赖关系(mutually dependent),那么通常很难对参数的边缘概率精确求解。幸运的是,统计物理学界很早就关注了高维概率函数与它的简单形式,并发展了平均场理论。简单讲就是:系统中个体的局部相互作用可以产生宏观层面较为稳定的行为。于是我们可以作出后验条件独立(posterior independence)的假设。即: i,p(Z|D)=p(Zi|D)p(Zi|D)

三、Q分布与P分布的KL散度:

DKL(Q||P)=ZQ(Z)logQ(Z)P(Z|D)=ZQ(Z)logQ(Z)P(Z,D)+logP(D)

或者

logP(D)=DKL(Q||P)ZQ(Z)logQ(Z)P(Z,D)=DKL(Q|

深度学习生成模型VAE(Variational Autoencoder)是一种基于神经网络的生成模型。VAE在产生新数据的时候是基于已有数据来做的,通过学习数据的潜在空间表示,然后从该空间中采样生成新的数据样本。VAE模型结合了自编码器和变分推断的思想,通过最大化样本的下界来优化模型参数,使得生成的样本能够更好地拟合原始数据分布。 与传统的自编码器相比,VAE编码器部分引入了一个均值向量和方差向量,这样可以使得编码后的潜在表示服从一个高斯分布。这种设计使得VAE不仅能够学习到数据的低维表示,还能够通过在潜在空间中进行采样来生成新的样本。VAE模型的损失函数由重构误差项和正则化项组成,通过最小化该损失函数可以使得生成的样本能够尽可能地接近原始数据分布。 尽管VAE在生成新数据方面的效果相对于其他模型可能有些模糊,但它在学习数据分布和生成新数据方面仍然具有一定的优势。通过使用变分推断和重参数化技巧,VAE能够生成具有多样性的样本,并且能够在潜在空间中进行插值和操作,从而得到更多样化的结果。 总结来说,VAE是一种深度学习生成模型,通过学习数据的潜在空间表示,可以生成新的样本。它结合了自编码器和变分推断的思想,并通过最大化样本的下界来优化模型参数。尽管生成的样本可能有些模糊,但VAE学习数据分布和生成多样化样本方面具有一定的优势。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值