为什么自编码器解码器通常是与编码器相反的架构?

机器算法验证 神经网络 降维 自动编码器
2022-04-09 11:12:55

我见过的大多数自动编码器架构都有类似的架构,主要是解码器只是编码器的反面。如果自编码器的目标是低维特征学习,为什么解码器不简单?一个例子是线性变换,其中特征矩阵(即瓶颈)次观察是将映射到原始输入特征大小的学习权重矩阵。在具有多个隐藏层的深度自动编码器的情况下,与编码器相比,上述示例中的解码器容量较低。FWFnfWF

我的直觉如下:

如果解码器很简单,那么自动编码器被迫在瓶颈中学习更高质量的特征来进行补偿。相反,如果解码器具有高表示能力,它可以有效地将学习不佳的瓶颈映射到输出重建。在这种情况下,重建误差可能会更低,但这并不一定意味着学习的特征实际上更好。

在我自己的应用程序(图上的特征学习)中,我发现一个简单的解码器比只镜像编码器的解码器产生更好的学习特征。本文中,作者设计了一个带有非常简单的解码器的图自动编码器其中是重建的图邻接矩阵,是学习的特征矩阵,是一些非线性变换,如 ReLU。A^=σ(ZZT)A^Zσ

我一直在寻找这个问题的答案一段时间,但我没有找到任何解释或理论结果来解释为什么更高容量的解码器比低容量的解码器更可取(反之亦然)。如果有人可以提供解释或指出正确的方向,我将不胜感激。

2个回答

您的直觉是正确的,但不是在正确的上下文中。首先,让我们将“高质量特征”定义为可以回收用于训练其他模型的特征,例如可迁移的。例如,在 ImageNet 上训练(未标记的)编码器有助于为 ImageNet 和其他图像数据集的分类提供可靠的基线。

大多数经典的自动编码器都接受了某种形式的(正则化)L2 损失的训练。这意味着在对表示进行编码后,解码器必须再现原始图像,并根据每个像素的误差进行惩罚。虽然正则化在这里可以提供帮助,但这就是为什么您倾向于得到模糊图像的原因。问题是损失不是语义上的:它不关心人类是否有耳朵,但关心的是整个面部的肤色趋于一致。因此,如果您要用非常简单的东西替换解码器,则表示可能会专注于在图像的每个区域中获得正确的平均颜色(其大小大致与解码器的复杂性成正比,与隐藏的层大小)。

另一方面,有许多通用的自我监督技术可以学习更高质量的语义特征。这里的关键是找到更好的损失函数。您可以在此处找到 Andrew Zisserman 的一组非常好的幻灯片一个简单的例子是一个经过训练来预测随机作物对的相对位置的孪生网络:

在此处输入图像描述

上面是猫脸的第一个裁剪,网络需要预测耳朵裁剪应该出现在猫脸的东北部。请注意,作物是随机选择的,诀窍是平衡作物之间的最小和最大距离,以便相关作物经常出现。

换句话说,该网络使用共享编码器和基本分类器来比较不同作物的嵌入。这迫使网络了解猫的真实身份,而不是一组平均颜色和特征形状的软集合。

您会在上面的幻灯片中找到更多示例,这些示例还表明,在训练预测类别时,这些嵌入的传输比死记硬背的自动编码器要好得多。

我想知道部分原因是否可能是历史原因(显然 Hinton 2006 年的论文表明它是这样做的),并且因为(我相信)捆绑权重是很常见的。即解码器使用与编码器相同的权重,并且它们被有效地一起学习。

这个问答https://stackoverflow.com/q/36889732/841830讨论了使用捆绑权重的优势。这里还有更多背景:https ://amiralavi.net/blog/2018/08/25/tied-autoencoders