变分自编码器

变分自编码器可用于对先验数据分布举行修模。从名字上就可以看出,它包罗两部分:编码器息争码器。编码器将数据分布的高级特征映照到数据的初级外征,初级外征叫作本征向量(latent vector)。解码器接纳数据的初级外征,然后输出同样数据的高级外征。变分编码器是主动编码器的升级版本,其构造跟主动编码器是相似的,也由编码器息争码器构成。主动编码器中,需求输入一张图片,然后将一张图片编码之后取得一个隐含向量,这比原始方法的随机取一个随机噪声更好,因为这包罗着原图片的新闻,然后隐含向量解码取得与原图片对应的照片。可是如许实并不行恣意生成图片,因为没有方法本人去构制躲藏向量,以是它需求通过一张图片输入编码才晓得取得的隐含向量是什么,这时就可以通过变分主动编码器来办理这个题目。办理方法便是编码过车励它添加少许限制,迫使其生成的隐含向量可以大约的遵照一个标准正态分布,这便是其与一般的主动编码器最大的差别。如许生成一张新图片就比较容易,只需求给它一个标准正态分布的随机隐含向量,如许通过解码器就可以生成念要的图片,而不需求给它一张原始图片先编码。

根源:中文字幕AVTutorial on Variational Autoencoders
简介

变分主动编码器(Variational Autoencoder)

描画神经收集的一种常睹方法是用少许函数的近似来。这些可以保管新闻的数据构造。

假设我们有一个由几个卷积层构成的收集。我们将输入设为一个向量。然后教练收集,以淘汰其本身和一个目标图像之间的均方偏向。该图像的“数据”现包坎阱络的参数中。

现,让我们用众个图像上尝尝。运用一个hot矢量来替代输入向量,[1, 0, 0,0 ]可以意味着猫气候,而(0, 1, 0,0)可以意味着狗。这里我们只可存储众达4个图像。运用较长的矢量意味着添加越来越众的参数,从而收集可以存储差别的图像。

为理办理这个题目,我们运用实数向量,而不是一个hot向量。我们可以认为这是一个图像编码,这是编码/解码的术语。比如,[3.3,4.5,2.1,9.8 ]可以外示CAT图像,而[3.4,2.1,6.7,4.2 ]可以外示狗。这个初始向量被称为我们的潜变量。

像我上面那样随机挑选潜变量分明是个坏目标。主动编码器中,我们添加另一个组件,将原始图像中的元素编码成向量。然后,解体层将这些矢量“解码”回原始图像。如下图所示:

现我们抵达了一个阶段,模子有少许实行运用的提示。我们可以依据我们念要的图像来教练收集。假如我们保管图像的向量编码,可以通过将其转达到解码器部分来重修它。这便是标准的主动编码器。

然而,我们试图这里修立一个生成模子,而不光仅是一个可以“记忆”图像的模糊数据构造。我们不行发生任何东西,因为我们不晓得怎样创立潜的向量,而不是从图像编码它们。

这里有一个简单的办理方案。我们编码收集上添加一个束缚,强制它发生基本遵照高斯分布的潜向量。恰是这种束缚将变分自编码器与标准主动编码器分别开来。

生成新的图像是容易的:我们所需求做的是从单位高斯上采样隐含矢量并将其转达到解码器。

实行中,我们的收集是怎样准确的,以及它的潜变量怎样接近单位高斯分布之间保管一种权衡。

我们让收集本人来决议。关于我们的耗损项,我们总结了两个独自的耗损:生成耗损,这是一个均方偏向,测量收集重修图像的准确度,以及潜耗损,这是权衡潜变量立室单位高斯的KL散度。

generation_loss = mean(square(generated_image - real_image)) latent_loss = KL-Divergence(latent_variable, unit_gaussian) loss = generation_loss + latent_loss

为了优化KL divergence,我们需求运用一个简单的从头参数化本领:替代生成实值向量的编码器,它将发生均值向量和标准差向量.

盘算KL divergence如下:

# z_mean and z_stddev are two vectors generated by encoder networklatent_loss = 0.5 * tf.reduce_sum(tf.square(z_mean) + tf.square(z_stddev) -tf.log(tf.square(z_stddev)) - 1,1)

当我们盘算解码器收集的耗损时,我们可以从标准偏向中取样并添加平均值,并将其举措我们的潜向量:

samples = tf.random_normal([batchsize,n_z],0,1,dtype=tf.float32) sampled_z = z_mean + (z_stddev * samples)

除了容许我们发生随机潜变量,这个束缚也进步了收集的泛化。

为了可视化这一点,我们可以把潜变量看作数据的转达。

假设你0, 10之间给出了一对实数,同时另有一个名字。比如,5.43意味着苹果,5.44意味着香蕉。当有人给你数字5.43时,你一定晓得他们道论一个苹果。我们可以用这种方法基本上编码无量新闻,因为我们之间可以有众少差别的实数没有限制(0, 10)。

然而,假如每私人试图告诉你一个数字时,加上一个高斯噪声会怎样样呢?现,当你收到数字5.43时,本来的数字可以任何地方(4.4~6.4),以是另一私人也可以说是香蕉(5.44)。

加上噪声的标准差越大,我们可以通过运用一个变量的新闻越少。

现我们可以将相同的逻辑运用到编码器息争码器之间转达的潜变量。我们可以更有用地编码原始图像,我们可以优化高斯上的标准差,直到它抵达1。

这种束缚迫使编码器好坏常有用的,发生新闻丰厚的潜变量。这可以进步了泛化,以是我们随机生成的潜变量,或者从非教练图像编码z中取得,将解码时发生更好的结果。

【描画根源:KVFRANS,URL:http://kvfrans.com/variational-autoencoders-explained/]

开展历史

描画

自从神经收集降生以后,监视式的神经收集不停是研讨职员的要点,同样的也取得很大的进步,监视式的神经收集越来越深,准确度也越来越高。但好坏监视式的神经收集的进度大不如监视式的神经收集。可是近年来,非监视式的神经收集也飞速开展,这也得益于GAN,Auto-encoder等Generative model的开展和引入。

变分自编码器(Variational auto-encoder,VAE)是一类主要的生成模子(generative model),它于2013年由Diederik P.Kingma和Max Welling提出的。2016年Carl Doersch写了一篇VAE的教程中,对VAE做了更精细的先容,比2013年文献更易懂。

Burda et al., 2015年提出importance- weighted autoencoder,主要加权自编码器目标也是log pmodel(x)的下界,而且跟着k添加而变得更紧。2016年,Snderby, C. K., Raiko, T.,等人提出Ladder variational autoencoders,它ladder network中,通过数据之间依赖的可以性来改良生成的分布,实行外明,与分层变分主动编码器和其他生成模子的纯自底向上的推理比较,该模子可以取得更有用的预测似然函数和更厉厉的对数似下界。

仅仅几年年的时间里,变分主动编码器(VAEs)曾经成为最风行的一种非监视进修繁杂分布的方法。VAEs具有吸引力,因为它们是修立标准函数迫近器(神经收集)之上的,而且可以通过随机梯度下降来教练。VAEs曾经展现了生成众种繁杂数据的有用性,包罗手写数字,faces,house numbers,CIFAR图像,场景的物理模子,支解,并通过静态图像预测未来。

主要事情

年份

事情

相关论文

2013

Diederik P.Kingma和Max Welling首次提出变分自编码器

Kingma, D. P., & Welling, M. (2013). Auto-encoding variational bayes. arXiv preprint arXiv:1312.6114.

2016

Doersch, C.对变分自编码器更加简化的先容给读者

Doersch, C. (2016). Tutorial on variational autoencoders. arXiv preprint arXiv:1606.05908.

2016

Snderby, C. K., Raiko, T.,提出Ladder variational autoencoders

Snderby, C. K., Raiko, T., Maale, L., Snderby, S. K., & Winther, O. (2016). Ladder variational autoencoders. In Advances in neural information processing systems (pp. 3738-3746).

开展剖析

瓶颈

  • VAE是直接盘算生成图片和原始图片的均方偏向而不是像GAN那样去对立来进修,这就使得生成的图片会有点模糊。
  • 它仅针对一个题目进修推测收集,给定x推测z。较老的方法可以给定任何其他变量子集的状况下对任何变量子集施行近似推测,因为平均场不动点方程指定怎样所有这些差别题目的盘算图之间共享参数。

未来开展偏向

VAE可以通过少许具有共性的规矩:如改变,光照等对图片的影响进修到他们共享的参数,使得运用于更众的模子中。首次除外,GAN和VAE都是很主要的生成进修,怎样高效的联合两个算法的特征而且减小各自的毛病也是目前许众研讨职员的要点课题。

Contributor: Ruiying Cai

相关人物
Casper Kaae Snderby
Casper Kaae Snderby
Diederik P. Kingma
Diederik P. Kingma
简介
相关人物