【问题标题】:Neural Network Input Order神经网络输入顺序
【发布时间】:2012-01-23 20:04:55
【问题描述】:

这似乎是一个愚蠢的问题。

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

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

我遇到的问题如下:

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

我该如何克服这个问题?这仅仅是随机化玩家 A 和玩家 B 订单的情况吗?

希望这个问题有意义。

非常感谢

【问题讨论】:

    标签: machine-learning neural-network probability


    【解决方案1】:

    为什么不做一个简单的 50/50 拆分?通过通常运行它们的输入神经元运行一半的获胜者,通过其他输入神经元运行另一半的获胜者,这样你就绝对没有偏见。您甚至可以通过在您训练它的每个实例上交替获胜者和较松者来错开/剥离它们:

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

    随机化也有帮助,但我认为它会引入偏差(尽管它会是非常小的偏差)。归根结底,您不会知道神经网络是在学习预测随机化函数还是在学习预测数据,所以只需简单化并保证它会学习到正确的东西。

    【讨论】:

    • 您对随机化的建议是合理的:您提到的“偏见”可以忽略不计。
    【解决方案2】:

    我认为某种洗牌(随机或其他)是有道理的。

    如果您尝试训练任何类型的学习器从一对玩家中挑选出获胜者,并且您总是将第一个玩家作为获胜者,那么学习第一个玩家总是是完全合理的获胜者。

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

    【讨论】:

      【解决方案3】:

      我会在每场比赛中训练两次,一次使用输入获胜者 - 失败者和输出“1”,一次使用输入失败者 - 获胜者和所需的输出“0”。

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

      【讨论】:

      • 除非有充分的理由不这样做(见我的评论),否则我同意这对的排序。一些神经网络确实直接估计概率,而另一些则产生可以校准为概率的数字输出。
      • 谢谢 nikie,这就是我要做的。网络的输出不会直接用作概率,它们将在别处得到。非常感谢。
      【解决方案4】:

      在您描述的成对建模中,通常是:1. 每个事件按每个顺序显示给网络一次,或 2. 每个事件按某些规范顺序显示一次(“home”,“away”) .

      【讨论】:

        猜你喜欢
        • 2013-09-22
        • 2012-10-05
        • 2011-12-27
        • 2010-10-13
        • 2020-08-10
        • 2020-12-28
        • 2012-03-29
        • 1970-01-01
        相关资源
        最近更新 更多