人工智能

什么是合成数据?

mm

什么是合成数据?

合成数据是数据科学领域中迅速发展的趋势和新兴工具。那么,什么是合成数据?简而言之,合成数据由不基于任何现实世界现象或事件的数据组成,而是通过计算机程序生成的。然而,为什么合成数据对数据科学如此重要?如何创建合成数据?让我们探索这些问题的答案。

什么是合成数据集?

如“合成”一词所示,合成数据集是通过计算机程序生成的,而不是通过记录现实世界事件而组成的。合成数据集的主要目的是足够灵活和强大,以便用于训练机器学习模型。

为了使合成数据对机器学习分类器有用,合成数据应该具备某些属性。虽然数据可以是分类的、二元的或数值的,但数据集的长度应该是任意的,数据应该是随机生成的。用于生成数据的随机过程应该是可控的,并基于各种统计分布。数据集中也可以添加随机噪声。

如果合成数据用于分类算法,类别分离的数量应该是可自定义的,以便分类问题可以根据问题的要求变得更容易或更难。同时,对于回归任务,可以使用非线性生成过程来生成数据。

为什么使用合成数据?

随着TensorFlow和PyTorch等机器学习框架变得更容易使用,预设计的计算机视觉和自然语言处理模型变得更加普遍和强大,数据科学家面临的主要问题是数据的收集和处理。公司通常难以在给定的时间范围内收集大量数据来训练准确的模型。手动标记数据是一种昂贵且缓慢的数据收集方式。然而,生成和使用合成数据可以帮助数据科学家和公司克服这些障碍,并更快地开发可靠的机器学习模型。

使用合成数据有几个优点。使用合成数据最明显的好处是,它减少了从现实世界事件中捕获数据的需要,因此可以更快地生成数据和构建数据集,而不是依赖于现实世界事件。这样可以在短时间内产生大量数据。对于在野外中很少发生的事件尤其如此,因为如果事件很少发生,可以从一些真实数据样本中模拟出更多的数据。另外,数据可以在生成时自动标记,大大减少了标记数据所需的时间。

合成数据还可以用于训练边缘案例,这些案例可能很少发生,但对于AI的成功至关重要。边缘案例是指与AI的主要目标非常相似但在重要方面有所不同的事件。例如,在设计图像分类器时,部分可见的物体可以被视为边缘案例。

最后,合成数据集 可以最小化隐私问题。尝试匿名化数据可能无效,因为即使从数据集中删除敏感/识别变量,其他变量也可以在组合时作为标识符。对于合成数据来说,这不是问题,因为它从一开始就不是基于真实的人或真实事件。

合成数据的用例

合成数据有广泛的 应用,因为它可以应用于几乎任何机器学习任务。合成数据的常见用例包括自动驾驶汽车、安全、机器人、欺诈保护和医疗保健。

合成数据的初始用例之一是自动驾驶汽车,因为合成数据用于创建训练数据,用于汽车在获取真实道路训练数据困难或危险的条件下。合成数据也适用于创建训练图像识别系统(如监控系统)所需的数据,远比手动收集和标记大量训练数据更高效。机器人系统可以使用传统的数据收集和训练方法进行训练和开发。合成数据允许机器人公司通过模拟测试和开发机器人系统。欺诈保护系统可以从合成数据中受益,新的欺诈检测方法可以使用合成数据进行训练和测试。在医疗保健领域,合成数据可以用于设计准确的健康分类器,同时保护人们的隐私,因为数据不会基于真实的人。

合成数据的挑战

虽然使用合成数据带来了许多优势,但也带来了许多挑战。

当合成数据被创建时,它通常缺乏异常值。异常值自然存在于数据中,虽然通常从训练数据集中删除,但它们的存在可能是必要的,以便训练真正可靠的机器学习模型。除此之外,合成数据的质量可能非常可变。合成数据通常使用输入或种子数据生成,因此数据的质量可能取决于输入数据的质量。如果用于生成合成数据的数据存在偏差,则生成的数据可能会延续这种偏差。合成数据还需要某种形式的输出/质量控制。它需要与人工标记的数据或其他形式的真实数据进行比较。

如何创建合成数据?

合成数据是使用机器学习技术以编程方式创建的。可以使用经典的机器学习技术,如决策树,也可以使用深度学习技术。生成合成数据的要求将影响用于生成数据的算法类型。决策树和类似的机器学习模型允许公司创建非经典的、多模态数据分布,训练于现实世界数据的示例。使用这些算法生成的数据将提供与原始训练数据高度相关的数据。对于已知数据的典型分布的情况,公司可以使用蒙特卡罗方法生成合成数据。

基于深度学习的合成数据生成方法通常使用变分自编码器(VAE)或 生成对抗网络(GAN)。 VAE是无监督的机器学习模型,使用编码器和解码器。VAE的编码器部分负责将数据压缩到原始数据集的更简单、更紧凑的版本中,然后解码器分析并使用它来生成原始数据的表示。VAE的训练目标是使输入数据和输出数据之间的关系最优化,两者都非常相似。

当谈到GAN模型时,它们被称为“对抗”网络,因为GAN实际上是两个相互竞争的网络。生成器负责生成合成数据,而第二个网络(判别器)通过比较生成的数据与真实数据集并尝试确定哪些数据是假的来运作。当判别器捕获到假数据时,生成器会被通知并尝试通过判别器来修改数据。判别器变得越来越擅长于检测假数据。两个网络相互竞争,假数据变得越来越逼真。n the discriminator catches fake data, the generator is notified of this and it makes changes to try and get a new batch of data by the discriminator. In turn, the discriminator becomes better and better at detecting fakes. The two networks are trained against each other, with fakes becoming more lifelike all the time.

博客作者和程序员,专攻 Machine Learning Deep Learning 领域。Daniel 希望帮助他人利用 AI 的力量为社会做好事。