前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自编码器及其变种背后的直觉与应用

自编码器及其变种背后的直觉与应用

作者头像
McGL
发布2020-10-10 10:39:17
1.1K0
发布2020-10-10 10:39:17
举报
文章被收录于专栏:PyVisionPyVision

无监督深度学习之美

作者:Andre Ye 编译:McGL

神经网络从根本上有监督的——它们接受一组输入,执行一系列复杂的矩阵操作,并返回一组输出。随着世界产生越来越多的无监督数据,简单和标准的无监督算法已经不够用了。我们需要以某种方式将神经网络的深层力量应用于无监督的数据。

幸运的是,自监督学习(self-supervised learning )的创造性应用——从天然无监督的数据中人工创建标签,比如倾斜图像并训练网络来确定旋转的程度——在无监督深度学习的应用中发挥了巨大作用。

自编码器(Autoencoders)被训练来重建输入; 换句话说,标签 y 就是输入 x。由于自编码器在网络中部有神经元(neurons)数量少于输入/输出的瓶颈(bottlenecks),网络必须找到一种压缩信息(编码)和从压缩信息中重建(解码)的方法。

这些类型的模型可以有多个隐藏层,用于携带和转换压缩的信息。由于这些节点中的空间有限,它们通常被称为“潜在表征(latent representations)”。

“latent”这个词来自拉丁语,意思是“保持隐藏”。潜在变量(Latent variables)和表征(representations)只是——它们携带间接的、编码的信息,以后可以解码和使用。我们可以把迁移学习(transfer learning)看作是利用潜在变量: 尽管像 ImageNet 上预训练的 Inception模型可能不能直接在数据集上表现良好,但它已经建立了图像识别动态的特定规则和知识,这使得进一步的训练更加容易。

在创建自编码器时,需要注意以下几个组件:

  • 损失函数非常重要,它量化了“重建损失”。由于这是一个回归问题,损失函数通常是二值交叉熵(对于二元输入值)或均方差。
  • 确定编码大小——这是第一个隐藏层(紧跟输入层的层)中的神经元数量。这可以说是最重要的一层,因为它立即决定了有多少信息将通过其余层传递。
  • 自编码器的性能高度依赖于体系结构。平衡表征大小——可以通过隐藏层传递的信息量; 特性重要性——确保隐藏层足够紧凑,这样网络可以确定重要特性。
  • 对不同类型的数据使用不同的层。例如,可以使用一维卷积层来处理序列。自编码器和神经网络一样,只是结构上有瓶颈。

原版自编码器的一个应用是异常检测(anomaly detection)。例如,我可以构造一个使用一维卷积层(带有结构瓶颈)的一维卷积自编码器,并训练它来重建输入序列。

经过长时间的训练后,自编码器可以学习序列的潜在表征方法——它能够识别重要的区别(序列的哪些部分对于精确重建更有价值),并可以判断在整个序列中哪些特征是普遍存在的。

当它对一个测试序列进行预测时,重建损失决定了它与以前的序列有多么相似。如果自编码器能够正确地重建序列,那么它的基本结构与以前看到的数据非常相似。另一方面,如果网络不能很好地重建输入,它就不符合已知的模式。

自编码器的另一个应用是图像去噪(denoising)。图像通过人为破坏添加噪声,并被输入到一个自编码器中,该编码器试图复制原始的未破坏的图像。自编码器最适合去噪,因为网络通过瓶颈只学习通过图像的结构元素,而不是无用的噪声。

稀疏自编码器(Sparse autoencoders)类似于自编码器,但隐藏层至少有和输入和输出层相同数量的节点(如果不是更多)。但是,隐藏层使用 L1正则化,这会导致不必要的节点失效。

因此,在某种意义上,结构是由模型来选择的。然而,让模型自己选择并不总是好的; 一般来说,L1正则化倾向于消除比必要更多的神经元。

请记住,正则化的目标不是为了找到最佳性能的结构,而是主要为了减少参数的数量,甚至以牺牲一些性能为代价。然而,在需要稀疏结构的情况下,稀疏自编码器是一个很好的选择。

变分自编码器(Variational Autoencoders),通常简称为 VAEs,是自编码器生成内容的扩展。正如我们之前看到的异常检测,自编码器擅长的一件事情就是提取模式,本质上是通过将输入映射到缩小的潜在空间。这并没有带来多少创造性(originality)。

任何生成模型(generative model)的一个组成部分就是随机性。变分自编码器将输入映射到多维高斯分布而不是潜在空间中的点。然后,解码器从这个分布中随机抽取一个向量以产生输出。

变分自编码器和自编码器的主要区别在于变分自编码器根本上是概率性的。他们建立由概率分布形成的一般规则来解释输入和产生输出。

当 VAEs 编码一个输入时,它被映射到一个分布;因此存在随机性和创造性的空间。另一方面,自编码器必须识别往往错综复杂的模式,必须确定地接近潜在空间,以取得良好的效果。

最后,自编码器比任何一种算法都更像是一个概念。这是一个架构上的决定,以瓶颈和重建为特征,意图迫使模型将信息压缩到并解释潜在空间。编解码(encoder-decoder )思想可以进一步以创造性的方式应用于若干有监督问题,取得了相当大的成功。

总结

  • 自编码器是深度学习在无监督问题上的一个创造性应用; 是对快速增长的未标记数据的一个重要回应。
  • 输入和输出大小一样及瓶颈结构是自编码器拥有的属性。它们将压缩的信息存储在潜在空间中,并训练以减少重建损失。
  • 标准自编码器可用于异常检测或图像去噪(用卷积层替代)
  • 稀疏自编码器有隐藏层(神经元的数量与输入和输出相同),但使用了 L1正则化消除不必要的神经元。在某种意义上,神经网络在最终结构中“选择”哪些神经元以及保留多少神经元。
  • 变分自编码器的目的是生成。因此,它们将输入表示为概率分布,而不是潜在空间中的确定点。解码器从这些分布中取样,产生随机(因此有创造性)输出。

谢谢阅读!

原文:https://towardsdatascience.com/the-intuition-and-applications-behind-autoencoders-variants-4afcd45559d4

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PyVision 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 作者:Andre Ye 编译:McGL
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档