社区计算机视觉课程文档

使用合成数据相关的挑战与机遇

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 来帮助识别和解决这些问题,从而提高合成数据集的整体质量。

总结

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

资源和进一步阅读

< > 更新 on GitHub