自编码器(Auto-encoder,AE)

自编码器
 

自编码器是一种无监督学习技术,利用 反向传播算法 使得输出值(输入数据的高效表示)等于输入值的人工神经网络,它先将输入压缩成潜在空间表征,然后通过这种表征来重构输出。

自编码是一种数据压缩算法,其中压缩和解压功能是:1)数据特定的,2)有损的,3)从例子中自动学习而不是由人工设计。此外,在几乎所有使用术语“自动编码器”的情况下,压缩和解压缩功能都是由神经网络来实现的。

自编码器的结构如下图:

开发者自述:我是这样学习 GAN 的

自编码器由编码器和解码器两部分组成。其中,编码器能将输入压缩成潜在空间表征,用编码函数h=f(x)表示;解码器能够重构来自潜在空间表征的输入,用加码函数r=g(h)来表示。所以,整个自编码器可以用函数g(f(x))=r来描述,其中输入r与原始输入x相近。

用处:

1) 可用来降维,通过设置合适的维度和稀疏约束,它可以学习到比PCA等更有意思的数据投影。原因:输入数据的这一高效表示成为编码,编码的维度一般远小于输入数据。限制h的维度使其小于输入x,这种情况下称作有损自编码器。通过训练有损表征,使得自编码器能学习到数据中最重要的特征。

2) 可以用作强大的特征检测器,应用于深度神经网络的预训练。原因:自编码器能从数据样本中进行无监督学习,意味着可以将这个算法用于某个数据集中,不需要任何新的特征工程,只需要适当地训练数据,就能取得良好的性能。当处理一个复杂的有监督学习问题又没有足够的标注数据,解决办法之一是找到一个解决类似任务的训练好的模型,复用低层。类似的,如果有一个很大的数据集但是绝大部分都是未标注数据,可以使用所有的数据先训练一个栈式自编码器,然后复用低层来完成真正的任务。

3) 可以用作生成模型,随机生成与训练数据类似(维度一般变小)的数据。比如,图像修复,也可以用人脸图片训练一个自编码器,它可以生成新的图片。对于数据好,但是它在图像压缩方面表现不如JPEG、GAN好,因为数据会有损。

4) 数据去噪,如数据样本、图像、音频等,去噪自编码器。

5) 信息检索

6) 异常检测

分类:

如果一个自编码器只是简单地学会将自编码器设置成g(f(x))=x,即输入与输出完全相等,那就没什么用处。所以通常需要给自编码器强加一些约束,强制模型考虑输入数据的哪部分需要被优先复制,这使得他只能近似地复制与训练数据相似的输入,通过训练输出值等于输入值的自编码器,让潜在表征h将具有价值属性,这在重构任务中构建约束来实现。

 待完善

 


版权声明:本文为godxdf原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。