自动编码器是一种无监督的神经网络模型,它可以学习到输入数据的隐含特征,这称为编码(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)),理论上可以的,但通常不会这么做。
自动编码器应该设计成不能学会完美地复制,通过强加一些约束,使自动编码器只能近似地复制,因些它能学习到数据的有用特性,自编码器根据不同的约束,有着不同的属性。
-
编码器
+关注
关注
45文章
3638浏览量
134428
发布评论请先 登录
相关推荐
评论