本文转载自雷锋网。我们经常听说大数据是构建成功的机器学习项目的关键。一个主要问题:许多组织没有您需要的数据。如果没有基本的、必要的原始数据,我们应该如何对机器学习概念进行原型设计和验证?在资源稀缺的情况下,我们应该如何有效地获取和使用数据来创造价值?在我工作的地方,我们为客户制作许多功能的原型。为此,小数据对我帮助很大。在这篇文章中,我将分享7个技巧,它们可以帮助您在使用小型数据集进行原型设计时改进结果。1.意识到你的模型不是***这是第一要务,你是在建立一个模型,对这个模型的认知只是基于一个大集合的一小部分,所以模型只在这里或者只在这里案例是否可以按预期正常工作。如果您基于一些选定的室内照片构建计算机视觉模型,不要指望它在室外照片上也能很好地工作。如果你想建立一个基于聊天室玩笑的语言模型,不要指望它能写出一部好小说。确保你的经理或客户也明白这一点。这样,每个人对你的模型能传达什么都有一个统一的、现实的期望。它还有助于提出新的KPI,以量化原型范围内外的模型性能。2.建立良好的数据基础设施很多时候,客户没有你需要的数据,公共数据不足以作为替代。如果您的原型的一部分需要收集和标记新数据,请确保您的基础设施以尽可能少的摩擦处理它。您需要确保数据符号足够简单,非技术人员也能轻松理解。我们将使用Prodigy,我认为它是一个很好的工具,可以随时使用和扩展。根据项目的大小,您可能还需要设置一个自动化数据摄取工具,该工具可以摄取新数据并将其自动传输到标签系统。您的系统获取新数据的速度越快、越容易,您可以获得的数据就越多。3.添加数据您可以通过添加现有数据来扩展您的数据库。例如,可以对数据进行轻微调整而不会显着影响模型输出。例如,如果一张猫的图片旋转了40度,它仍然是一只猫的图片。在大多数情况下,添加技巧将允许您创建更多“半***”数据点来训练您的模型。您可以从向数据中添加少量高斯噪声开始。对于计算机视觉,有许多简单的方法可以增强图像,我对Albumations数据库有很好的经验,它可以在不影响标记的情况下进行大量有效的图像转换。启动、水平翻转、垂直翻转、缩放和旋转另一种大多数人认为有效的增强技术是混合。这种技术实际上是将两个输入图像放在一起,混合它们,并组合它们的标签。初始图像、混合、噪声混合、垂直连接添加其他类型的输入数据时,需要考虑格式转换是否会改变标记。4.生成合成数据如果你在扩充真实数据的选项中遇到困难,你可以开始考虑创建一些假数据,生成合成数据是处理真实数据库无法处理的边缘情况的好方法。例如,机器人技术中的许多强化学习系统(例如OpenAI的Dactyl)在部署真实机器人之前在模拟3D环境中进行训练。对于图像识别系统,您可以类似地构建一个3d场景,它可以为您提供数以千计的新数据点。15个模拟Dactyl训练示例创建合成数据的方法有很多种,在Kanda,我们开发了一种基于转盘的解决方案来创建用于对象检测的数据。如果您有大量数据需求,您可以考虑使用生成对抗网络来创建合成数据。由于GAN众所周知难以训练,因此值得尝试确保该方案值得尝试。NVIDIA的GauGAN实际应用有时您可以结合使用多种方法:Apple有一种非常聪明的方法,即使用GAN处理3D建模人脸,使它们看起来更逼真。如果您有时间,这是扩展数据库的好方法。5.谨慎处理数据luckysplit在训练机器学习模型时,通常会将数据集按照一定的比例随机分为训练数据集和测试数据集。通常这很好,但是在处理小数据集时,由于训练数据样本量少,存在产生高噪声的风险。在这种情况下,您可能不小心获得了数据幸运拆分。在对数据集进行一定的拆分后,您的模型将正常执行并很好地泛化到测试数据集。然而,实际上,这仅仅是因为测试数据集(巧合地)不包含困难的例子。在这种情况下,k折交叉验证是更好的选择。基本上,您可以将数据集分成K组,为每组训练一个新模型,选择其中一组进行测试,并使用其余组进行训练。这确保您看到的测试结果不仅仅是幸运(或不幸)分裂的结果。6.使用迁移学习如果你处理一些标准的数据格式,比如文本、图像、视频或声音,你可以使用其他人在这些领域取得的迁移学习的成果来辅助上面的工作来提高效率,只需就像站在巨人的肩膀上。当您进行迁移学习时,您可以利用其他人已经构建的模型。(通常,其他人指的是Google、Facebook或重点大学)并且需要微调模型以适应您的特定需求。迁移学习很有用,因为大多数任务处理具有许多共同特征的语言、图像或声音。以计算机视觉为例,迁移学习可以检测特定种类的形状、颜色或图案。最近在给一个客户做物体检测原型,对准确率要求比较高。通过MobileNetSingleShotDetector的微调和应用,大大提高了工作效率。迁移学习模型是通过谷歌的数据集(包含900万张标记图片)进行训练的。经过一天的训练,我能够提供一个相当强大的对象检测模型,在包含1500张标记图像的测试中显示0.85的mAP。7.尝试弱学习器的组合有时你不得不面对这样一个事实,即你没有足够的数据来做一些花哨的事情。幸运的是,您可以转而使用许多传统的机器学习AI,它们对数据集的大小不敏感(不会因数据量小而产生较大的测试偏差)。当数据集较小且数据点的维数较高时,支持向量机等AI是一个不错的选择。不幸的是,这些AI并不总是像先进的应用方法那样准确。这就是为什么他们称它们为弱学习器,至少与高度参数化的神经网络相比是这样。改善这种情况的一种方法是将几个弱学习器的结果结合起来。(这可能是一组协同工作以构建预测的支持向量机和决策树)。这就是联邦学习所指的。
