自动编码器的特征向量的有序元素?

数据挖掘 机器学习 深度学习 自动编码器
2022-02-03 16:18:46

这是一个新手问题;当一个人训练自动编码器或变分自动编码器时,训练向量中的对象的顺序x事情?

假设我拍摄了一张 MNIST 图像(28×28)并将其转化为大小的特征向量xR1×784. 那么,如果我将整个图像垂直、水平或其他一些奇特的方式展平,这有关系吗?或者如果我要打乱特征向量中元素的顺序,那会让 VAE 或 AE 搞砸吗?

1个回答

对于完全连接的网络,特征的精确顺序最初并不重要(即在您开始训练之前),只要它对于每个示例都是一致的。这与您是否有要训练的自动编码器或其他一些完全连接的网络无关。处理以像素为特征的图像不会改变这一点。

一些警告:

  • 要成功训练,您需要每个示例的像素顺序相同所以它可以随机洗牌,但前提是你对每个例子都保持相同的洗牌。

    • 顺便说一句,你仍然会从完全随机的变量混洗中获得一些训练效果,因为例如写一个“8”比写一个平均写一个“1”有更多的填充像素。但是对于大多数有趣的问题域,性能会很差,准确性只比猜测好一点。
  • 为了可视化自动编码器学到的东西,你的输出需要被解读。您实际上可以输入一个(每个示例相同的随机播放)加扰图像并训练自动编码器对其进行解扰 - 从理论上讲,这将获得与训练匹配加扰输入相同的精度,再次表明像素顺序并不重要。您还可以训练自动编码器以将加扰的输入与加扰的输出相匹配,并通过反转加扰效果将其可视化(同样,这必须是一致的加扰,每个示例都相同)。

在一个全连接的神经网络中,模型中没有任何东西可以代表像素之间的局部差异,甚至它们之间存在某种关联。因此,无论图像如何呈现,网络都将学习关系(例如边缘)。但它也将受到无法概括的影响。例如,仅仅因为像素 3 和 4 之间的边缘很重要,网络将不会知道像素 31 和 32 之间的相同边缘是相似的,除非在训练数据中出现大量这两种示例。

解决由于模型中局部性知识丢失而导致的泛化能力差是卷积神经网络 (CNN) 的动机之一。您可以拥有CNN 自动编码器,对于那些,您有意保留 2D 结构和像素之间的局部关系 - 如果您不这样做,那么网络的功能将非常糟糕或根本没有。