神经网络输入顺序

4
这似乎是一个愚蠢的问题。
我正在通过一些网球数据运行神经网络。该网络的目标是确定每个选手赢得比赛的概率。输入大约有40个,输出为一个(即A选手获胜的概率,B选手的概率为1-输出)。
输入是每个选手在过去n场比赛中的各种统计数据和表现指标。我编写了从我的网球比赛结果数据库中提取这些数字的代码,然后将其馈送到神经网络中。
我遇到的问题如下:
在训练集中,与网络分析的比赛的获胜者相关的输入值将始终通过相同的输入神经元进行馈送。因此,期望的输出将始终为1,因为A选手总是获胜(这是我的数据库结构,A选手是比赛的获胜者,B选手是输家)。
我该如何解决这个问题?只需要随机化A选手和B选手的顺序吗?
希望这个问题说得清楚。
非常感谢。
4个回答

1

我认为某种形式的洗牌(随机或其他)是有意义的。

如果你想训练任何一种学习者从两个玩家中挑选出胜者,而你总是把第一个玩家作为胜者呈现,那么它完全有理由学习到第一个玩家总是胜者。

解决这个问题的一个简单方法是在双倍大小的数据集上进行训练:使用(A, B)(B, A)这两对,其中A是胜者。


1

我会训练每一场比赛两次,一次输入为胜者-失败者,输出为“1”,另一次输入为失败者-胜者,期望输出为“0”。

(哦,我认为神经网络的输出不能被解释为概率,因为如果ANN预测某个结果的输出为0.9,则只有10次中有9次是正确的。)


除非有充分的理由不这样做(请参见我的评论),否则我同意对这对进行排序。一些神经网络确实直接估计概率,而其他一些则产生可校准为概率的数字输出。 - Predictor
谢谢,尼基,我就按你说的做。网络输出不会直接作为概率使用,它们将从其他地方推导出来。非常感谢。 - Sherlock

1
为什么不进行简单的50/50分割呢?将一半的胜利者通过通常运行它们的输入神经元,另一半的胜利者通过其他输入神经元,这样你就完全没有偏见。你甚至可以通过在每个训练实例上交替使用赢家和输家来交错/条纹化它们。
Neuron  Player
--------------
  1       W  
  2       L 
--------------    
  1       L 
  2       W 
--------------
  1       W  
  2       L 
--------------    
  1       L 
  2       W 

随机化也可以帮助,但我认为它会引入偏差(尽管这将是非常小的偏差)。最终你不知道神经网络是学习预测随机化函数还是学习预测数据,所以让它简单并保证它将学习正确的东西。


你对随机化的建议是正确的:你提到的“偏差”可以忽略不计。 - Predictor

0
在您所描述的成对建模中,通常有两种方式:1. 每个事件按每个顺序向网络显示一次,或者2. 每个事件按某个规范顺序(“主场”,“客场”)显示一次。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接