自动编码器是否保留距离?

机器算法验证 神经网络 降维 距离 自动编码器
2022-03-31 14:21:00

根据我的理解,自动编码器用于查找包含基本基础信息的输入特征的紧凑表示。

原始输入空间中的 L2 距离与缩减(紧凑)空间之间是否存在任何关系?如果不是,我可以训练网络以使紧凑表示在转换后保持距离吗?

2个回答

不,他们没有。我们基本上设计它们,使它们不能保持距离。自编码器是一种神经网络,它学习输入的“有意义”表示,保留其“语义”特征。引用的词(就像深度学习论文中的许多术语一样)没有严格的定义,但是假设,在一组输入上进行训练,自动编码器应该学习这些输入的一些共同特征,这允许用小的重构一个看不见的输入错误1 ​​。

自动编码器最小化输入和输出(重构输入)之间差异的最简单方法是只输出输入,即学习恒等函数,它是等距的,因此它保留了距离。但是,我们不希望自动编码器简单地学习恒等映射,因为否则我们不会学习“有意义的”表示,或者,更好地说,我们不会通过学习其基本知识来学习“压缩”输入语义特征和“丢弃”微小的细节(噪音,在去噪自动编码器的情况下)。

为了防止自动编码器学习恒等变换并强制它压缩输入,我们减少了自动编码器隐藏层(瓶颈层或层)中的单元数量。换句话说,我们迫使它学习一种非线性降维形式:并非没有,线性自动编码器和 PCA 之间存在着深厚的联系,这是一种众所周知的线性降维统计程序。

然而,这是有代价的:通过强制自动编码器执行某种非线性降维,我们阻止它保持距离。事实上,可以证明两个欧几里得空间之间不存在等距,即不存在保距离变换EnEm如果m<n(这在另一个陈述的证明中隐含地证明了)。换句话说,降维变换不能是等距。实际上,这很直观:如果自动编码器必须学会映射高维向量空间的元素V, 到低维流形的元素M嵌入V,它将不得不“牺牲”一些方向V,这意味着仅沿这些方向不同的两个向量将映射到M. 因此,它们的距离(最初为非零)不会被保留(变为 0)。

注意:可以学习有限元素集的映射V S={v1,,vn}, 到有限的元素集O={w1,,wn}M,使得成对距离是守恒的。这就是多维缩放试图做的事情。但是,不可能映射所有元素V到低维空间的元素W在保持距离的同时。


1当我们提到我最喜欢的自动编码器变分自动编码器时,事情会变得更加复杂,但我不会在这里关注它们。

您可以使用您喜欢的任何损失函数来训练网络。因此,方法 1,您可以创建一个损失函数来推动网络,以确保输出中小批量中的对之间的距离等于输入中的对之间的距离。如果您以小批量为基础进行操作,并且批量大小为 16 或 32,这似乎并非不可行。或者您可以采样几对,并计算这些损失(每个小批量相同数量的对,例如随机采样)。

至于创建一个保证保持距离的非线性网络,方法2,我认为一种方法可以是用本身保持距离的块构建网络,例如旋转。我不确定这个网络是否可以是线性变换以外的任何东西,而只是一个旋转。任何非线性,例如 sigmoid 挤压,都会使距离变形。

我认为方法 1 听起来对我来说是可行的,尽管不能保证总是保留距离,并且不会非常精确地保留它们。第二种方法对我来说很直观,您将被限制为单个旋转变换?

编辑:澄清。我正在回答“如何让自动编码器保持距离?”这个问题。我对“自动编码器是否保持距离”给出的隐含答案 是“默认情况下不是;尽管您可以投入大量精力来鼓励这种情况,即上述方法 1”。

编辑 2:@DeltaIV 关于降维有一个很好的观点。请注意,t-SNE 等的存在,即高维空间的低维投影,显示了试图保持距离的局限性(全局距离和局部距离之间的冲突;在降维中保持距离的挑战),但考虑到某些警告/妥协,这也是有可能的。