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