置换不变神经网络


14

给定一个将n个数据点作为输入的神经网络Fx 1x n。我们说˚F就是排列不变,如果ñX1个XñF

FX1个Xñ=Fp一世X1个Xñ

p一世

有人可以为置换不变神经网络推荐一个起点(文章,示例或其他论文)吗?


有趣的问题。您想将输入视为集合而不是向量。假设您的输入是标量的或其他可比较的,您是否考虑过对输入进行排序以创建排列不变的规范表示并将其馈送到常规网络?
mjul

@mjul我的输入是一系列的客户下注(每个下注都由一些带有数学和连续变量的向量表示)。例如,我可以按时间顺序排列它们,但是由于每个客户的下注之间的时间间隔非常不同,所以这没有多大意义。可以使用某些时间函数(固定的或学习的)来解决此问题,该函数会使每次下注的系数衰减。但是我认为在这种情况下排序实际上并不重要,因此我想先尝试无序数据,这显然需要对每个客户的赌注进行对称处理。
约瑟夫·安德雷

网络输出是什么?如果网络是置换不变的,则任何输入顺序的输出都将相同。这是你想要的吗?
BlueMoon93

@ BlueMoon93是的,这正是我想要的。输出可以是任何东西(数字,向量),只要它不取决于输入的顺序即可。
约瑟夫·昂德里

为什么要一个置换不变神经网络?
kc sayz'kc sayz'17

Answers:


2

据我所知,由于网络的结构方式,没有人尝试过。每个输入都有一组权重,这些权重连接到更多输入。如果输入切换,输出也将

但是,您可以建立一个可以解决此问题的网络。在您的训练集中,使用批处理学习,并对每个训练样本,对网络进行所有可能的排列,以使其学习为排列不变。这永远不会是完全不变的,只是可能很接近

另一种方法是复制所有输入的权重。例如,假设您有3个输入(i0,i1,i2),下一个隐藏层有2个节点(hl0,hl1)和激活函数F。假设一个完全连接的层,您有2个权重w0和w1。隐藏层的节点hl0和hl1分别由下式给出

  • hl0 = F(i0w0 + i1w0 + i2w0)

  • hl1 = F(i0w1 + i1w1 + i2w1)

因此,为您提供了一个隐藏层,其值与输入的排列不变。从现在开始,您可以按照自己的意愿学习和构建网络的其余部分。这是从卷积层派生的方法。


离题,这似乎是一个很酷的项目。如果您想在某些研究项目上进行合作,请与我联系(检查我的个人资料)


由于计算复杂性,在我的情况下建议的第一种方法不可行。另一方面,第二个似乎过于严格。但这当然是一个好的开始。到目前为止,我想出的方法与我在本文中找到的方法类似:arxiv.org/pdf/1612.04530.pdf。首先,我考虑输入对x_i,x_j,i,j在0 ... n中的所有对(通常是所有k个元组),并在它们全部上应用一些神经网络(每对上相同的nn)。这使我得到n ** 2个输出f(x_i,x_j),然后将它们平均(或取最大值)并在结果上加上nn。
约瑟夫·翁德里

到目前为止,这是我想出的:github.com/josefondrej/Symmetric-Layers
Josef Ondrej


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.