用生成式深度學習模型填充時間序列
隨著時間的推移,用於生成的深度學習模型的使用正變得越來越流行。這些型別的模型被稱為生成演算法,在研究一個參考群體後被用於在各個領域生成新的和不可見的樣本。這些技術最著名的應用是在計算機視覺領域,各種應用程式可以生成以前不存在的影象。
生成模型的效用是多種多樣的和領域相關的。它們可以用於以快速的方式建立新例項,而手動建立新例項的成本更高,或者也不可能。它們可以模擬一些未被記錄或遺漏的情況。它們可以用來生成不同的副本,這些副本與原始副本不同,具有一定程度的噪音,從而擁有足夠的樣本來複制罕見事件。
在本文中,我們提出了VAE在時間序列任務中的應用。更準確地說,我們嘗試使用一種變分自動編碼器結構來填充一些時間序列序列,這些序列的特徵是在真實場景中存在缺失資料。在第二階段,我們也檢查由我們訓練的VAE所產生的結果,以調查產生增廣時間序列樣本的可能性。
資料對於我們的實驗,我們選擇Metro Interstate Traffic Volume Dataset資料集。它報告了位於明尼阿波利斯和聖保羅之間的某個地鐵站的州際每小時交通量。 該資料集還包含其他有用的資訊,例如每小時的天氣特徵和假期可能會影響交通量。 這些附加屬性中的大多數都以分類格式提供。
由於我們掌握的完整流量歷史記錄很長,但是間隔有些缺失,因此我們決定重點關注最近3年的資料。 這是因為所提到的時間段由於丟失的片斷很少出現而顯得足夠一致,在這種情況下,可以用簡單的插值填充這些片斷,以獲取完整且有價值的資料來源來開發我們的方法。
這些資料清晰和直觀顯示了不同的季節性水平。從月度聚集情況出發,我們可以看到當人們傾向於外出度假時(聖誕節/夏季期間),交通水平的下降。周模式和小時模式是人類對公共交通系統正常使用行為的結果。其他分析表明,在出現極端事件(如暴風雪)的情況下,交通可能會發生巨大的變化。此資訊作為附加的分類源提供。
模型我們的工作流程描述如下。給定有意義資料的選定時間間隔,我們強制在資料流中引入一些缺失的時間間隔(具有固定的長度和比例)。缺失的序列形成了我們的變分自動編碼器的主要輸入,該編碼器被訓練來接近真實的序列而不缺失片段。值得注意的是,我們從一個完整的資料來源開始,在這個資料來源上插入隨機缺失的時間間隔,因為這使我們能夠與真實情況進行比較並計算效能指標。
VAE的第二個有意義的輸入是整數序列,該序列對作為分類特徵的附加資訊進行編碼,如月、工作日、小時、假日、天氣條件。在處理原始交通訊號中缺失的值時,我們小心地用一個特殊的整數(假設0)替換相應的類別,以正確編碼"缺失資訊"的狀態(這不適用於月、工作日、小時,它們總是已知的每個日期)。
編碼器由一個LSTM單元組成。它接收原始交通資料的拼接和分類特徵的嵌入產生的3D序列作為輸入。像在VAE架構中的每個編碼器一樣,,它會產生一個2D輸出,用於逼近潛在分佈的平均值和方差。解碼器從二維潛在分佈上取樣,形成三維序列。然後將生成的序列與透過LSTM單元傳遞的原始分類嵌入序列連接回去,以重建原始的流量序列。
對VAE的訓練是將兩部分組合在一起的損失降至最低。 重構部分(在我們的案例中為比例均方誤差),表示模型可以再現目標的數量,正則化部分(Kullback Leibler散度),其作用是使潛空間與正態分佈更相似 。
結果和應用我們方法的主要目的是開發一種無監督的框架,該框架可以填充流量中出現的缺失部分。 為了測試此任務的有效性,我們保留了部分資料以計算效能指標,例如經典的MSE / RMSE來驗證重建能力。 我們還可以僅對要重建的缺失部分計算特定統計資訊。 透過在資料集的最後一部分上進行簡單的時間拆分即可獲得測試集。 這部分大致由與整個資料集中相同比例的缺失序列組成。
我們訓練後的模型的第二種可能的應用是使用它來生成新序列。 這是所有VAE的常見行為,其中可以分別利用編碼器和解碼器來建立新樣本。 編碼器將輸入投影到潛在空間的特定區域中。 我們使用投影的座標來取樣附近的新點。 可以透過選擇所需的方差量來調節"附近"。 潛點透過解碼器以操作序列生成。 顯然,最終重建的點越接近,越相似。 還需要注意的是,樣本生成的優劣與整個VAE的重構能力嚴格相關。
潛在空間作為某些分類變數的函式
時間序列的增廣
總結在本文中,我們介紹了變分自動編碼器在時間序列分析中的應用。 我們基於LSTM單元構建了一個VAE,該VAE將原始訊號與外部分類資訊相結合,發現它可以有效地估算缺失間隔。 我們還嘗試分析模型學習到的潛在空間,以探索產生新序列的可能性。 可以做進一步的工作來提高效能,使過程適應其他任務,或者找到其他有趣的應用程式。
最後給出本文的程式碼:github/cerlymarco/MEDIUM_NoteBook