社区计算机视觉课程文档
引言
加入 Hugging Face 社区
并获得增强的文档体验
开始使用
简介
你是否曾试图为你的问题(无论是机器学习问题还是其他开发相关问题)获取一些数据,但却发现数据不足?数据要么是闭源且你无法获取,要么获取成本或时间成本过高。我们如何处理这种情况?
嗯,一个解决方案是合成数据。合成数据由模型生成,用于替代真实数据或与真实数据一起使用。这里,我们所说的模型不仅指机器学习或深度学习模型;它们也可以是简单的数学或统计模型,比如一组(随机)微分方程,用于模拟物理或经济系统。是不是有点兴奋了?让我们深入了解合成数据的细节:它是什么,如何生成,以及它的好处。你现在可能已经能回答最后一个问题了 ;)
什么是合成数据?
正如英国皇家学会所定义,合成数据是使用专门构建的数学模型或算法生成的数据,以解决一个(或一组)数据科学任务。请记住,合成数据仅模仿真实数据,并非由真实事件生成。理想情况下,合成数据应具有与它所补充的真实数据相同的统计属性。它有许多用途,例如改进人工智能模型、保护敏感数据和减轻偏见。
为什么要使用合成数据?
在回答这个问题之前,我们先来谈谈为什么真实数据不再足够。真实数据的一些非穷举问题包括:
- 它可能很混乱,很难处理。
- 由于隐私问题,公司间的数据共享可能无法实现。
- 医疗数据是机密的,因此无法公开共享。
- 它可能存在偏见。
- 数据收集和标注可能成本高昂。
上述大部分问题都可以通过合成数据来解决:
- 合成数据以结构化形式生成,因此易于处理。
- 公司可以训练合成数据生成模型,这些模型学习原始数据的分布,但不会泄露原始数据中任何单个数据点的信息,从而维护隐私。医疗数据也可以采取类似的方法。
- 我们可以训练数据生成器模型来生成去偏见的数据。
- 合成数据可以与真实数据进行增强,以使模型或应用程序更具鲁棒性。
如何生成合成数据?
这里,我们提到了一些生成合成数据的方法:
- CAD & Blender:允许创建三维场景的光学真实图像数据集,同时控制参数。它可以通过将合成数据与真实数据(生成参数)进行比较来计算指标。这是一种非常稳健的方法,但生成质量、多样性和数量有限。用例包括使用商业应用、生成合成人脸和监测野生动物。
- 深度生成模型(Transformers/GANs/扩散模型):允许扩展数据集、解决数据不平衡问题和隐私问题。非常方便和强大,但可能创建带有偏见、不连贯和重复性的数据集,这会带来重要的过拟合风险并产生有限的预测集。用例包括医学图像生成、高效植物疾病识别、工业废物分类、交通标志识别和自动驾驶汽车应用的紧急车辆检测。
在本单元中,我们将介绍以下生成合成数据的方法:基于物理的渲染、点云和GAN。
合成数据的挑战
既然我们已经了解了合成数据的力量和用途,现在让我们花一些时间讨论它的挑战:
- 合成数据本身并不具备隐私性:合成数据也可能泄露其来源数据的信息,并且容易受到隐私攻击。生成私有合成数据需要非常谨慎。
- 异常值难以私密捕获:异常值和低概率事件(通常在真实数据中发现)尤其难以捕获并私密地包含在合成数据集中。
- 实证评估单个数据集的隐私性可能存在问题:严格的隐私概念(例如,差分隐私)是对生成合成数据集的机制的要求,而不是对数据集本身的要求。
- 生成合成数据时,黑盒模型可能尤其不透明:过度参数化的生成模型擅长生成高维合成数据,但这些数据集的准确性和隐私级别难以估计,并且在不同生成数据点之间可能差异很大。
资源
- 用于合成数据生成的机器学习:综述
- 合成数据——是什么、为什么以及如何?
- 合成数据的一个非常有趣的应用程序:这个人不存在