2011-12-19 112 views
3

这可能看起来像一个愚蠢的问题。神经网络输入顺序

我通过一些网球数据运行神经网络。网络的目标是确定每位选手赢得比赛的概率。有大约40个输入和一个输出(玩家B获胜的概率(1 - 输出))。

输入是每位选手在过去n场比赛中的各种统计和表现指标。我编写了从我的网球比赛结果数据库中提取这些数字的代码,然后将这些数据输入到神经网络中。

我的问题如下:

在训练集,与所述匹配的胜者的输入值由所述网络分析,将始终通过相同的输入神经元供给。正因为如此,所需的输出总是1,因为玩家A总是赢(这就是我的数据库的结构,玩家A是比赛的胜者,玩家B是输家)。

我该如何解决这个问题?这只是一个让玩家A和玩家B的命令随机化的例子吗?

希望这个问题有道理。

很多谢谢

回答

1

我会训练每场比赛两次,一次是输入赢家 - 输家和输出'1',一次是输入输家 - 赢家和所需输出'0'。 (哦,我不认为一个神经网络输出可以被解释为一个概率,从某种意义上说,如果ANN预测0.9输出的结果,它将是正确的9倍)。

+0

除非有充分的理由不要(看我的评论),我同意这一对的排序。一些神经网络直接估计概率,而另一些则产生可以根据概率校准的数字输出。 – Predictor 2011-12-20 01:55:21

+0

谢谢你,这就是我要做的。网络的输出不会直接用作概率,它们将在别处推导出来。非常感谢。 – Sherlock 2011-12-20 15:45:36

1

为什么不做一个简单的50/50拆分?通过通常运行它们的输入神经元运行一半获胜者,通过其他输入神经元运行另一半获胜者,这样你就完全没有偏见。你甚至可以错开/交替你训练它的每一个实例中的赢家和宽松的条纹他们:

Neuron Player 
-------------- 
    1  W 
    2  L 
--------------  
    1  L 
    2  W 
-------------- 
    1  W 
    2  L 
--------------  
    1  L 
    2  W 

随机化也可以帮助你,但我认为它会导致偏倚(虽然这将是非常小的偏差)。在一天结束时,你不知道神经网络是否正在学习预测随机化函数,或者它是否正在学习预测数据,所以只需简单化并保证自己能够学会正确的事情。

+0

你对随机化的建议是合理的:你提到的“偏见”可以忽略不计。 – Predictor 2011-12-20 01:57:27

1

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

如果您想要训练任何一种学习者从一对球员中挑选出优胜者,并且您始终将第一位球员列为赢家,那么了解第一名球员是完全合理的总是赢家。

解决此问题的一个简单方法是在双倍数据集上进行训练:同时使用对(A, B)(B, A),其中A是赢家。

0

在成对建模中,例如您所描述的,通常是:1.每个事件在每个顺序中向网络显示一次,或2.每个事件显示一次,按照某种规范顺序(“主”,“离开”)显示。