假设我们想要构建一个神经网络来预测多个参与者之间比赛的结果。
每位比赛参与者都有各种统计数据:引擎功率、最高速度、驾驶员经验等。
现在想象我们被要求构建一个系统,可以处理从2到400名参与者(只是为了选择一个具体的数字)的任何数量的参与者。
根据我目前对“传统”神经网络的了解,我们的选择包括:
- 为每个参与者数量构建多个不同的神经网络:n = 2, 3, 4, 5, … , 400。
- 训练一个能够接受400名参与者输入的神经网络。当数据涉及少于400名参与者的比赛时(这将是数据中的很大一部分),只需将剩余的统计输入设为0。
假设这两种方法都可行,有没有理由认为一种方法会比另一种方法表现得更好?
前者更为专业化,但每个网络的训练数据较少,所以我的猜测是这两种方法的效果大致相同?
处理类似问题是否有标准方法?
我们可以简单地想象,神经网络首先对每个参与者的实力进行分类,因此,每次添加新参与者时,它需要对这些新输入进行相同的分析,这可能暗示着可能存在一种“智能”的方法来减少所需的总工作量。
这是否在呼吁使用卷积神经网络?
回答:
在你的两个选项中,选项1需要为不同规模重复大量训练工作,因此训练速度可能会非常慢。
选项2稍微可行一些,但网络需要针对不同大小的输入进行额外的训练。
另一个我认为最可能有效的选项是,只训练一个神经网络来在两个参与者之间选择获胜者,并通过多次配对比较来创建排名。这种方法在这里有描述。
我们可以简单地想象,神经网络首先对每个参与者的实力进行分类,因此,每次添加新参与者时,它需要对这些新输入进行相同的分析,这可能暗示着可能存在一种“智能”的方法来减少所需的总工作量。
我认为你抓住了关键的想法。因为我们希望对每个参与者进行完全相同的分析(假设无论他们是第1个还是第400个参与者都没有区别),这是一个使用权重共享的理想问题。这意味着对参与者进行初步分析的神经元的权重对于每个参与者都是相同的。当这些权重对一个参与者改变时,它们对所有参与者都改变。
虽然CNN确实使用权重共享,但我们不需要使用CNN来使用这种技术。你具体如何操作取决于你的框架。