了解自动编码器--一种无监督学习方法
这篇文章涵盖了自动编码器的概念。诸如什么是自动编码器,自动编码器的结构,以及自动编码器训练背后的直觉等概念。
TKTejasKhare24.00
5月12日, 2021
神经网络可以学习所提供的数据中的模式,并在给定的额外数据上预测一个结果。我们可以用它们来预测一个人在给出各种可观的因素后是否会从银行获得贷款,这些因素我们称之为数据的特征,如收入、信用评分、债务、资产、开支等。在这个例子中,使用 **Logistic回归**将是明智的,因为我们需要得到一个预测,告诉我们这个人是否会得到贷款。
但是,我们可以使用神经网络来产生一个输出,而不是在给定的数据上预测什么吗?
幸运的是,是的,我们可以。这里涉及到自动编码器的作用,它看起来就像在这些问题中使用一样漂亮。自动编码器有能力产生一个狗的图像,只需将狗的 "处方 "定义给我们的自动编码器。生成式建模是一个较新的概念,涉及简单的神经网络或卷积神经网络,而且在某种程度上没有得到充分的体现。
因此,在这篇文章中,我想对生成模型--自动编码器做一些说明。
自动编码器
自动编码器是一种无监督的学习技术,主要用于获取给定输入数据的表示。输入数据的形式可以是图像、文本、语音,甚至是视频,而视频只不过是连续的图像或帧。自动编码器将试图找到它们最接近的匹配,这将是输入数据的压缩转换。
你可能已经猜到,自动编码器在这个过程中使用了编码的概念。嗯,这并不难猜,你是完全正确的。一个自动编码器接收数据并自动进行编码,这要归功于它的结构。但我们不能使用网络的编码输出。因此,我们还需要一个解码器,将编码转换或转化为有用的格式。解码器的输出应该与输入相似 ,这将被认为是一个好的生成性自动编码器。
用数学术语来说,如果你给一个形状为(256, 256, 3)的输入,那么自动编码器的输出应该是(256, 256, 3)。它们将输入数据压缩到一个较低的维度,试图学习特征,最后试图从学习中得到输入数据的最接近的表示。
注意:压缩和将只适合于它所训练的数据类型。例如,如果自动编码器是在汽车图像上训练的,你就不能指望自动编码器生成自行车。;)自动编码器不需要传递标签,但这并不意味着它们不需要标签。它们从编码的数据中生成标签。
自动编码器的架构
现在让我们来看看我前面谈到的自动编码器的美丽架构。它包含一个瓶颈 类型的结构,可以压缩输入数据并找到特征之间的相关性。
自动编码器有三个层次--1.
1.编码器
这一层负责减少输入数据的尺寸,以尽量减少学习数据的模式和特征所需的计算。这一层可以是单个或多个神经网络层。例如,我们传递一个大小为(256,256,3)的输入图像。第一层通过给它一个16的核大小和1的跨度将其还原为**(128,128,32)。这一层将学习一些表征。第二层将通过给它一个64的内核大小和stride 2来给出一个(64,64,64)**的维度(你可以在这里查看数学公式来找到维度)。这一层将有一个综合的或较低层次的表示,以此类推。
2.潜伏空间
潜伏空间被称为低维代码或低维表示,作为一个中间步骤。
3.解码器
该层负责将编码转换回输入维度,并产生最相似或最接近的生成。没有目标值,因此它是一种无监督的技术。这一层也可以包含单个或多个神经网络层,它们的工作方式与编码器的神经网络相反。解码器包含对编码进行解码的转置卷积层,也就是增加维度。以编码器为例,解码器的输出将是一个(256,256,3)的图像(你可以在这里查看数学公式来寻找转置卷积网络的维度)。
如何训练一个自动编码器?

在上图中,你可以看到自动编码器在编码器和解码器部分有6个神经元,这意味着6个特征由两边的4个神经元来表示。让我们把我们生成的输出Y'和输入称为Y。
训练背后的直觉
- 我们将输入的Y送入自动编码器
- 我们从自动编码器中获得生成的输出Y'。
L = 
在图像的情况下,L是Y和Y'的像素之间的差异。但这并不能产生很好的效果,因为学习方法不会是平滑的,因此有梯度损失或梯度消失的问题。因此,与其使用平均绝对误差(MAE)作为我们的成本函数,还不如使用平均平方误差(MSE)------。
这里我们可以把MSE称为我们的重构或生成损失L'。因此,自动编码器的目标是找到参数的最佳值--权重 "W "和偏置 "b",以便使重构损失最小。
这篇文章就到此为止。我希望你觉得这篇文章有帮助。谢谢你,祝你好运 :)
投票2票
无监督学习的自动编码器