没有足够的训练数据怎么办?

时间:2018-08-24 05:38:43

标签: neural-network

我的问题是我的NN没有足够的训练数据。考虑到我最后说的足球比赛是一项回归任务,它试图预测足球比赛的结果。 训练数据是最近15个赛季的足球比赛结果(约4500场比赛)。获取新数据将很困难,并且将花费大量时间。 我现在该怎么办?

  1. 复制数据好吗?

  2. 我应该输入随机数据吗? (也许有点吵,但我不太清楚那是什么)

如果无法创建更多数据,

  1. 我应该提高学习速度吧? (我的坐姿为0.01,动量为0.9)

  2. 我正在使用包含32个训练数据的微型批次进行训练。由于我没有太多的培训,所以我没有很多迷你批次。我应该停止使用它们吗?

1 个答案:

答案 0 :(得分:2)

从头开始:这是一个非常理论性的问题,与编程没有直接关系,我建议(以后)将其发布在Data Science Stackexchange上。

要解决您的问题:4500个样本并不像听起来那样糟糕,这取决于手头上的确切任务。您是否要预测比赛结果(例如,哪支球队是获胜者?),是否正在寻找更具体的预测(针对许多不同的特定团队)?

如果您可以确保每类 有合理数量的数据,则可以处理数量少于您所拥有的样本。简单地复制数据不会对您有多大帮助,因为您很可能只是过度拟合了所看到的样本,而没有太大的改善。或更确切地说,您将获得与更长时期训练相同的结果(因为从本质上讲,每个时期每个样本看到两次,而不是一次)。
同样,经过长时间的训练后通常会发生过拟合,因此在这里一无所获。

您的第二个建议通常称为数据增强。您不仅可以简单地复制样本,还可以对其进行足够的更改,以使其对网络看起来“不同”。不过要小心!数据增强在某些输入(例如图像)上的效果很好,因为输入的变化足够大,无法代表相同的样本,但仍然包含有关类别的有意义的信息(猫的水平镜像图像仍显示“有效的猫”,与垂直镜像的图像不同,在现实世界中这更加不现实)。
本质上,它取决于您的输入功能来确定在何处添加噪声。如果您仅更改前一场比赛的结果,则输入的微小变化(随机添加/减去一个目标)会大大改变您的预测。 另一方面,如果您用随机数对ELO分数进行少量打乱,则输入值不会太不同,“但足够不同”以将其用作一个新颖的示例。

提高学习速度并不是一个好主意,因为您实际上只是在让网络将 more 集中到特定样本。相反,我认为当前的学习率仍然很高,您当然不应该提高它。
关于小批量,我认为I have referenced this a million times now,但始终考虑使用较小的小批量。从理论上讲,您更有可能收敛到局部最小值。