自动编码器是无监视的神经网络模型,可以学习输入数据的隐含特征。 这称为编码(coding ),可以利用同时学习到的新特征重构原始输入数据。 这被称为解码(decoding )。 从直观上看,自动编码器可以用于特征降维,类似于主成分分析PCA,但性能比PCA高,是因为神经网络模型可以提取更有效的新特征。
编码器:该部分可以将输入压缩为潜在的空间表示,可以用编码函数h=f(x )表示。
解码器:这个部分可以重构来自潜在空间表示的输入,可以用解码器函数r=g(h )表示。
自编码器结构
因此,整个自编码器可以用函数g(f ) x ) )=r进行记述。 其中,输出r接近原始输入x。
目前,自编码器的应用主要有两个方面,一是数据去噪,二是为可视化而降维。 通过设置适当的维和稀疏约束,自编码器可以学习比PCA等技术更有趣的数据投影。
编码器可以根据数据样本进行无监视的学习。 也就是说,可以将该算法应用于数据集,获得良好的性能。 另外,不需要新的特征工程,只需要适当训练数据。
但是,自编码器在图像压缩方面做得不好。 由于在特定的数据集上训练自编码器,因此处理与训练集相似的数据时会得到良好的压缩结果,但压缩其他差异较大的图像时没有效果。 这里,像JPEG这样的压缩技术在通用的图像压缩方面更优越。
自动编码器是神经网络的一种,经过训练后可以尝试将输入复制到输出上。 换言之,就是使输出的内容和输入的内容相同。 自动编码器的内部有隐式层h,可以生成编码来表示输入。 可认为该网络由一个编码器h=f(x )和生成重构的解码器r=g ) h )两部分组成。 最后使x等于约g(f ) x ) )。 网络不能设计为x=g(f ) x ) )。 理论上可以,但通常不做。
自动编码器应该被设计成不能学习完美的拷贝,通过施加一些限制,自动编码器只能进行近似的拷贝。 由于它们可以学习数据的有用特性,因此自编码器根据约束而具有不同的属性。