神经网络中对的输入顺序如何无关紧要(即对称性)?

人工智能 神经网络 深度学习 火炬 前馈神经网络
2021-10-28 02:44:56

让我解释一下,假设我们正在构建一个神经网络来预测两个项目是否相似。这是一个分类任务,具有相似和不同项目示例的硬标签 (0, 1)。假设我们还可以访问每个项目的嵌入。

一种天真的方法可能是连接两个项目嵌入,添加一个或两个线性层,最后对输出概率执行一个 sigmoid(因为这是二进制分类)。

但是,这种方法意味着潜在地输入(x, y)模型可能会给出与输入模型不同的分数(y, x),因为 concat 不是对称的。

我们如何才能克服这一点?这种情况下的常见做法是什么?

到目前为止,我已经想过:

  1. 每当我输入时(x, y),我也可以输入(y, x)并始终取两者的平均预测。但这感觉像是一种强制网络对称的骇人听闻的方式,尽管输入顺序不同,但它并不能让它学习相同的东西。

  2. 用其他一些对称张量操作替换 concat。但是什么操作呢?添加?逐元素乘法?元素最大?什么是“默认”?

2个回答

您描述的问题与Shift Invariance (如果不是子集)有关。移位不变性是指输入的任何几何平移,但是以 2 种不同方式连接一对中音(x,y)(y,x)可以看作是步长等于张量形状的平移。

如何解决缺乏移位不变性的问题?尽管一些论文指出一些卷积操作可能是一个核心问题,但对于为什么深度神经网络不是移位不变性仍然没有达成一致的共识。

  • Zhang提出了一种替代的 pooling 变体应该增强抗锯齿特征图
  • Chaman & Dokmanic专注于分析黎明采样操作的影响,提出了一种新的二次采样操作,以取代传统的下采样方法。

从完全不同的角度出发,其他论文分析了经典欧几里得几何的影响,不仅用于损失设计(例如 l1 和 l2 范数),而且还用于每个经典深度学习模型的基本假设(尽管非线性激活函数,每个隐藏层仍然是形式的线性变换wx+b)。因此,我们不是固定线性操作或强制执行良好的移位不变特征图,而是更改我们使用的几何形状,以确保平移和旋转不会影响我们的目标优化。

最后一点,如果您以这种方式重新考虑,我认为您的第一个建议可能值得一试:

  • 每次展示模型 2 对(x,y)&(y,x)添加一个自定义损失组件以强制执行相同的预测(实际上可能是两个输出 logits 之间的 MSE)。如果模型有可能对这个特定的翻译操作变得健壮,这个损失至少应该给你一个提示(如果这个损失分量随着训练时间的推移而减少,答案是肯定的)。

我在这里回答了一个类似的问题所以这里的目标是训练一个网络,它可以判断输入是否xy是否“相似”。你可以先建立一个模型f它将高维输入“压缩”成更小的嵌入维度。Xception的情况下,这f将是来自 a 的映射299×299×3RGB 图像到2048“特征向量”。

现在分类器模型c(x,y)可以构建为c(x,y)=g(f(x)f(y)), 在哪里g可以是一个非常简单的函数,没有任何可训练的参数,例如g(d¯)=1eidi2或更复杂的东西。明显这里c(x,y)=c(y,x)c(x,x)=0.

有一个习惯fg您可以端到端地训练这个模型,或者如果您的嵌入是固定的(或者您使用预训练的网络f) 也可以只训练g.