2017-07-07 134 views
0

我對LSTM如何處理輸入有點困惑。 大家都知道,LSTM模型在Keras輸入的形式(batch_size時,時間步長,input_dim)。 我的數據是一個時間序列數據,其中n個時間步長的每個序列被饋入以預測n + 1個時間步長的值。那麼,他們如何訪問輸入?他們會按順序處理每個步驟,或者同時訪問所有這些步驟? 當我檢查每個LSTM層的參數數量。它們有4 * d *(n + d),其中n是輸入的維數,d是存儲單元的數量。 在我的情況下,我有d = 10,參數的數量是440(沒有偏見)。所以這意味着在這裏n = 1,所以好像輸入的維數爲1 * 1。 然後他們可以自由地接觸到所有人。 任何人有關於此的一些想法?Keras中的LSTM如何訪問輸入?

回答

1

首先,考慮卷積層(更容易)。

它具有隻對「過濾器大小」,「輸入通道」和「過濾器數」依賴參數。但從來沒有在「圖像的大小」。

這是因爲它是一個有點「行走操作」。在整個圖像中應用相同的一組濾鏡。總的操作隨着圖像的大小而增加,但是僅定義了濾波器的參數獨立於圖像大小。 (設想一個過濾器來檢測一個圓圈,這個過濾器不需要改變來檢測圖像不同部分的圓圈,儘管它適用於整個圖像的每一步)。

所以:

  • 參數:過濾器號*濾波器²*輸入通道
  • 計算步驟的大小:圖像的尺寸(考慮進步,填充等)

隨着LSTM圖層,類似的事情發生。這些參數與他們所謂的「門」有關。 (Take a look here

有一個「狀態」,並且每次都迭代來確定的狀態將如何改變在施加「門」。

的門不隨時間變化的,雖然。這些計算確實是時間迭代,但每次迭代都使用同一組門。

相較於卷積層:

  • 參數:細胞的數量,數據維度
  • 計算步驟:時間步
+0

好的,謝謝你的回答。所以你認爲在這種情況下什麼是時間依賴的? – qnguyen

+0

細胞的內部狀態與時間有關。每個序列步驟都會改變內部狀態。但我們通常不會看到或不關心。每一步都有:1 - 以某種方式改變這種內在狀態; 2 - 使用此內部狀態+輸入(上一步的輸出)來生成結果。 –