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