什么是主动编码器
主动编码器(AutoEncoder)最开端作为一种数据的紧缩办法,其特点有:
-
跟数据相干程度很高,这意味着主动编码器只能紧缩与练习数据类似的数据,这个其实比较显然,因为应用神经收集提取的特点一般是高度相干于原始的练习集,应用人脸练习出来的主动编码器在紧缩天然界动物的图片是表示就会比较差,因为它只进修到了人脸的特点,而没有可以或许进修到天然界图片的特点;
-
紧缩后数据是有损的,这是因为在降维的过程中弗成避免的要损掉掉落信息;
到了2012年,人们发明在卷积收集中应用主动编码器做逐层预练习可以练习加倍深层的收集,然则很快人们发明优胜的初始化策略要比费劲的逐层预练习有效地多,2014年出现的Batch Normalization技巧也是的更深的收集可以或许被被有效练习,到了15岁尾,经由过程残差(ResNet)我们根本可以练习随便率性深度的神经收集。
所以如今主动编码器重要应用有两个方面,第一是数据去噪,第二是进行可视化降维。然而主动编码器还有着一个功能就是生成数据。
我们之前讲过GAN,它与GAN比拟有着一些好处,同时也有着一些缺点。我们先来讲讲其跟GAN比拟有着哪些长处。
第一点,我们应用GAN来生成图片有个很不好的缺点就是我们生成图片应用的随机高斯噪声,这意味着我们并不克不及生成随便率性我们指定类型的图片,也就是说我们没办法决定应用哪种随机噪声可以或许产生我们想要的图片,除非我们可以或许把初始分布全部属一遍。然则应用主动编码器我们就可以或许经由过程输出图片的编码过程获得这种类型图片的编码之后的分布,相当于我们是知道每种图片对应的噪声分布,我们就可以或许经由过程选择特定的噪声来生成我们想要生成的图片。
第二点,这既是生成收集的长处同时又有着必定的局限性,这就是生成收集经由过程对抗过程来区分“真”的图片和“假”的图片,然而如许获得的图片只是尽可能像真的,然则这并不克不及包管图片的内容是我们想要的,换句话说,有可能生成收集尽可能的去生成一些背景图案使得其尽可能真,然则琅绫擎没有实际的物体。
主动编码器的构造
起首我们给出主动编码器的一般构造

- class autoencoder(nn.Module):
- def __init__(self):
- super(autoencoder, self).__init__()
- self.encoder = nn.Sequential(
- nn.Linear(28*28, 128),
- nn.ReLU(True),
- nn.Linear(128, 64),
- nn.ReLU(True),
- nn.Linear(64, 12),
- nn.ReLU(True),
- nn.Linear(12, 3)
- )
- self.decoder = nn.Sequential(
- nn.Linear(3, 12),
- nn.ReLU(True),
- nn.Linear(12, 64
推荐阅读
* 查看表中插入的数据值 1. 背景* MySQL支撑SQL标准整数类型整数(或INT)和SMALLINT。作为标准的扩大,MySQL还支撑整数类型TINYINT、MEDIUMINT和BIGINT2. 整数类型所需的存储和值范围 >>>详细阅读
本文标题:深度学习自动编码器还能用于数据生成?这篇文章告诉你答案
地址:http://www.17bianji.com/lsqh/36114.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示