成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用開源工具生成合成時間序列數(shù)據(jù)

譯文
開源
本文介紹了生成式對抗網(wǎng)絡(luò)(GAN)模型DoppelGANger以及如何使用其新的開源PyTorch實現(xiàn)來創(chuàng)建高質(zhì)量的合成時間序列數(shù)據(jù)。

?譯者 | 布加迪

審校 | 孫淑娟

引言

時間序列數(shù)據(jù)是跨多個時間點測量相同變量的一系列數(shù)據(jù),在現(xiàn)代數(shù)據(jù)環(huán)境中無處不在。與表格數(shù)據(jù)一樣,我們常常希望生成合成時間序列數(shù)據(jù),以保護敏感信息,或在真實數(shù)據(jù)稀少時創(chuàng)建更多的訓(xùn)練數(shù)據(jù)。合成時間序列數(shù)據(jù)的一些應(yīng)用包括:傳感器讀數(shù)、帶時間戳的日志消息、金融市場價格和醫(yī)療記錄。時間這個額外的維度(跨時間點的趨勢和相關(guān)性與變量之間的相關(guān)性同樣重要)給合成數(shù)據(jù)帶來了另外的挑戰(zhàn)。

我們Gretel之前發(fā)布了關(guān)于合成時間序列數(shù)據(jù)的博文,但一直在尋找可以改進合成數(shù)據(jù)生成的新模型。我們非常喜歡DoppelGANger模型和Lin等人合著的相關(guān)論文:??《使用GAN共享網(wǎng)絡(luò)時間序列數(shù)據(jù):挑戰(zhàn)、前景和未決問題》??,正在將該模型整合到我們的API和控制臺中。作為這項工作的一部分,我們用PyTorch重新實現(xiàn)了DoppelGANger模型,很高興將其作為我們開源??gretel-synthetics庫??的一部分來發(fā)布。

本文概述了DoppelGANger模型,提供了PyTorch實現(xiàn)的示例用法,并針對合成每日維基百科網(wǎng)絡(luò)流量的任務(wù)演示了出色的合成數(shù)據(jù)質(zhì)量:與TensorFlow1實現(xiàn)相比,運行時速度提升了約40倍。

DoppIGANger模型

DoppelGANger基于生成式對抗網(wǎng)絡(luò)(GAN),經(jīng)過一番改動,更好地適應(yīng)時間序列生成任務(wù)。作為GAN,該模型使用對抗訓(xùn)練方案,通過比較合成數(shù)據(jù)和真實數(shù)據(jù)來同時優(yōu)化鑒別器和生成器網(wǎng)絡(luò)。一旦經(jīng)過訓(xùn)練,可以將輸入噪音傳遞給生成器網(wǎng)絡(luò),以此創(chuàng)建任意數(shù)量的合成時間序列數(shù)據(jù)。

Lin等人在論文中介紹了現(xiàn)有的合成時間序列方法及自己的觀察結(jié)果,以確定局限性,并提出幾處具體的改進——DoppelGANger由此而來,包括一般的GAN改進和專門針對時間序列的技巧。下面列出了其中幾處關(guān)鍵修改:

  • 生成器含有用于生成序列數(shù)據(jù)的LSTM,但有批量設(shè)置,其中每個LSTM單元輸出多個時間點,以改善時間相關(guān)性。
  • 訓(xùn)練和生成時都支持可變長度序列(計劃中,但尚未在我們的PyTorch版本中實現(xiàn))。比如說,一個模型可以使用和創(chuàng)建10秒或15秒的傳感器測量值。
  • 支持不隨時間變化的固定變量(屬性)。該信息常常與時間序列數(shù)據(jù)一同出現(xiàn),比如金融價格歷史數(shù)據(jù)中與每只股票相關(guān)的行業(yè)或部門。
  • 支持按示例縮放連續(xù)變量以處理動態(tài)范圍大的數(shù)據(jù)。比如說,流行的維基百科頁面與罕見的維基百科頁面的頁面瀏覽量相差幾個數(shù)量級。
  • 使用帶梯度懲罰的Wasserstein損失,減少模式崩塌并改善訓(xùn)練。

捎帶提一下術(shù)語和數(shù)據(jù)設(shè)置。DoppelGANger需要有多個時間序列示例的訓(xùn)練數(shù)據(jù)。每個示例由0個或多個屬性值、不隨時間變化的固定變量以及在每個時間點觀察的1個或多個特征組成。組合成一個訓(xùn)練數(shù)據(jù)集時,這些示例看起來像2d屬性數(shù)組(示例x固定變量)和3d特征數(shù)組(示例x時間x時間變量)。視任務(wù)和可用數(shù)據(jù)而定,該設(shè)置可能需要將幾個較長的時間序列拆分成較短的塊,這些塊可用作訓(xùn)練的示例。

總地來說,對基本GAN所作的這些修改提供了一個富有表現(xiàn)力的時間序列模型,可以生成高保真合成數(shù)據(jù)。DoppelGANger能夠?qū)W習(xí)和生成具有不同尺度的時間相關(guān)性數(shù)據(jù)(比如每周和每年趨勢),給我們留下了特別深刻的印象。想了解模型的完整詳細信息,請閱讀??論文??。

示例用法

我們的PyTorch實現(xiàn)支持兩種輸入樣式(numpy數(shù)組或pandas DataFrame)以及模型的許多配置選項。想了解完整的參考文檔,請參閱https://synthetics.docs.gretel.ai/。

要使用我們的模型,最簡單的方法是使用pandas DataFrame中的訓(xùn)練數(shù)據(jù)。針對該設(shè)置,數(shù)據(jù)必須采用“寬”格式,其中每一行是示例,一些列是屬性,剩余的列是時間序列值。下列代碼片段演示了訓(xùn)練和生成來自DataFrame的數(shù)據(jù)。

# Create some random training data

df = pd.DataFrame(np.random.random(size=(1000,30)))

df.columns = pd.date_range("2022-01-01", periods=30)

# Include an attribute column

df["attribute"] = np.random.randint(0, 3, size=1000)
# Train the model

model = DGAN(DGANConfig(

max_sequence_len=30,

sample_len=3,

batch_size=1000,

epochs=10, # For real data sets, 100-1000 epochs is typical

))
model.train_dataframe(

df,

df_attribute_columns=["attribute"],

attribute_types=[OutputType.DISCRETE],

)
# Generate synthetic data

synthetic_df = model.generate_dataframe(100)

如果您的數(shù)據(jù)尚未采用這種“寬”格式,可以使用pandas pivot方法將其轉(zhuǎn)換成預(yù)期的結(jié)構(gòu)。DataFrame輸入目前有些受到限制,但我們計劃在未來支持接受時間序列數(shù)據(jù)的其他方式。為了獲得最大的控制度和靈活性,您還可以直接傳遞numpy數(shù)組進行訓(xùn)練(并在生成數(shù)據(jù)時以相似的方式接收屬性和特征數(shù)組),如下所示。

# Create some random training data

attributes = np.random.randint(0, 3, size=(1000,3))

features = np.random.random(size=(1000,20,2))
# Train the model

model = DGAN(DGANConfig(

max_sequence_len=20,

sample_len=4,

batch_size=1000,

epochs=10, # For real data sets, 100-1000 epochs is typical

))
model.train_numpy(

attributes, features,

attribute_types = [OutputType.DISCRETE] * 3,

feature_types = [OutputType.CONTINUOUS] * 2

)
# Generate synthetic data

synthetic_attributes, synthetic_features = model.generate_numpy(1000)

這些代碼片段的可運行版本可在??sample_usage.ipynb??處獲得。

結(jié)果

作為從TensorFlow 1改為PyTorch的新實現(xiàn)(優(yōu)化器、參數(shù)初始化等底層組件方面存在潛在差異),我們希望確認我們的PyTorch代碼按預(yù)期運行。為此,我們復(fù)制了原始論文中的部分結(jié)果。由于我們目前的實現(xiàn)僅支持固定長度序列,因此專注于維基百科網(wǎng)絡(luò)流量(WWT)的數(shù)據(jù)集。

Lin等人使用的WWT數(shù)據(jù)集最初來自Kaggle,含有測量各種維基百科頁面的每日流量數(shù)據(jù)。每個頁面有三個不同的屬性(域、訪問類型和代理)。圖1顯示了來自WWT數(shù)據(jù)集的幾個示例時間序列。

圖1:三個維基百科頁面的縮放的每日頁面瀏覽量,右側(cè)列出了頁面屬性

請注意,頁面瀏覽量根據(jù)整個數(shù)據(jù)集上的最小/最大頁面瀏覽量被對數(shù)軸縮放為[-1,1]。我們在實驗中使用的5萬頁的訓(xùn)練數(shù)據(jù)(已被縮放)在??S3上以csv格式提供??。

我們展示的三張圖顯示了合成數(shù)據(jù)保真度的不同方面。在每張圖中,我們將真實數(shù)據(jù)與三個合成版本進行比較:1)具有更大批量和更小學(xué)習(xí)率的快速PyTorch實現(xiàn),2)具有原始參數(shù)的PyTorch實現(xiàn),3)TensorFlow 1實現(xiàn)。在圖2中,我們查看了屬性分布,其中合成數(shù)據(jù)與真實分布非常匹配。

圖2:真實和合成WWT數(shù)據(jù)的屬性分布

WWT數(shù)據(jù)面臨的挑戰(zhàn)之一是,不同的時間序列有全然不同的頁面瀏覽量范圍。一些維基百科頁面持續(xù)獲得很大流量,另一些不那么受歡迎,但偶爾因某個相關(guān)的新聞事件(比如與頁面相關(guān)的突發(fā)新聞故事)而出現(xiàn)流量高峰。Lin等人發(fā)現(xiàn),DoppelGANger在生成不同尺度的時間序列方面非常有效(見原始論文的圖6)。在圖3中,我們提供了顯示時間序列中點分布的類似圖。就每個示例而言,中點處于550天內(nèi)獲得的最小和最大頁面瀏覽量的中間值。我們的PyTorch實現(xiàn)對中點顯示了類似的保真度。

圖3:真實和合成WWT數(shù)據(jù)的時間序列中點分布

最后,大多數(shù)維基百科頁面的流量呈現(xiàn)出每周和每年的模式。為了評估這些模式,我們使用自相關(guān),即不同時間滯后(1天、2天等)的頁面瀏覽量的Pearson相關(guān)性。三個合成版本的自相關(guān)圖如圖4所示(類似原始論文中的圖 1)。

圖4:真實和合成 WWT 數(shù)據(jù)的自相關(guān)

兩個PyTorch版本都生成原始論文中觀察到的每周和每年趨勢。TensorFlow 1結(jié)果與 Lin等人的圖1不匹配,正如來自我們實驗的上述圖所示。我們觀察到使用原始參數(shù)進行的訓(xùn)練有些不一致,模型偶爾沒有觀察到每年(甚至每周)模式。我們的快速版本中使用的較低學(xué)習(xí)率(1e-4)和較大的批量大小(1000)使再訓(xùn)練更加一致。

生成本節(jié)中的圖像和訓(xùn)練三個模型的分析代碼在??Github??上作為筆記本予以共享。

運行時

最后更復(fù)雜模型的一個關(guān)鍵方面是運行時。需要數(shù)周時間來訓(xùn)練的出色模型實際上比需要一小時來訓(xùn)練的模型更受限制。在這里,相比之下PyTorch實現(xiàn)表現(xiàn)極好(不過作者在論文中指出,他們沒有對TensorFlow 1代碼進行性能優(yōu)化)。所有模型均使用GPU進行訓(xùn)練,并在搭載英偉達Tesla T4的GCP n1-standard-8實例(8個虛擬 CPU和30 GB RAM)上運行。從13小時縮短到0.3小時,這對于這個出色的模型在實踐中發(fā)揮更大的用處至關(guān)重要!

版本

訓(xùn)練時間

TensorFlow 1

12.9小時

PyTorch,batch_size=100(原始參數(shù))

1.6 小時

PyTorch,batch_size-1000

0.3小時

原文標題:??Generate Synthetic Time-series Data with Open-source Tools???,作者:Kendrick Boyd?

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2023-01-28 16:13:08

InfluxData開源

2023-02-23 07:46:48

學(xué)習(xí)模型數(shù)據(jù)倉庫

2025-01-13 07:23:14

PythonAeon開發(fā)

2024-05-08 14:05:03

時間序列數(shù)據(jù)

2025-04-15 09:08:51

系統(tǒng)數(shù)據(jù)模型

2022-03-22 09:00:00

數(shù)據(jù)庫SingleStor技術(shù)

2023-04-18 18:22:31

開源工具數(shù)據(jù)庫

2018-10-29 11:33:29

2023-03-29 07:02:46

開源項目工具

2021-01-06 08:14:21

時間序列數(shù)據(jù)庫數(shù)據(jù)庫

2022-11-14 07:52:14

時間序列數(shù)據(jù)庫CPU

2025-01-14 13:32:47

2024-07-18 13:13:58

2020-01-15 16:00:16

Linuxseq命令數(shù)字序列

2012-09-13 09:52:14

大數(shù)據(jù)數(shù)據(jù)應(yīng)用開源工具

2019-04-08 17:16:43

大數(shù)據(jù)開源工具

2018-11-06 20:30:23

Python開源工具機器學(xué)習(xí)

2020-09-20 10:12:54

nccm

2023-04-10 13:08:46

開源思維導(dǎo)圖

2023-07-30 09:55:02

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 伊人色综合久久久天天蜜桃 | 日本三级电影在线免费观看 | 一区二区三区日韩 | 亚洲精品一区二区三区蜜桃久 | 范冰冰一级做a爰片久久毛片 | 在线免费观看欧美 | 日韩成人影院在线观看 | 91免费小视频 | 日韩欧美在线播放 | 日韩成人精品一区二区三区 | 亚洲精品久久久久久久久久久 | 在线观看的av | www.99re5.com| 国产精品国产精品国产专区不蜜 | 日韩免费视频一区二区 | 91精品国产综合久久小仙女图片 | jlzzjlzz欧美大全| 亚洲日韩中文字幕一区 | 粉嫩高清一区二区三区 | 99av成人精品国语自产拍 | 四虎网站在线观看 | 久久精品男人的天堂 | 色天堂影院 | 国产精品不卡视频 | 成人黄色电影在线播放 | 精品美女视频在线观看免费软件 | 国产精品久久一区二区三区 | 国产精品一区二区精品 | 337p日本欧洲亚洲大胆 | 久在线 | 精品一区二区久久久久久久网站 | 99免费在线观看 | 久久y| 毛片免费在线观看 | 日韩欧美在线视频 | 国产精品亚洲片在线播放 | 久久国产精品视频 | 福利视频一区 | 精品国产91亚洲一区二区三区www | 嫩草视频在线看 | 青青草亚洲 |