引言
接触深度学习之初,了解到的第一种模型就是自编码器,当时的我虽然看了很多相关资料依然云里雾里,那么本篇主要整理总结一下自己眼中的自动编码器。
什么是自编码器
自编码器主要由编码器和解码器构成,编码器可以将输出x转换成y,解码器再将y转换成,最后的loss是计算x和之间的差距。
深度学习中,自编码器是一种无监督的神经网络模型
编码:学习输入数据的隐含特征
解码:用学习到的隐含特征重构原始输入数据
为什么要编码再解码呢?
神经网络在接受大量信息时学习是困难的,所以先从中提取出表征,再从这些表征中学习可以还原原始数据的信息,这样得到的表征就是最具代表性的高维表征。我们可以利用这些高维表征去进行其他任务的学习。
需要注意的是:自动编码器是有损的,不能完全的还原输入
自动编码器的应用
数据降噪 | 降维 | 生成数据
拓展
感觉生成网络和自编码思想有点类似,就去查了一下,原来自动编码器就是一般的生成模型,而论文里出现比较多的GAN是生成对抗网络,GAN由生成模型和对抗模型两部分组成。
生成模型:生成假数据,可以由自动编码器实现。
对抗模型:判别器,说白了就是分类器。
训练流程:1.从潜在空间抽取随机的点 2.生成器生成图像 3.mix生成图像和原始图像 4.训练判别器 5.在潜在空间抽取新的点 6.训练gan,反向传播优化生成器的参数。
套娃:对抗网络的输出=判别器(生成器(输入))