当输入数量可变时如何设计神经网络?

人工智能 神经网络 循环神经网络 预言 网络设计
2021-11-13 01:46:28

我正在寻求设计一个神经网络,可以预测哪位跑步者在体育比赛中获胜,其中跑步者的数量在 2-10 之间变化。在每种情况下,有关个别跑步者的特定数据(例如,体重、身高、以前比赛的平均速度、国籍等)都将被输入到神经网络中。

对于这样的神经网络,哪种设计最有利?

本质上,这是一个排名问题,其中输入和输出的数量是可变的。

2个回答

在您的情况下,最好的选择可能是零填充或填充。这只是在没有数据的情况下将输入归零。它在 CNN 的图像边界上做了很多工作。

或者,您可以只使用 RNN,它可以轻松处理您的可变长度输入。

我认为,其他答案中提出的 CNN 和 RNN 对这个特定问题来说是一个糟糕的选择。

输入是特征的无序序列,对应于每个跑步者,因此输入本质上是一个没有顺序局部性概念的集合结构。如果以随机顺序为跑步者分配一个数字,则没有意义,因为跑步者 1 接近 2,或者跑步者 3 在跑步者 4 之前。

因此,CNN或者RNN似乎是一个糟糕的选择,因为添加了与数据无关的归纳偏差。

这个问题很老了,当时Transformer架构刚刚发明出来,但确实如此,它可以特别好地应用。需要注意的几点:

  • 由于没有顺序,因此不需要位置嵌入
  • 序列很短,因此O(N2)序列长度的复杂度很小
  • 不需要解码器

总的来说,我建议堆叠几个编码器块并从生成的嵌入中预测等级。

作为损失,从论文Ranking measure and Loss Functions in Learning to Rank 中选择一些合理的选择。