AE
相当于展开版的 RBM,即分为编码器和解码器 2 个网络,但是由于 z 是依赖于输入的,所以随机生成 z 输入解码器,一般得不到有意义的图片,故使用时只使用编码器,用于数据降维和特征抽取
什么是 AE ?
- 又称自动编码器,由 Encoder、Decoder 两个部分组成,常用于数据压缩、数据去躁
- Encoder:负责将输入数据进行压缩,n 维输入数据通过 Hidden layer 压缩成 m 维的数据(m << n),即通过编码器学习一组参数,得到一个隐变量 z
- Decoder:负责还原数据,在需要用到的时候尽可能地以损失最小的方式恢复原始数据
- AE 可以应用于机器学习中的数据降维、特征抽取和数据可视化分析,在 CV 领域的应用有文本检索、以图搜图
AE 的损失函数?
- 通过 MSE 计算重建损失即可
AE 可以应用到图像生成吗?
- AE 不能用于图像生成:AE 的编码器编码出来的向量空间是不规整的。也就是说,解码器只认识经编码器编出来的向量,而不认识其他的向量。如果你把自己随机生成出来的向量输入给解码器,解码器是生成不出有意义的图片的。AE 不能够随机生成图片,所以它不能很好地完成图像生成任务,只能起到把图像压缩的作用
- AE 的改进 VAE 可以用于图像生成:AE 离图像生成只差一步了。只要 AE 的编码空间比较规整,符合某个简单的数学分布(比如最常见的标准正态分布),那我们就可以从这个分布里随机采样向量,再让解码器根据这个向量来完成随机图片生成了。VAE 就是这样一种改进版的 AE。它用一些巧妙的方法约束了编码向量 z,使得 z 满足标准正态分布。这样,解码器不仅认识编码器编出的向量,还认识其他来自标准正态分布的向量。训练完成后,我们就可以扔掉编码器,用来自标准正态分布的随机向量和解码器来实现随机图像生成了
参考: