簡體   English   中英

具有多維輸出目標的LSTM

[英]LSTMs with multi-dimensional output targets

給定3D矢量的時間序列, [x, y, z]其中x,y和z是任意整數,我想建立一個模型來預測系列中的下一個矢量並捕獲每個維度中的模式x,y,z。

所以,如果X = [[0, 0, 6], [1, 0, 0], [9, 9, 9], [3, 0, 3], [1, 2, 3]] ,我給我的模型4元素序列[[0, 0, 6], [1, 0, 0], [9, 9, 9], [3, 0, 3]]預測[1, 2, 3]

我不能只對每個矢量進行一次熱編碼,因為數字可以有任意值,所以我想知道如何實現這一點。 非常感謝任何見解,謝謝!

在這種情況下,您的輸入只是矢量。 在時間步1,矢量是[0,0,6] ,在時間步2,矢量是[1,0,0] ,依此類推。 對於輸出,您應該通過完全連接的層傳遞輸出,該層將其轉換為正確的輸出大小。

假設你的序列長度是固定的,你真的沒有在這里進行任何預處理,除非標准化或重新調整你的輸入,所以它們不是很大的數字。

通常,RNN的工作方式與完全連接的網絡非常相似。 實際上,RNN小區由4個完全連接的網絡組成,這些網絡簡單地以非平凡的方式連接在一起。 但是從你放入的內容和你得到的東西的角度來看,把它們想象成一個簡單的完全連接的網絡(每個時間步長)。

你可以在這里閱讀我的最后一段更多內容: http//colah.github.io/posts/2015-08-Understanding-LSTMs/

如果您的序列長度是可變的,那么您通常會添加一個輸入,將其標記為預測步驟。 這可能只是全部為零,例如:

X = [[0, 0, 6], [1, 0, 0], [9, 9, 9], [3, 0, 3], [0, 0, 0]]

或者,如果[0,0,0]是一個有效的數據點,您可以添加一個特征來將時間步長標記為輸入或預測,例如:

X = [[0, 0, 0, 6], [0, 1, 0, 0], [0, 9, 9, 9], [0, 3, 0, 3], [1, 0, 0, 0]]

其中該數據集中的第一個值指示時間步長是輸入0還是預測1

您將在每個時間步都有輸出,您將忽略它們。 您的損失函數將僅基於最后一個時間步的輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM