给定一个机器学习算法,它的最小训练集大小是多少?

数据挖掘 机器学习 数据集 训练 参考请求
2021-09-17 16:25:44

我知道我们拥有的数据越多,我们根据这些数据训练的模型就越可靠。我也明白,机器学习模型的参数越多,它需要的训练数据就越多。例如,深度神经网络需要比线性回归或支持向量机更多的数据。

将机器学习成功应用于文本和图像需要数百万个数据点。我用包含 5000 条思想家名言的数据集阅读了这个尝试(链接),以生成新的名言。作者曾多次尝试失败,直到他明白他的数据集对于这项任务来说太小了。他仅通过使用迁移学习取得了成功,该迁移学习采用了由 Salesforce 开发的 AWD-LSTM 模型,该模型对来自 Wikipedia 的 1 亿个令牌进行了训练。

另一方面,我经常看到科学文章只用几百个数据(甚至更少)训练机器学习模型,并吹嘘他们的“伟大发现”。例如,这篇论文(链接)使用了一个只有 46 个样本的数据集,他们使用了决策树。这种情况之所以存在,是因为在科学中极其罕见的是,一个人可以用数百万种材料进行数百万次实验以获得大型训练数据集。然而,机器学习很流行,因此许多研究小组将其应用于他们的小型数据集只是为了发表。考虑到数据集的大小,他们的预测有多可靠?

是否有一个公式或算法,我可以在其中插入我的训练数据的数量、我的模型的参数数量,以及可能区分模型的其他几个数字(例如前馈神经网络、SVM、核岭回归,决策树)并且这个公式表明我的训练数据大小对于所选方法是足够还是不足?

是否有统计研究定量地表明某个机器学习模型至少需要这么多数据?

2个回答

您可以拥有一个带有单个训练示例的模型。真正的问题应该是,只有一个训练示例的模型有多好。答案?一种学习算法H(θ)是特征与目标之间实际关系的近似值。但是,性能上有多好H(θ)依靠良好的数据。您的模型与您的数据一样好。如果您的数据显示出清晰的模式,那么您可以拥有一个包含几个数据点的良好模型。这就是探索性数据分析必不可少的原因。

我建议在 youtube 上观看统计学习理论,特别是“学习可行”的讲座。该课程由加州理工学院提供。

正如 Benj 所说,没有通用的答案,因为它不仅取决于算法,还取决于很多数据。很容易找到使用相同算法的完全相同大小的数据在一种情况下表现糟糕而在另一种情况下表现完美的例子。

给定一个特定的数据集和一个特定的算法,有一些实验方法可以帮助确定数据大小和性能之间的关系:

  • 消融研究:使用 10%、20%、30%... 100% 的训练数据训练模型并评估(最好使用交叉验证)每个子集,然后绘制每个阶段的性能。不同规模的性能演变表明,每增加一步数据,性能会得到多少提升,通过外推,可以粗略地预测更多数据会获得多少。
  • 特征:数据的复杂性在很大程度上取决于特征的数量和多样性,因此为了全面了解数据大小和性能之间的关系,研究不同特征子集的表现也很重要。有可能特定大小的数据在具有大量特征时性能较差,但具有较少特征的同一组实例表现得非常好。