有谁可以帮助我理解什么是自动编码器?

数据挖掘 机器学习 自动编码器
2022-02-10 07:03:02

有谁可以帮助我理解自动编码器的含义?

我们期望的是输出等于输入,那为什么我们需要这样做呢?这对我来说没有任何意义。

我找到了一些解释,它学会了如何重建输入数据,这是否意味着我们可以从原始图片中挑选一些像素,然后重建整个原始图片?如果是这样,对我来说仍然没有意义,因为模型的重建部分是从隐藏层到输出层,我们不能只将选择的数据放入隐藏层,因为隐藏层的输入数据是组合来自输入层的全部原始数据。

提前致谢。

2个回答

自编码器是一种神经网络解决降问题的方法。

降维的重点是找到数据的低维表示。例如,如果您的数据包括人们的身高、体重、裤腿尺寸和鞋码,我们预计会有一些潜在的尺寸维度来捕捉这些变量的大部分差异。如果您熟悉主成分分析 (PCA),这是降维技术的另一个示例。

自动编码器尝试通过隐藏的“瓶颈”层来捕获其数据的低维表示,该层远小于数据的维数。这个想法是训练一个神经网络,尽可能多地丢弃它的维度,并且仍然可以重建原始数据。

一旦你有一个表现良好的自动编码器,通过观察瓶颈层的激活,就有可能看到单个示例在每个缩减维度中的得分情况。这可以让我们开始理解每个维度代表什么。然后可以使用这些激活来对这组缩减维度的新示例进行评分。

让我插入2美分...

一般来说,“自动编码”是一种有损压缩技术,尽管由于数据特定而不是很有用(在猫上训练的自动编码器对汽车不是很有用)。

在实践中,它用于:

  • 数据去噪
  • 降维
  • 更复杂网络的特征提取部分的无监督预训练
  • 并且...从已见样本中生成新的未见样本(!)

后者可以通过一种称为变分自动编码器 (VAE) 的变分自动编码器 (VAE),在其中您对正在学习的压缩表示施加一些约束,迫使它表示一组变量,这些变量对表示输入数据的概率分布进行建模。

换句话说,在 VAE 中,每个“瓶颈”变量都代表了对输入有意义的东西(想想“猫的颜色”)。因此,改变这种表示会在 AE 的解码器部分产生有意义的输出。