注意: 雖然 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 是合成數據的開發人員堆疊。