目录
3.2 变分自编码器 VAE(Variational Auto-Encoder)
1、自编码器(Auto-Encoder)
1.1 基于重构损失的方法-自编码器
自编码器是一种表示学习模型,以输入数据为参考,是一种无监督学习模型,可以用于数据降维和特征提取。
可以理解为一个试图去还原其原始输入的系统。自编码器模型如下图所示。
将输入映射到某个特征空间,再从这个特征空间映射回输入空间进行重构。训练完成后,使用编码器进行特征提取
从上图可以看出,自编码器模型主要由编码器(Encoder)和解码器(Decoder)组成,其主要目的是将输入x转换成中间变量y,然后再将y转换成x_,然后对比输入x和输出x_,使得他们两个无限接近。
encoder 编码器:输入数据提取特征
decoder解码器:基于提取的特征重构出输入数据
1.2 欠完备自编码器
输入x,隐藏层状态h,输出为x'
限定 h 的维度比 x 小,符合这种条件的称为欠完备自编码器
2、 最简单的自编码器结构
3层组成:1个输入层、一个隐藏层、一个输出层
3、 过完备自编码器
当编码器的维度大于输入维度,称为过完备自编码器
这种编码器必须增加限制,否则学不到任何有用的信息
3.1 正则编码器
3.1.1 去噪自编码器
改进之处在于原始输入的基础上加入噪声,迫使编码器不能简单学习恒等变换,必须从加噪声的数据中提取出有用信息用于恢复数据
具体做法是随机将一些输入置为0,得到了x加入噪声ε作为编码器的输入,解构出不带噪声的数据x,损失函数为 L(X+ε)
3.1.2 稀疏自编码器
除在输入加噪声,在损失函数上加正则项使得模型学习到有用的特征
以限制神经元的活跃度来约束模型,尽可能使大部分神经元不活跃
损失函数为:L(X) + Ω(X),Ω(X)为惩罚项
3.2 变分自编码器 VAE(Variational Auto-Encoder)
原理:本质是生成模型
目标:建模样本的分布P(x),训练完成后,使用解码器生成样本
VAE变分自动编码器作为AE的变体,它主要的变动是对编码(code)的生成上。编码(code)不再像AE中是唯一映射的,而是具有某种分布,使得编码(code)在某范围内波动时都可产生对应输出。
3.2.1 为什么需要VAE
传统的AE只能生成 similar image
3.2.2 原理
在编码过程中,增加一些限制,迫使生成的隐向量能够粗略遵循一个标准正态分布(一般遵循高斯分布)
3.2.3 损失函数
3.2.4 编码过程
3.2.5 与自编码器相比
- AE是一种无监督的表示学习方法,VAE是一种生成模型
- AE隐空间不连续
4 神经网络自编码器
在深度学习中,自动编码器是一种无监督的神经网络模型
编码:它可以学习到输入数据的隐含特征,这称为编码(coding),
解码:同时用学习到的新特征可以重构出原始输入数据,称之为解码(decoding)。
4.1 神经网络自编码器三大特点
1、自动编码器是数据相关的(data-specific 或 data-dependent),这意味着自动编码器只能压缩那些与训练数据类似的数据。例如人脸训练数据只能预测人脸相关,不能预测花草
2、自动编码器是有损的,意思是解压缩的输出与原来的输入相比是退化的
3、自动编码器是从数据样本中自动学习的,这意味着很容易对指定类的输入训练出一种特定的编码器,而不需要完成任何新工作。
5 自编码器的应用
5.1 特征降维
从直观上来看,自动编码器可以用于特征降维,类似主成分分析PCA,但是其相比PCA其性能更强,这是由于神经网络模型可以提取更有效的新特征
5.2 特征提取
自动编码器学习到的新特征可以送入有监督学习模型中,所以自动编码器可以起到特征提取器的作用
实例:图片的压缩及还原
为什么要进行压缩:1、保证输入图片的大小一致;2、减少输入数据,提取图片中最具代表性的特征
5.3 数据去噪
6 自编码器搭建
1)搭建编码器
2)搭建解码器
3)设定一个损失函数,用以衡量由于压缩而损失的信息