社区计算机视觉课程文档

使用合成数据面临的挑战与机遇

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

使用合成数据面临的挑战与机遇

训练机器学习模型需要大量数据。合成数据可以通过解决隐私问题、扩充有限数据以及纠正真实数据中的不平衡来提供帮助。我们已经学习了如何使用几种不同方法生成合成数据。然而,在使用合成数据训练模型之前,需要考虑几个重要事项。

模型过拟合

当机器学习模型对训练数据学习得太好以至于在新、未见过的数据上表现不佳时,就会发生过拟合。这类似于学习了解决问题的特定方法,但遇到新情况时该策略却不起作用。如果生成合成数据的过程过于简单,或者存在过于一致的模式,您的模型可能会对合成数据中有限的变化过拟合。举一个非常简单的例子,假设您使用包含 25 个红色圆圈和 25 个蓝色方块的合成数据集训练了一个模型。该模型可能会学会将圆圈与红色关联,将方块与蓝色关联。如果出现红色方块,该模型很可能会失败。

请务必仔细检查您的数据集是否不包含以下类型的模式!

颜色过于一致 consistent-color

大小过于一致 consistent-size

背景过于一致 consistent-background

位置过于一致 consistent-location

合成数据中是否存在偏差?

如果生成合成数据的过程存在偏差或不准确性,您的模型可能会无意中学习并延续这些偏差。请注意以下陷阱:

多样性有限

一个挑战是,合成数据可能无法充分代表真实数据的复杂性和多样性。形状示例可能看起来微不足道,但在许多情况下,未能考虑到各种各样的人、地点、动物或物体将导致模型表现不佳。例如,假设您想训练一个模型来监测濒危物种(如指猴)的数量。如果您的数据集只包含环尾狐猴的图像,则该模型可能难以准确识别野外的指猴。这种限制可能导致人口评估错误。好处是,如果您注意到基础数据集中存在的任何不平衡,您可能会利用合成数据通过增加代表性不足类别的合成数据来消除真实数据中的偏差。

尝试确保您的数据集反映真实世界中的多样性!

良好的多样性 nice-variety

复制现有偏差

如果您用于创建合成图像的数据已经存在偏差,您的模型可能会无意中学习并复制这些偏差。这就像复制朋友的笔记而没有意识到他们犯了错误一样——您的计算机最终可能会出现相同的错误。

使用合成数据的好处是否超过计算成本?

生成高质量的合成数据可能计算成本高昂。这可能在时间和资源方面带来挑战,特别是对于复杂模型或大型数据集。一般来说,只有当生成和使用合成数据集最终能节省资源(金钱、时间等)时,它才有意义。

合成图像的感知质量如何?

让我们考虑一下我们使用 DCGAN 生成的肺部图像。虽然有些图像看起来非常逼真,但另一些则不那么好。用低质量图像训练的模型可能无法检测肺炎,因为它们包含真实图像中不存在的噪声。您的模型也可能非常擅长识别合成数据中的模式,但这些模式在现实世界中可能不存在或可能有所不同。

一个好的做法是使用弗雷歇特起始距离 (FID)、起始分数 (IS) 或分类准确率分数 (CAS) 等指标来评估您的数据集。

FID

FID 使用预训练的神经网络模型,通常是 Inception,该模型擅长识别图像中的对象。该模型用于从真实图像和生成图像中提取特征。FID 衡量一个分布与另一个分布的“距离”,同时考虑分布的均值和协方差。

低 FID 表明真实图像和生成图像的特征分布相似,并且生成图像更可能逼真。

IS

IS 使用预训练的 Inception 模型评估生成模型,特别是 GAN 生成图像的质量。对于每个生成的图像,Inception 模型根据其识别图像中对象的置信度分配一个分数。高分更好,表明 Inception 模型对图像内容充满信心。

CAS

分类准确度是衡量模型在合成数据上表现的另一个指标。更高的准确度表明模型有效捕获了真实图像的特征和模式。某些类别的低准确度分数可能表明生成过程存在问题,例如不真实的背景、不正确的纹理或不一致的照明条件。您可以使用 CIS 帮助您识别和解决这些问题,从而提高合成数据集的整体质量。

结论

即使训练了模型,持续监控其在真实世界场景中的表现也至关重要。如果您的模型遇到合成数据中不存在的新情况或趋势,它可能难以适应。解决这些挑战需要对合成数据生成过程进行周密设计,并评估模型在真实数据上的表现。应用这些原则将有助于释放合成数据的潜力!

资源与延伸阅读

< > 在 GitHub 上更新