关于机器学习数据集,你需要知道的几件事

机器学习数据集

通常将可用数据分成 70/30,即 70% 的数据用于训练,30% 用于验证/测试,当您有数百万个样本时,这种方法无效。建议将数据分成训练集(数百万个样本)、开发集(~10k)和测试集(~10k)。

“什么是开发集?”。您可以看到,我们留出的用于对我们的机器学习模型的性能进行无偏估计的数据部分是测试集。为了避免任何偏差,我们不应该使用测试集来对模型做出任何决定。那么,在创建机器学习模型时,您将使用哪些数据来调整超参数或评估各种选项?为此,我们使用开发集(有时称为验证集)。

“开发集和测试集的神奇数字 10k 来自哪里?”。它不是一成不变的。开发集应该足够大,以检测您正在尝试的算法之间的差异。使用 10,000 个示例,您很有可能检测到 0.1% 的改进。这就是 10k 的用武之地。如果要检测 0.01% 的改进,则需要 100k 样本。

理想情况下,您使用的所有数据都应该来自与 prod 相同的分布,这就是您想要做的。

然而,这并非总是如此。例如,您刚刚在国际市场上推出了您的产品。您可能有很多来自本国市场的数据可以利用,但对于新模型,您确实希望能够很好地处理来自其他国家/地区的数据。在这种情况下,您可以使用国内数据来训练模型,但请确保使用来自国际用户的数据进行验证和测试集。重申一下,从与 prod 相同的发行版中获取验证集和测试集非常重要。

由于您的验证集和测试集来自相同的分布,因此机器学习模型应该在两者上执行相同的操作。但是机器学习防止过拟合,随着时间的推移,您的机器学习模型可能会过度拟合开发集,因为您正在使用它来影响模型。发生这种情况时,您的模型在开发集上的性能将优于测试集。您将需要获取新的开发集或将新数据添加到开发集。

但是,如果训练集和验证集来自不同的分布,您将如何确定您的机器学习模型是否存在偏差/方差问题?

在这种情况下,由于数据分布的不同,训练误差会与开发误差不同。因此,这种差异对于确定您的机器学习模型是欠拟合还是过拟合训练数据没有帮助。

为了解决这个问题,您可以从开发集(称为训练开发集)中提取一小部分数据并将其添加到训练集中。现在您可以比较“训练开发”误差和开发误差来估计偏差和方差。

请记住机器学习防止过拟合,所有差异都是可以避免的。

如果大部分训练集来自与 prod 不同的分布,你可以做些什么来让模型在类似于 prod 的分布上学习更多?您可以添加一个二进制信号来表示输入数据中的分布,并调整您的误差函数以在训练期间为 prod 样本提供更多权重。

这是关于创建数据集和构建负样本的最后一个技巧。在分类任务中,正例直接从用户数据中获得。对于为负例选择标签,一种策略可能是从一组非正例标签中随机选择。

然而,这样的标签可能相对容易被认为是不正确的,因此模型不会从它们身上学到太多东西。为了使训练数据有效,我们必须选择难以训练的负例,即“最接近”的正例。

评估指标

精度、召回率、准确度、F1 分数、AUC(ROC 曲线下面积)、NDCG 是评估机器学习 (ML) 模型的一些常用指标。

虽然您要使用的指标取决于手头的任务,但对于您可以在机器学习模型的整个生命周期中使用的指标使用单一指标非常重要。当您评估前进的多条路径时,拥有单一数字评估指标可提供清晰的方向感。

例如,您可以使用 F1 Score 代替 Precision 和 Recall,这是两者的调和平均值。

如果您有 N 个对您很重要的标准(例如:机器学习模型大小、运行时间和准确性),您可以考虑将它们的 N-1(模型大小和运行时间)设置为“满意度”指标,即只要满足这些指标的某些阈值,您将接受该模型。其余的(准确性)将是单数“优化”指标。

如果您的指标表现良好,但您没有看到其他测试的改进(例如:prod 中的 A/B 测试),这可能意味着您的指标选择错误或验证/测试集分布偏离了 prod 分布。从产品数据中获取一个新的开发/测试集样本,如果模型仍然表现良好,那么是时候重新考虑你的指标了。

错误分析

您如何确定模型改进的机会?你如何优先考虑它们?

虽然您可以根据不同的与任务相关的场景测试对机器学习模型进行建模,但您可以对任何模型进行建模:手动查看模型表现不佳的样本。

例如,假设我们有一个分类任务。您可以查看算法错误分类的示例,并尝试了解错误的根本原因。

建议使用开发集中 100 个标记错误的示例。如果分类器的错误率为 5%,那么你需要查看 2000 个示例来确定要关注的 100 个示例。开发集的其余部分称为黑盒集,可用于决定模型和选择超参数。

当您查看错误标记的示例时,对所有示例中错误分类的原因进行计数有助于您优先考虑首先要修复的原因。

E2E 深度学习

端到端语音识别效果很好。但是自动驾驶的端到端学习呢?也许不会。以下注意事项将帮助您决定是否将学习任务拆分为更小的块。

超参数

以下是根据 Andrew 按重要性顺序排列的超参数。

建议对每个超参数尝试随机值。随机搜索更有效,因为您最终会为相同的试验次数为每个参数尝试更多的值。

尝试以适当的比例取随机值(在随机情况下均匀分布不是一个好主意)

使用放大的方法:如果范围是从0.0001到0.1,则可以在第一轮中确定0.01为最佳值,在第二轮中找到<@舍入0.011 作为更好的选择,然后考虑 0.01098,依此类推。

请注意,适用于一个领域的超参数不一定适用于不同的领域。

其他

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论