联系我们

AI 101.

什么是autoencoder?

mm

更新

 on

如果你读过了无人监督的学习之前的技巧,你可能会遇到这个词“autoencoder.“。 autoencoders是联合国的主要方式之一监督学习模型是开发的。然而,什么是autoencoder?

简而言之,AutoEncoders通过参加数据,压缩和编码数据来操作,然后从编码表示重构数据。培训模型,直到最小化损耗,并且尽可能地再现数据。通过此过程,AutoEncoder可以学习数据的重要特征。虽然这是一个快速定义AutoEncoder,但仔细看看AutoEncoders并更好地了解它们的功能是有益的。本文将努力使原删除AutoEncoders,解释AutoEncoders及其应用程序的体系结构。

什么是autoencoder?

autoencoder.s.是神经网络。神经网络由多个层组成,并且AutoEncoder的定义方面是输入层包含与输出层完全多的信息。输入层和输出层具有完全相同数量的单位的原因是AutoEncoder旨在复制输入数据。它在分析它后输出数据的副本并以无监督的方式重建。

通过AutoEncoder移动的数据不仅直接从输入到输出映射,这意味着网络不只是复制输入数据。 AutoEncoder有三个组件:压缩数据的编码(输入)部分,处理压缩数据(或瓶颈)和解码器(输出)部分的组件。当数据被馈送到AutoEncoder中时,它被编码,然后压缩到较小尺寸。然后,网络在编码/压缩数据上培训,输出该数据的重新创建。

那么为什么要训练网络才能重建所提供的数据?原因是网络了解输入数据的“本质”,或最重要的特征。训练网络后,可以创建一个可以合成类似数据的模型,并添加某些目标特征。例如,您可以在颗粒图像上培训AutoEncoder,然后使用训练有素的模型从图像中删除谷物/噪声。

AutoEncoder架构

让我们来看看autoencoder.的体系结构。我们将在此讨论AutoEncoder的主要架构。我们将在下面的部分中讨论这一普通架构有变化。

Photo: Michela Massi via Wikimedia Commons,(//commons.wikimedia.org/wiki/File:Autoencoder_schema.png)

如前所述,AutoEncoder本质上可以分为三个不同的组件:编码器,瓶颈和解码器。

AutoEncoder的编码器部分通常是前馈,密集连接的网络。编码层的目的是采用输入数据并将其压缩成潜在的空间表示,生成具有减少维度的数据的新表示。

代码层或瓶颈处理数据的压缩表示。瓶颈码被仔细旨在确定观察到的数据的最相关部分,或者将另一种方式的数据重建更为重要的数据。这里的目标是确定需要保留的哪些方面,并且可以被丢弃。瓶颈代码需要平衡两个不同的注意事项:表示大小(表示表达的程度)和变量/特征相关性。瓶颈在网络的权重和偏置上执行元素明智的激活。瓶颈层也有时称为潜在的表示或潜在变量。

解码器层是负责拍摄压缩数据并将其转换回与原始未置换数据相同尺寸的表示。转换是通过编码器创建的潜在空间表示完成的。

AutoEncoder的最基本的体系结构是前馈架构,具有与多层的Perceptrons中使用的单层Perceptron相同的结构。与常规前馈神经网络一样,自动编码器通过使用BackPropagation培训。

autoencoder.的属性

有各种类型的AutoEncoders,但它们都有一定的属性,使其联合起来。

AutoEncoders自动学习。它们不需要标签,如果给予足够的数据’很容易获取AutoEncoder在特定类型的输入数据上达到高性能。

AutoEncoders是特定于数据的。这意味着它们只能压缩与AutoEncoder已经培训的数据高度相似的数据。 AutoEncoders也有损,这意味着与输入数据相比,模型的输出将降级。

设计AutoEncoder时,机器学习工程师需要注意四种不同的模型超参数:代码大小,层数,每层节点和损耗功能。

代码大小决定了多少个节点开始网络中间部分,并且更少的节点压缩数据更多。在一个深度的autoencoder中,虽然图层的数量可以是工程师认为适当的任何号码,但是在编码器继续时,图层中的节点的数量应减少。同时,在解码器中相对保持真实,这意味着随着解码器层接近最终层时,每个层的节点数量应该增加。最后,AutoEncoder的丢失功能通常是二进制交叉熵或均方误差。二进制交叉熵适用于数据的输入值为0的实例– 1 range.

autoencoder.类型

如上所述,存在对经典的AutoEncoder架构的变化。让我们来检查不同的autoencoder架构。

Photo: Michela Massi via Wikimedia Commons, CC BY SA 4.0 (//commons.wikimedia.org/wiki/File:Autoencoder_sparso.png)

虽然AutoEndoders通常具有通过减少节点来压缩数据的瓶颈,稀疏的autoencoderS是典型操作格式的替代方案。在稀疏网络中,隐藏的层保持与编码器和解码器层相同的大小。相反,给定层内的激活遭到惩罚,使其提升,因此损耗函数更好地捕获输入数据的统计特征。要换句话说,虽然稀疏的AutoEncoder的隐藏层具有比传统的AutoEncoder更多的单元,但在任何给定的时间只有一定比例的活动。保留最有影响力的激活功能,其他函数被忽略,并且该约束有助于网络确定输入数据的最大特征。

contr

对比的自动化器旨在对数据的小变化设计,保持数据的一致表示。这是通过对损失函数施加罚款来实现的。该正则化技术基于输入编码器激活的Jacobian矩阵的Frobenius标准。该正则化技术的效果是该模型被迫构建类似输入将具有类似编码的编码。

卷积的

卷积的自动化器通过将数据拆分为小节,然后将这些子部分转换为简单的信号来编码输入数据,以共同汇总以创建数据的新表示。类似于卷积神经网络,卷积AutoEncoder专门从事图像数据的学习,它使用滤波器通过部分通过部分移动到整个图像部分。由编码层生成的编码可用于重建图像,反映图像,或修改图像的几何形状。一旦通过网络了解了过滤器,它们可以在任何相似的输入上使用它们来提取图像的特征。

去噪

Photo: MAL via Wikimedia Commons, CC BY SA 3.0 (//en.wikipedia.org/wiki/File:ROF_Denoising_Example.png)

去噪自动化器将噪声引入编码,导致编码是原始输入数据的损坏。这种损坏的数据版本用于训练模型,但丢失函数将输出值与原始输入和损坏的输入进行比较。目标是网络将能够重现原始的未损坏图像的图像。通过将损坏的数据与原始数据进行比较,网络了解数据的哪些功能是最重要的,哪些功能是不重要/损坏。换句话说,为了使模型用于去噪损坏的图像,必须提取图像数据的重要特征。

变分

变形式自动化器通过假设如何分发数据的潜在变量,通过假设进行假设。变形AutoEncoder为训练图像/潜在属性的不同特征产生概率分布。培训时,编码器为输入图像的不同特征创建潜在分布。

 

因为模型将特征或图像学习为高斯分布而不是离散值,所以它能够用于生成新图像。对高斯分布进行采样以创建一个向量,该向量被馈送到解码网络中,这使得基于该样本的矢量呈现图像。本质上,该模型学习培训图像的共同特征,并为它们分配它们将发生的一些概率。然后可以使用概率分布来逆转工程师,从而生成类似于原始训练图像的新图像。

在培训网络时,分析编码数据并识别模型输出两个向量,绘制图像的平均值和标准偏差。基于这些值创建分发。这是针对不同潜在的国家完成的。然后解码器从相应的分布中取随随机的样本,并使用它们来重建对网络的初始输入。

autoencoder.应用程序

AutoEncoders可用于广泛各种应用,但它们通常用于减少维度,数据去噪,特征提取,图像生成,序列预测序列和推荐系统的任务。

数据去噪是使用AutoEncoders从图像中剥离谷物/噪声。同样,AutoEncoders可用于修复其他类型的图像损坏,如模糊图像或图像缺失部分。减少维度可以帮助高容量网络学习图像的有用功能,这意味着AutoEncoders可用于增强其他类型的神经网络的训练。对于使用AutoEncoders进行特征提取,这也是如此,因为AutoEncoder可用于识别其他培训数据集的功能以培训其他模型。

在图像生成方面,AutoEncoders可用于生成假人类图像或动画字符,其在设计面部识别系统或自动化动画的某些方面。

序列预测模型的序列可用于确定数据的时间结构,这意味着AutoEncoder即使在序列中也可以用于生成下一个。因此,AutoEncoder可用于生成视频。最后,Deep AutoEncoders可用于通过拾取与用户兴趣有关的模式来创建推荐系统,编码器分析用户接合数据和解码器创建适合既定模式的建议。