自编码器是什么?有什么用

电子说

1.3w人已加入

描述

自动编码器是一种无监督的神经网络模型,它可以学习到输入数据的隐含特征,这称为编码(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)),理论上可以的,但通常不会这么做。

  自动编码器应该设计成不能学会完美地复制,通过强加一些约束,使自动编码器只能近似地复制,因些它能学习到数据的有用特性,自编码器根据不同的约束,有着不同的属性。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分