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

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

标题图片来源:sylv1rob1 经 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 的联合创始人兼首席产品官,Gretel.ai 是合成数据的开发者栈。