本文作者是 Kanda 的机器学习工程师 Daniel Rothmann,他在和客户合作的过程中总结出的小数据处理方法。
01
认识到你的模型不能很好地泛化
这应该是第一步。确保你的经理或客户理解这一点。这样,每个人都可以根据你的模型应该提供的结果,调整实际期望。它还创造了一个机会来提出一个新的有用的关键指标,以量化原型范围内外的模型性能。
02
.建立良好的数据基础架构
在许多情况下,客户机没有你需要的数据,公共数据也不合适。如果原型的一部分需要收集和标记新数据,请确保基础架构,尽可能减少摩擦。
你要确保数据标签对技术和非技术人员来说都是非常容易的。我们已经开始使用 Prodigy,既可访问又可扩展。
03
做一些数据扩充
通常可以通过增加所拥有的数据来扩展数据集。但这只是对数据进行细微更改,它不应显著地改变模型的输出。
04
生成一些合成数据
如果你已经用尽了增加真实数据的方法,你可以开始考虑创建一些假数据。生成合成数据也是一种很好的方法,它可以用来覆盖一些实际数据集中不会出现的边缘情况。
05
小心「幸运的分割」
在训练机器学习模型时,通常将数据集按一定比例随机分割成训练集和测试集。通常情况下,这很好。但是,在处理小数据集时,由于训练示例数量较少,因此噪音风险较高。
在这种情况下,你可能会意外地得到一个幸运的分割:一个特定的数据集分割,在这个分割中,你的模型将很好地执行并在测试集中效果很好。然而,在现实中,这可能仅仅是因为测试集中没有困难的例子(巧合)。
06
使用迁移学习
如果你使用的是某种标准化的数据格式,如文本、图像、视频或声音,那么你可以使用其他人在这些域中用迁移学习所做的所有先前工作。
迁移学习之所以有效,是因为大多数与语言、图像或声音有关的任务都具有许多共同的特征。例如,对于计算机视觉来说,它可能是检测某些类型的形状、颜色或图案。
07
试一试「weak learners」
有时候,你只需要面对这样一个事实:你没有足够的数据去做任何想做的事情。
当数据集较小,数据点维数较高时,支持向量机等算法是一种很好的选择。
不幸的是,这些算法并不总是像最先进的方法那样精确。这就是他们之所以被称为「weak learners」的原因,至少与高度参数化的神经网络相比是如此。
提高性能的一种方法是将这些「weak learners」(这可能是一组支持向量机或决策树)组合在一起,以便它们「协同工作」生成预测。
原文:
https://www.toutiao.com/i6734879609373852168/