顾名思义,合成数据是人工创建而不是由实际事件生成的数据。它通常是在算法的帮助下创建的,并被用于广泛的活动,包括作为新产品和工具的测试数据、模型验证以及满足AI的应用需求。
这篇文章要回答的问题包括:
合成数据的重要性
合成数据很重要,因为它可以被生成以满足现有(真实)数据中缺乏的一些非常特定的需求或条件。当隐私需求限制数据的可用性时,或者测试环境所需的数据根本不存在时,合成数据就非常有用了。
虽然合成数据在90年代就开始使用,但到了2010年代,丰富的计算能力和存储空间给合成数据带来了更广泛的应用。
可以从合成数据中获益的业务功能包括:
- 机器学习: 自动驾驶模拟率先使用了合成数据。
- 敏捷开发和DevOps: 当需要软件测试和质量保证时,人工生成的数据通常是更好的选择,因为它无需等待”真实”数据。在这种情况下通常被称为”测试数据”。这最终会使测试时间缩短,并在开发过程中提高灵活性和敏捷性
- 临床和科学试验: 当没有实际数据可用时,合成数据可用作未来研究和测试的基准。
- 研究:合成数据可以帮助更好地了解尚未记录的真实数据的格式,以及帮助深入了解研究对象特定的统计属性,调整相关算法的参数,或构建初步模型等。
一些可以从合成数据中获益的行业:
- 金融服务:欺诈保护是任何金融服务的重要组成部分,通过合成数据可以帮助测试和评估新的欺诈检测方法的有效性。
- 医疗保健: 合成数据使医疗保健数据专业人员能够允许公众使用相关数据记录,同时仍保持患者机密性。
一般来说,当合成数据是很必要的时候,合成数据可以使我们能继续开发新的创新产品和解决方案,否则将不存在或不可用。
比较合成数据和真实数据的性能
数据用于应用程序,最直接的数据质量衡量标准是数据在使用时的有效性。机器学习是当前数据最常见的用例之一。麻省理工学院的科学家希望测量来自合成数据的机器学习模型能否像基于真实数据构建的模型一样成功运行。在2017年的一项研究中,他们把数据科学家分成两组:一组使用合成数据,另一组使用真实数据。使用合成数据的70%的时间组能够产生与使用真实数据的组产生相同的结果。.
与合成数据相关的益处
生成模拟真实事物的数据似乎是创建测试和开发方案的一种无限制方式。虽然在很多场景下都适用,但一定要记住,任何从数据派生的合成模型只能复制数据的特定属性,这意味着它们最终只能模拟一般趋势。
但是,合成数据相比于实际数据仍有许多优势:
- 克服实际数据使用限制: 由于隐私规则或其他法规,真实数据可能具有使用限制。合成数据可以复制真实数据的所有重要统计属性 ,而无需公开真实数据,从而消除了此问题。
- 创建特定数据以模拟尚未遇到的条件:在不存在真实数据的情况下,合成数据是唯一的解决方案。
- 避免出现一些常见的统计问题: 这些问题可能包括相关条目无响应、跳转模式和其他逻辑约束等。
- 专注于数据关系:合成数据旨在保留变量之间的多变量关系,而不是仅仅保留特定统计信息。
这些优势表明,随着数据变得更加复杂以及数据受到更密切的保护,合成数据的创建和使用只会更频繁。
合成数据创建 101
在确定创建合成数据的最佳方法时,首先考虑您打算拥有哪种类型的合成数据,这一点是非常重要的。有两大类可供选择,每个类别都有各自的优点和缺点:
完全合成: 此类数据不包含任何原始数据。这意味着几乎不可能重新识别任何一个数据元,并且所有变量仍然完全可用。
部分合成: 仅将敏感数据仅替换为合成数据。这需要大量依赖归纳模型。这种方式降低了模型依赖性,但确实意味着由于数据集里保留了部分真实数据,可以进行部分公开。
构建合成数据的两个一般策略包括:
从数据分布中抽取数字: 此方法的工作原理是观察实际统计分布并重新产生假数据。这还可以包括生成模型的创建。
基于代理的建模: 为了在此方法中实现合成数据,将创建一个模型来解释观察到的行为,然后使用相同的模型重现随机数据。这种方法的重点在于理解代理之间相互作用对整个系统的影响。
合成数据面临的挑战
虽然借助合成数据可以获得广泛的益处,但也并不是没有挑战。其中一些挑战包括:
- 用户不接受合成数据为有效数据
- 生成合成数据的困难
- 对数据模型质量的依赖
- 尝试在原始数据集里复制数据复杂性时出现的不一致
- 难以跟踪复制数据所需的所有必要特征
- 合成数据中存在的偏差
- 可能需要根据真实数据进行验证
- 数据集内部的简化表示在真实环境中使用时可能对算法的性能产生一些隐蔽的影响
机器学习和合成数据:构建AI
合成数据在机器学习中的作用正在迅速攀升。这是因为机器学习算法是用大量的数据训练的,如果没有合成数据,获取或生成这些数据可能极其困难。它还可以在创建图像识别算法和其他正在成为AI基准的类似任务方面发挥重要作用。
使用合成数据来帮助机器学习的发展还有其他好处:
- 建立初始合成模型/环境后,简化数据生产
- 高准确性的数据标注十分昂贵,甚至不可能手工获得
- 根据需要可灵活调整合成环境,以改善模型
- 替代包含敏感信息的数据,从而使这类数据可用
两个在各自的机器学习社区中都得到广泛采用的合成数据用例分别是:
自动驾驶模拟:
通过现实生活中的实验来进行学习是很困难的,对于算法来说也很难。对于那些被自动驾驶汽车撞到的人来说尤为不幸,就像优步在亚利桑那州的致命车祸中一样。当优步缩减 他们在亚利桑那州的运营时,他们或许应该通过加强模拟仿真来训练他们的模型。
谷歌等行业领导者一直依靠仿真来创建 数百万小时的合成驾驶数据来训练他们的算法。
生成对抗网络(GAN):
这些网络也称为GAN或生成对抗神经网络,是由伊恩·古德费洛等人在2014年引入的。这种网络是图像识别领域的最新突破。它们由一个识别网络和一个生成网络组成。生成网络生成尽可能接近现实的合成图像,而识别网络旨在从合成图像中识别真实图像。两个网络都构建了新的节点和层,以便学习更好地完成各自相应的任务。
虽然这种方法在图像识别领域中使用的神经网络中很流行,但它在神经网络之外也有用途。它也可以应用于其他机器学习方法。它通常被称为图灵学习,作为图灵测试的一种参考。在图灵测试中,人类与一个看不见的说话者交谈,试图了解它是机器还是人。
合成数据工具
与合成数据相关的工具通常是为了满足以下需求之一而开发的:
- 用于软件开发或类似需求的测试数据
- 创建机器学习模型(在图表中称为”训练数据”)
此领域内开发数据合成工具的一些常见供应商包括:
Name | Founded | Status | Number of Employees |
---|---|---|---|
BizDataX | 2005 | Private | 11-50 |
CA Technologies Datamaker | 1976 | Public | 10,001+ |
CVEDIA | 2016 | Private | 11-50 |
Deep Vision Data by Kinetic Vision | 1985 | Private | 51-200 |
Delphix Test Data Management | 2008 | Private | 201-500 |
Genrocket | 2012 | Private | 11-50 |
Informatica Test Data Management Tool | 1993 | Private | 1,001-5,000 |
Neuromation | 2016 | Private | 11-50 |
Solix EDMS | 2002 | Private | 51-200 |
Supervisely | 2017 | Private | 2-10 |
TwentyBN | 2015 | Private | 11-50 |
这10种工具只是与合成数据的创建和使用相关的不断增长的工具和平台市场的小部分代表性产品。
合成数据是世界发展的一种方式,它不仅有助于处理不断增加的数据量,而且可以处理那些通常很敏感且需要额外的保护的数据。要了解有关数据相关主题的信息,请务必查看我们博客中关于数据的部分。