注意: 虽然 JavaScript 对于本网站不是必需的,但您与内容的互动将受到限制。请启用 JavaScript 以获得完整体验。

使用 Python 和 Gretel.ai 生成合成位置数据

标题图片来源:sylv1rob1 via ShutterStock*

Gretel.ai 如何使用 Python 训练 FastCUT GAN,为世界上任何城市生成逼真的合成位置数据。

简介

在 Gretel.ai,我们的使命是让开发人员和数据科学家能够快速轻松地创建生产级的合成数据。为了实现这一目标,我们设计了一系列 API,让任何人都能在几分钟内启动并运行,从而识别、转换和生成为现代软件应用程序和 AI/ML 模型测试提供支持所需的数据。Python 是 Gretel API 和工具包的研发和部署的核心引擎。从用户体验的角度来看,Python 丰富的库和框架(例如,用于机器学习的 Scikit-learn 和 TensorFlow、用于文本处理的 Spacy 以及用于数据探索的 Numpy)、其处理复杂数据结构的能力及其开箱即用的集成,帮助我们确保 Gretel 的平台易于使用,并且可以扩展到任何工作流程或项目。

在这篇文章中,我们重点介绍如何在 Python 的支持下,我们创建了一个 GAN 位置生成器,它可以利用地图图像和地理位置数据来创建新的合成训练数据,从而帮助模型高精度地预测人类(或本例中的电动自行车)可能位于世界任何地方。这种通过结合和关联不同类型的数据来做出更好预测的概念验证在各个行业都有应用,例如改进医疗诊断和金融市场预测,甚至在元宇宙中构建逼真的模拟。

如果您想自己尝试这个实验,所有的工具、代码和数据都是开源的,可以在 GitHub 上找到。

流程概述

为用户生成用于测试或建模模拟的逼真位置数据是一个难题。目前的方法只是在框内创建随机位置,将用户放置在水道中或建筑物顶部。这种无法生成准确的合成位置数据的能力阻碍了许多需要多样化和复杂数据集来支持其工作的创新项目。

Gretel 的方法是通过将电动自行车位置数据编码为图像中的像素来建模这个问题,然后将该数据训练为类似于 CycleGAN、Pix2pix 和 StyleGAN 的图像翻译任务。在本研究中,我们使用了由 pix2pix 和 CycleGAN 的作者创建的较新的对比式非配对翻译 (FastCUT) 模型,因为它具有内存效率、训练速度快(即,适用于更高分辨率的位置)并且在最小的参数调整下可以很好地泛化。

方法

在本案例研究中,我们想测试是否可以根据使用来自其他城市的公开电动自行车数据训练的 GAN 模型,准确预测一个城市中踏板车的所在地。

为此,我们首先向模型输入不同城市地图的图像数据,包括华盛顿特区、丹佛和圣地亚哥,然后分别在这些城市的电动自行车位置的表格数据上训练模型,其中包括捕获电动自行车流量的时间序列数据。以下是原始数据在组合前后的示例

通过组合时间序列和图像数据创建上下文学习

三步流程

训练我们的模型有三个基本步骤。首先,我们创建了训练数据。为此,我们从地图上的一组精确电动自行车位置创建了域 A,并从相同的地图创建了域 B,但没有位置。

接下来,我们在新的训练数据上训练了 FastCUT 模型(包括标记和未标记的地图图像)。这是通过训练模型翻译域 B → 域 A 来完成的。

最后,一旦我们最初的模型训练完毕,我们生成了合成数据集,然后用它来进一步测试和优化模型对新城市地图的逼真用户位置的预测。这个生成过程需要下载目标位置(域 C)的新地图,然后在 FastCUT 模型上运行推断以预测踏板车位置(换句话说,翻译域 C → 域 A),最后使用 OpenCV-Python 处理这些图像以找到电动自行车位置,然后将其转换为地理位置(即,纬度/经度)数据点。有了这些信息,我们构建了合成位置数据集,并准备好进行测试。

结果:圣地亚哥 → 旧金山 → 东京

在我们的模型使用真实世界的圣地亚哥电动自行车数据进行训练后,我们重复了相同的初始过程,使用来自美国不同城市的图像数据训练我们的模型,然后要求我们的模型预测丢失的电动自行车位置数据。输出是与实际踏板车的准确、真实位置统计相关度为 90% 的预测!

换句话说,我们成功地在一个全新的环境中,在非常不同的时间,预测了那些独特的数据属性的关系。 真实世界和合成电动自行车位置的比较

我们还测试了东京的相同流程和模型,结果也类似。请注意,根据城市在世界上的位置,每个纬度或经度度之间的物理距离可能会有很大差异,在将像素映射到位置时,我们需要使用基于椭球的模型来计算精确的偏移量。幸运的是,geopy Python 库使这变得容易。 预测的东京市中心电动自行车位置

在查看东京的数据时,出现了一些明显的误报,特别是为水道生成的位置。也许进一步的模型调整,或在训练数据(域 A 或域 B)中提供更多水道的负面示例,可以减少误报。但是,结果是令人鼓舞的(考虑到很少的模型或数据集调整),该模型似乎能够模仿它使用来自世界不同地区的地图训练的电动自行车数据集的分布和位置。

重要的是,这是一个概念验证,您可以在任何时间、任何地点对合成位置数据进行准确的预测,因为基础属性是可互换的(至少在处理电动自行车时)。

结论

在这篇文章中,我们尝试将来自视觉领域(例如,城市地图数据)的上下文与表格数据一起应用,为全球城市创建逼真的位置数据。这个激动人心的案例研究对各个行业中高级软件应用程序和强大的 AI/ML 模型的开发具有深远的影响。例如,在未来,使用类似的机器学习技术,医疗从业人员可以快速处理书面医生笔记的文本以及 X 光图像,然后合成该数据的安全版本,这些数据可以用于更好地诊断和治疗患者。有了高质量的合成数据(和一些 Python 代码),可能性是无限的。

自己尝试一下这个实验,让我们知道您认为 FastCUT GAN 位置生成器有哪些令人兴奋的用例。

关于作者 Alex Watson 是 Gretel.ai 的联合创始人兼 CPO,Gretel.ai 是合成数据的开发人员堆栈。