变分自编码器(variational autoencoder,VAE)理解

计算机视觉课程的阅读作业,要求提交slides。

参考资料:

从零上手变分自编码器(VAE)

Tutorial - What is a variational autoencoder? – Jaan Altosaar

Variational Autoencoders Explained

变分自编码器(一):原来是这么一回事 - 科学空间|Scientific Spaces

1 背景

1.1 应用场景

   VAE被广泛用于多媒体生成,包括图像生成,音频合成等。

VAE生成的人脸

1.2 要解决的问题

    我们现在期望用一个网络来生成猫的图片,我们可以使用如下图所示的结构,该网络由一些反卷积层(一种上采样方法,其输出比输入的维数更高)构成,输入是全1的向量,通过训练,我们可以最小化网络的输出与目标图片的均方误差。这样,当我们将全1向量输入训练好的网络后,就能得到这张猫的图片,也就是说,这张图片的信息已被存储在网络的参数中。

用网络生成特定的图片

    但是我们不满足于此,我们还希望能生成更多的图片,甚至是训练集外的图片。为了完成这样的任务,显然输入向量不能再是唯一的全1向量了,我们需要更多的输入向量。一个简单的解决方法是,输入随机选择的实向量,对应不同的训练集图片,比如,用[3.3, 4.5, 2.1, 9.8] 表示猫的图片,用[3.4, 2.1, 6.7, 4.2] 表示狗的图片。这种随机选择输入向量的方式显然是不够好的。因为输入向量和目标图片没有任何因果关系,除了已经储存过的图片,我们不知道如何选择输入向量,去产生新的图片。

    标准自编码器给出了一种产生输入向量的方法:既然人工选择输入向量很困难,我们让神经网络帮我们做这件事。如下图所示,在标准自编码器中,先由encoder将原始图片变换为低维的隐变量,再由decoder将隐变量还原为原始图片。这里的隐变量也就是刚才提到的输入向量。此时,隐变量是由原始图片经过编码生成的,一定程度上具备了因果关系,但是我们仍然很难根据训练得到的隐变量去生成新的图片,因为我们没有对隐变量进行任何约束,图片对应的隐变量分布可能是任意的。

标准自编码器

2 VAE方法

2.1 主要思路

    为了解决生成新图片的问题,我们需要对自编码器进行改进。

    1文指出,VAE的主要目的是为数据的隐变量加上先验;3文指出,VAE区别传统自编码器的一个重要特征是,它将隐变量限制为一个标准正态分布。以上两种说法是吻合的。

    当然,4文指出,VAE的核心假设是p(Z|X)(后验分布)是正态分布,这一点确实有道理,但是通过计算可以发现,此时,隐变量的分布确实也是标准正态分布。因此,本文不深究VAE的初衷到底是哪一种。

    至此,我们可以说,VAE对于上述问题的解决方案就是,限制encoder生成的隐变量都服从正态分布,且尽可能逼近标准正态分布。此时,生成一幅新图片将变得很简单,只需要从标准正态分布中采样出一个隐变量,再将隐变量输入decoder即可。

    VAE的结构如下图所示:

为了使模型具有生成能力,VAE要求每个p(Z|X)都向正态分布看齐  

我们可以看到, 在VAE中,encoder不再直接生成隐变量Z,转而生成一个分布qphi(Z|Xi),隐变量由qphi(Z|Xi)采样得到。3文指出,这种做法除了能使我们生成随机的隐变量,而且提高了网络的泛化能力。

为了提高网络的泛化能力,即要求网络能很好地生成训练集之外的图片,要得到训练集外的图片,就要求decoder输入的隐变量与训练中所得到的不同,此时,可以看做是隐变量产生了噪声。即我们希望decoder对输入的噪声具有鲁棒性,如果encoder输出的只有均值那一项,则VAE退化为标准自编码器,decoder对输入噪声没有鲁棒性;但是encoder能同时输出均值mu和方差sigma^2时,相当于在训练过程中为decoder的输入加上了方差为sigma^2的噪声(且由于qphi(Z|Xi)要尽量靠近标准正态分布(方差为1),这就克服了自编码器天然的“惰性”,即网络很容易将方差学习为0)。

因此,在训练阶段,decoder为了减小训练误差,就必须学会克服噪声的干扰。从而使训练好的decoder具有良好的鲁棒性。

但是上述泛化能力与减小网络的训练误差是相互矛盾的,因为假如没有“qphi(Z|Xi)要尽量靠近标准正态分布(方差为1)”这一约束,网络会趋向于将方差学习为0,因为噪声的存在会增加网络拟合的难度。因此,在实际应用中,我们需要权衡网络能达到的训练精度以及隐变量逼近正态分布的程度。这种权衡,也正是机器学习算法经常遇到的训练误差和泛化能力的权衡。对应损失函数中的重建误差和正则化项。我们将通过x得到分布qphi(z|x)再得到z的这一过程看做是编码器,而通过z还原x的这一过程,也就是从分布ptheta(x|z)中得出x的过程,看做是解码器。ptheta(z) 表示z的先验分布,在VAE中,ptheta(z) 被设置为标准正态分布。

上式中的L称为变分下限,优化目标是使变分下限最大

由上述推导可知,正则化项需要刻画qphi(Z|Xi)与标准正态分布(先验分布ptheta(z))的相似度,VAE使用了KL散度来度量,即上式中的第一项,简单说,KL散度可以用来度量两个分布的逼近程度,且KL散度越小,两个分布越接近。上式中的第二项是decoder的输出是原数据点的对数似然,再求期望,这就对应重建误差(该似然越大,说明decoder产生原始数据的可能性越大,即重建误差越小),即最大化decoder输出原数据点的可能性,相当于最小化重建误差。需要注意的是,我们的优化目标为最大化上述L。

2.2 概率视角

 接下来我们用更数学化的语言描述VAE。

生成模型的目的是要求解数据与隐变量间的联合密度,即p(x,z),有p(x,z)=p(x∣z)p(z),此时,生成过程变为:

先产生zi~p(z),再产生xi~p(x|z),这就需要估计隐变量的分布p(z),而p(z)=p(z∣x)p(x),但p(z|x)通常难以计算,因此,VAE引入另外一个参数phi和对应的分布qphi(z|x),以估计p(z|x),记p(z|x)的参数为theta,则p(z|x)可写为ptheta(z|x)。

VAE的概率图模型

参数phi和theta就是深度网络模型中各个神经网络单元的参数,也就是我们要优化的参数。优化模型中参数phi和theta的过程如下,注意这里引入了变分下限:


这里应用了变分推断的技巧,等式左侧是数据集内某一条数据出现的概率的对数,是一个无法被计算的常数,等式右侧第一项KL散度表示qphi(z|x)对ptheta(z|x)的逼近程度,是我们想要优化(最小化)的对象,第二项往往被称作evidence lower bound (ELBO,变分下限)。优化的目标是使变分下限最大,这样在等式左侧不变的情况下,KL散度就能取到最小。

经过推导,变分下限又可写为如下形式,与之前得到的式子相同。

2.3 关于Reparameterization trick

    1文中将Reparameterization trick(下称RT)的目的描述为:从分布中采样这个操作是无法求偏导的,利用BP算法优化模型的时候,梯度将无法计算。 即:RT是我们在实现模型时使用的技巧。

    即下图中的一般采样无法求导,而RT采样可以对mu和sigma求导,在笔者看来,encoder为了得到一个正态分布,必然是通过生成其均值和标准差(即正态分布的两个参数)来实现的。不同之处在于,在一般采样中,得到均值和标准差后,很自然的,从均值和标准差这两个参数确定的正态分布中采样得到z即可,但由于采样过程的存在,计算梯度时将无法求偏导;因此,在RT采样中,将正态分布N(mu,sigma^2)重新参数化为mu和sigma(也是Reparameterization trick 名字的由来),encoder产生到mu和sigma即可,此时z可对mu和sigma求偏导。


一般采样
Reparameterization trick采样

3 实验

原论文在人脸和手写数字集上进行了实验,下面的图是在标准正态分布采样得到z后,输入decoder得到的结果,可见VAE能生成与原数据集类似的新图片。


4 结论

提出了一种生成模型——变分自编码器

从实验结果看,该方法能较好地解决图片生成问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,125评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,293评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,054评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,077评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,096评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,062评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,988评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,817评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,266评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,486评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,646评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,375评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,974评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,621评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,642评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,538评论 2 352

推荐阅读更多精彩内容