无监督深度学习之美
神经网络从根本上是有监督的——它们接受一组输入,执行一系列复杂的矩阵操作,并返回一组输出。随着世界产生越来越多的无监督数据,简单和标准的无监督算法已经不够用了。我们需要以某种方式将神经网络的深层力量应用于无监督的数据。
幸运的是,自监督学习(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 )思想可以进一步以创造性的方式应用于若干有监督问题,取得了相当大的成功。
谢谢阅读!
原文:https://towardsdatascience.com/the-intuition-and-applications-behind-autoencoders-variants-4afcd45559d4