版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章:变分自编码器变分自编码器(VariationalAuto-Encoders,VAE)是由Kingma等人于2014年提出的一种生成式网络模型。与传统的自编码器通过数值的方式描述潜在空间不同,它以概率的方式描述对潜在空间的观察,在数据生成方面表现出了巨大的应用价值,可以生成高度逼真的各种内容,例如图像,文本和声音,如图7.1所示。VAE一经提出就迅速获得了深度生成模型领域广泛的关注,并和GAN一同被视为无监督学习领域最具研究价值的方法之一,因此在深度生成模型领域得到越来越多的应用。本章将首先简单介绍自编码器模型,然后重点介绍VAE的构架、理论基础和训练,特别是重新参数化技巧,最后介绍VAE在各个领域的应用。引言第七章
变分自编码器图7.1
变分自编码器生成的图像第七章
变分自编码器7.1自编码器模型7.2变分自编码器的模型7.3VAE的应用7.1自编码器模型7.1.1自编码器的结构7.1.2自编码器的特点7.1.1自编码器的结构
图7.2自编码器的结构编码器和解码器可以是各种形式的神经网络,其结构可以根据任务的具体需求来选择。通常,如果输入数据是结构化数据,可以使用全连接网络作为编码器和解码器;如果输入数据是图像,通常会使用卷积神经网络作为编码器,使用反卷积神经网络(或称转置卷积网络)作为解码器。7.1.1自编码器的结构编码器的目的是将输入数据映射到低维潜在空间,捕捉输入数据的重要特征,用公式表示为:
解码器的目的是将编码完成的潜在表示映射回原始输入空间,重构原始数据,用公式表示为:
7.1.1自编码器的结构自编码器的各个层上拥有需要调整的权值,也拥有损失函数,它像任意神经网络一样地训练,其训练目标是最小化损失函数以求解全部的权值。它可以使用第2章中的最快梯度下降法,可以使用一切在神经网络中学过的技巧进行优化和训练。在训练自编码器过程中,如果输入x是数值向量,损失函数E可以使用均方误差函数,定义为如果输入x是概率分布,损失函数E可以使用交叉熵函数,定义为7.1自编码器模型7.1.1自编码器的结构7.1.2自编码器的特点7.1.2自编码器的特点自编码器是一种无监督学习的前馈神经网络结构,没有任何反馈。由于输入数据与输出数据结构基本一致,因此自编码器的网络结构不会呈现出与深度神经网络或CNN相似的“由大到小”形态,反而会呈现出“大-小-大”的对称性,从高维到低维的网络为编码器,从低维到高维的网络为解码器。自编码器主要作用是学习数据的主要规律,因此可以常用于数据压缩、特征提取、文档检索、分类和异常检测。然而,自编码器也存在一个主要问题:编码的泛化性差。自编码器从输入到输出是一种确定性的关系,没有任何随机的成分,当我们随机给解码器一个满足某个分布的数据,解码器不可能生成我们想要的结果。7.1.2自编码器的特点如图7.3所示,假设用隐向量中的一个维度表示图像中月色的盈亏情况。如果数据集中编码1和10分别为月牙和满月,解码器可能对这两个数字的表示非常敏感,能够准确地解码出相应的月色表示情况,这是因为对于自编码器来说,它会直接复制原始数据进行输出,这样得到的误差是最小的。但是,如果随机生成的隐向量在该维度上的值为5,解码器能否生成一个数值为5的月色,或解码成半弦月呢?可能不行,因为隐向量与实际特征之间的映射可能并不是线性的。毕竟神经网络中含有降维、加权和、激活函数、卷积等复杂数学运算,要保证所有的样本在同一套参数下都能够将原始数据直接复制到输出层,不是那么容易的一件事。也就是说自编码器没有生成功能,不具备泛化性。图7.3自编码器的泛化能力第七章
变分自编码器7.1自编码器模型7.2变分自编码器的模型7.3VAE的应用7.2变分自编码器的模型7.2.1VAE的背景7.2.2VAE的结构7.2.3VAE的理论基础7.2.4VAE的重参数化7.2.5VAE的训练7.2.6VAE的特点7.2.1VAE的背景
从7.1节可知,自编码器只能够对原始数据进行压缩,不具备生成能力。为了使模型表现很好,在不断地迭代训练中,编码器的输出也就是解码器的输入会趋于确定,这样才能让解码器能生成与输入数据更接近的数据,以使损失变得更小,但是这就与生成器的初衷有悖了。生成器的初衷实际上是为了生成更多“全新”的数据,而不是为了生成与输入数据“更像”的数据,为了解决这个问题,需要转变一下思路。不同于自编码器数据改良的模式,VAE需要考虑的是斩断神经网络中惯例的“从输入到输出”的数据流,以此杜绝信息直接被复制到输出层的可能性。对于VAE来说,编码器的输入是原始数据x,但解码器的输入不是编码器的输出了,而是从满足一定分布中随机抽样出的z,因此当VAE被训练好之后,可以只取架构中的解码器来使用:只要对解码器输入满足特定分布的随机数z,解码器就可以生成像从原始数据x中抽样出来的数据,如此就能够实现新数据生成。7.2.1VAE的背景举一个例子来加深大家对自编码器和VAE的理解:比如将一张人像图片输入自编码器后,将会得到这张图片在表情、肤色、性别、发型等特征上的取值向量,且是唯一确定的,而后解码器将会根据这些特征的取值重构出接近原始输入的图片。也就是说,可以使用单个值来描述输入图像在潜在特征上的表现,但在实际情况中,可能更多时候倾向于将每个潜在特征表示为可能值的范围。比如输入小孩的照片,将微笑特征设定为特定的单值(相当于断定小孩笑了或者没笑)显然不如将微笑特征设定为某个取值范围(例如将微笑特征设定为a到b范围内的某个数,这个范围内既有数值可以表示小孩笑了又有数值可以表示小孩没笑)更合适。7.2.1VAE的背景举一个例子来加深大家对自编码器和VAE的理解:VAE便是用“取值的概率分布”代替自编码器的单值来描述对特征观察的模型,如下图7.4的右边部分所示,经过VAE的编码,每张图片的微笑特征不再是自编码器中的单值而是一个概率分布。图7.4VAE的编码表示7.2.1VAE的背景通过这种方法,现在将给定输入的每个潜在特征表示为概率分布。当从潜在空间状态解码时,将从每个潜在状态分布中随机采样,生成一个向量作为解码器模型的输入。通过上述的编解码过程,实质上实施了连续、平滑的潜在空间表示。对于潜在分布的所有采样,期望解码器模型能够准确重构输入。因此,在潜在空间中彼此相邻的值应该与非常类似的重构相对应。图7.5给出了自编码器和VAE的解编码过程。图7.5自编码器和VAE的解编码过程7.2变分自编码器的模型7.2.1VAE的背景7.2.2VAE的结构7.2.3VAE的理论基础7.2.4VAE的重参数化7.2.5VAE的训练7.2.6VAE的特点7.2.2VAE的结构以上便是VAE构造所依据的背景,接下来再来看一看它的具体构架。VAE是一种生成模型,它通过对数据的隐含表示(LatentRepresentation)进行概率建模,并且通过学习这个隐含表示的分布来生成与训练数据类似的新数据。VAE仍然由编码器与解码器两部分构成,如图7.6所示。7.2.2VAE的结构
7.2.2VAE的结构概括地说,VAE的核心利用两个神经网络建立两个概率密度分布模型:一个用于原始输入数据的变分推断,生成隐含表示的概率分布,称为编码器;另一个根据生成的隐含表示概率分布,还原生成原始数据的近似概率分布,称为解码器。编码器和解码器在数据流上并不是相连的,不会直接将编码后的结果传递给解码器,而是要使得隐式表示满足既定分布。需要注意的是,编码器和解码器的结构并不一定要对称,可以根据任务的具体需求来选择。7.2.2VAE的结构
图7.7VAE的具体框架7.2.2VAE的结构
7.2变分自编码器的模型7.2.1VAE的背景7.2.2VAE的结构7.2.3VAE的理论基础7.2.4VAE的重参数化7.2.5VAE的训练7.2.6VAE的特点7.2.3VAE的理论基础理解VAE的构架后,接下来要清楚VAE是怎么进行优化的,它的理论基础是什么。首先要知道优化的前提是要有损失函数。那么损失函数如何构造呢?VAE的损失函数包括两部分:1.重构损失函数,即解码的数据与原始输入数据的差异;2.KL散度损失函数,即编码器得到的潜在变量分布与事先假设的分布(比如标准正态分布)的差异,接下去将对损失函数进行逐一解释。7.2.3VAE的理论基础在具体分析之前,先来看下KL散度的定义:定义1:若有两个随机变量P和Q,且其概率分布分别是p(x)和q(x),则p相对q的KL散度为:KL散度又称为相对熵,在统计学意义上来说,KL散度可以用来衡量两个分布之间的差异程度。
若两者差异越小,KL散度越小,反之亦反。当两分布一致时,其KL散度为0。
正是因为其可以衡量两个分布之间的差异,所以在VAE中可以使用KL散度来衡量编码器得到的潜在变量分布与事先假设分布的差异。值得注意的是,KL散度是对两个概率分布间差异的非对称性度量,即7.2.3VAE的理论基础
7.2.3VAE的理论基础继续分析上式,来理解VAE的解编码过程。先来看公式的第一项:
7.2.3VAE的理论基础接下来看公式的第二项:
7.2.3VAE的理论基础
另外,前面的分析已经看到VAE损失函数是重构损失函数和KL散度损失函数的组合,因此,可以通过修改两个损失函数的权重,来控制不同的损失函数对输出的影响程度。图7.8给出了不同的损失函数下VAE所生成不同质量的图像,左边表示为0.1E+09D组合,右边表示为0.9E+0.1KL组合,这里E表示重构损失,D表示散度损失。7.2变分自编码器的模型7.2.1VAE的背景7.2.2VAE的结构7.2.3VAE的理论基础7.2.4VAE的重参数化7.2.5VAE的训练7.2.6VAE的特点7.2.4VAE的重参数化
7.2.4VAE的重参数化
7.2变分自编码器的模型7.2.1VAE的背景7.2.2VAE的结构7.2.3VAE的理论基础7.2.4VAE的重参数化7.2.5VAE的训练7.2.6VAE的特点7.2.5VAE的训练VAE如何训练呢?就像任意神经网络一样地训练。VAE的各个层上拥有需要求解的参数即网络模型的连接权值,也拥有损失函数,它的训练目标是最小化损失函数以求解全部的参数。它可以使用反向传播、最优梯度法等,可以使用一切在神经网络中学过的技巧进行优化和训练。具体地:编码:输入数据(如一张图片)被送入编码器网络,编码器会为这些输入数据生成一个潜在向量的分布,通常是正态分布,有其均值和方差。潜在分布是预先设定的,通常为标准正态分布。采样:在这个分布中采样一个潜在向量。为了使采样过程可导,采样过程通常使用“重参数化技巧”实现,即潜在向量等于其均值加上标准差乘以一组随机噪声。7.2.5VAE的训练解码:将采样得到的潜在向量送入解码器,解码器将潜在向量解码为重建的输入数据。计算损失函数:损失函数通常由两部分组成,一部分是重构损失,即重建的输入数据与原始输入数据的差异;另一部分是KL散度损失,即编码器生成的潜在向量的分布与预先设定的潜在分布之间的差异。反向传播:计算损失函数的梯度,然后用优化算法(如最优梯度法等)更新网络模型的参数。重复迭代:不断重复以上步骤,直到模型参数收敛,或者达到预设的训练次数。7.2.5VAE的训练在所有的理论解释之后,可以使用图7.10来演示VAE图像重建任务,图中VAE主要由高斯编码器和伯努利解码器两部分组成。图7.10VAE图像重建过程7.2.5VAE的训练高斯编码器:由于其稳定的静态特性和简单的采样,选择多元高斯作为编码器输出分布,其中的均值和方差由前馈神经网络建模,计算如下:
伯努利解码器:因为输入数据是灰度图像,可以将每个像素都归一化为0到1之间的一个浮点数,因此伯努利分布是解码器的首选,计算如下:
7.2.5VAE的训练损失函数:为简单起见,假设先验分布为标准正态分布,并对式(10)所示的对数似然期望作近似,同时结合式(7.7)和(7.9)得到损失函数为:
图7.11VAE生成手写数字的可视化7.2变分自编码器的模型7.2.1VAE的背景7.2.2VAE的结构7.2.3VAE的理论基础7.2.4VAE的重参数化7.2.5VAE的训练7.2.6VAE的特点7.2.6VAE的特点VAE和上一章的GAN是深度生成模型中的两种主要方法,它们各自具有一定的优缺点:GAN由生成网络和判别网络两部分组成,通过相互对抗的训练过程生成新样本。这种方法的优点是能生成更加丰富多样的样本,甚至可以很好地生成高维数据。尤其是图像生成方面,表现出了非常优秀的性能。它能够生成非常逼真的图像,甚至在一些应用中超越了传统生成模型。然而,GAN的训练过程往往不稳定,容易出现模式崩溃问题,即生成网络陷入重复生成某一类样本的情况,导致生成效果相对较差。另外,GAN通常需要大量的训练数据才能达到较好的生成效果,这在某些任务中可能会成为限制因素。7.2.6VAE的特点VAE和上一章的GAN是深度生成模型中的两种主要方法,它们各自具有一定的优缺点:VAE是一种基于概率图的生成模型,通过编码器将输入数据映射到低维隐空间,再通过解码器生成新样本。VAE的优点在于训练稳定,不容易出现模式崩溃等问题。同时潜在空间具有可解释,VAE能够学习到具有良好结构的潜在空间,这使得它在生成任务中的可解释性较强。另外,VAE能够生成多样的样本和相对连续的数据,适用于多种类型的生成任务。不过,VAE也有其缺点,模型训练相对复杂且训练速度慢,需要优化重构误差和KL散度两个目标。相比于GAN,VAE在生成图像等高质量内容时,通常不如GAN生成的效果逼真,通常会有一些模糊感,尤其是在生成细节方面。另外VAE解码器可能无法按需生成特定想要的输出,因为输出依赖于从潜在空间中的随机采样。第七章
变分自编码器7.1自编码器模型7.2变分自编码器的模型7.3VAE的应用7.3VAE的应用由7.2节可知,VAE更适用于训练稳定性要求较高且潜在空间可解释性重要的任务,如数据预测、异常检测等。接下去以数据预测为例,演示VAE在模拟温度数据方面的应用。在该例中,使用亚利桑那州菲尼克斯市50年的温度数据来训练一个预测模型。为了生成有用的预测数据,它必须捕捉原始数据的几个特征,包括:(1)季节性概况:夏季应该比冬季更暖;(2)昼夜概况:白天应该比夜晚更暖;(3)自相关性:数据应该平滑,连续几天的温度应该相似。最终所捕获的原始数据如图7.12和7.13所示,其中图7.13中年平均气温考虑气候变化,温度呈现上升趋势,每十年约上升0.7度,因此对该数据进行了矫正,以消除上升趋势。在本例中,VAE对训练数据进行特征提取,使得最重要的特征(由潜在变量表示)遵循定义的先验分布。通过对潜在分布进行采样,然后将其解码为原始输入的形式,可以生成新的数据。图7.12观测到的温度数据图7.13矫正后的年平均气温7.3VAE的应用编码器卷积利用输入的周期性来构建更好的潜在特征,而解码器反卷积将潜在特征转换为重叠的、重复的序列,以生成具有周期性模式的数据。对于我们这个包含50年时间序列的温度数据集而言,可以为每96小时周期分配一个潜在变量,也就是生成一个等于4天的周期时间序列。图7.14显示了在VAE模型训练完成后,预测数据与原始温度数据的季节性/昼夜概况和自相关性相匹配。可以看到,通过使用一维卷积层、灵活的采样分布先验,可以构建一个能够复制时间序列的VAE。图7.14VAE完成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 严重违章知识测试题目与答案
- 母婴同室试题及答案
- 风心病试题及答案
- 内经试题集及答案
- 自理能力测验试题及参考答案
- 2025-2026学年黑龙江省牡丹江市绥芬河市数学四年级下学期期末监测模拟试题含答案解析
- 2026年四川省苏教版高一数学必修第一册单元测试卷
- 2026年交通安全法规测试题库与练习
- 2026年食品安全与食品添加剂法规执行测试
- 2026年浙江省人教版五年级英语下册听力专项训练习题
- 2025年茶艺师(乌龙茶冲泡技艺)试题及答案
- 河南省养老类建筑消防设计技术要点2025
- 海天考研协议书
- 《电镀工艺原理与应用》课件
- 职业学校班主任培训材料
- 浙江省SBS改性沥青混合料应用技术规程
- DL/T5315-2014水工混凝土建筑物修补加固技术规程(完整)
- 项目财务策划
- 美容化妆培训课件生活妆
- 《责任心与执行力》课件
- 混凝土结构及砌体结构课件
评论
0/150
提交评论