神经网络在更大量的数据上学得更差

时间:2017-09-26 14:03:44

标签: neural-network conv-neural-network

我有一个卷积神经网络,只是通过查看游戏地图的当前状态来玩蛇游戏。它正在与地图上的其他3条蛇竞争。网络通过观看“专家蛇”来玩游戏并且旨在做出在每个时间步骤做出的相同决定(决定是:向左转,向右转或直行)。当训练超过20万像素,批量大小为500,辍学率为0.5(50%)时,网络可以获得大约80%的验证数据准确率,范围从75%到83%不等。然而,当我训练超过200万个图像的更大数据集(没有任何其他超参数的变化)时,网络无法学习通过38%,这比稍微进行随机移动稍微好一点。我找到了以下帖子:https://www.quora.com/Intuitively-how-does-batch-size-impact-a-convolutional-network-training让我相信我的数据现在太吵了,增加批量大小会解决我的问题。因此,我运行的最近一次培训课程使用了200万张图片,批量大小为1000,退出率为0.75。这导致重复的验证准确度再次达到38%(测试准确度约为37%)。这些调整没有影响的事实令人担忧。我在隔离测试中改变了学习率,这也没有帮助测试的准确性。有没有人遇到过类似的问题?这让我很困惑,因为我觉得更多的训练数据几乎总是一件好事。在我运行的所有训练课程中,从我的所有图像集中随机选择不同的图像,因此如果网络可以学习数据的随机子集,我会想象它可以学习更大的数据子集。在此先感谢您的任何帮助。总结一下我的问题是:这样一个问题的可能原因是什么?哪些超参数对造成这种行为更有影响?

1 个答案:

答案 0 :(得分:0)

我上面遇到的问题是由于我的数据存在偏差。主蛇选择直线前进比选择向左或向右组合。因此,我们的模型学会了直接。

在小数据集中,这似乎是学习玩游戏,实际上它正在学习选择偏见。因此,更大的数据集暴露了模型真正学习的糟糕程度。因此,只有当正确的答案是正确答案时才是正确的(在大集合上只有三分之一以上)

我希望这可以帮助任何在训练模型时遇到类似奇怪行为的人。检查您的数据是否有偏见或适得其反的行为。

我们的解决方案是平衡训练数据并在相同数量的左,右和直线位置训练模型。