2015-07-22 62 views
1

我已經通過一個序列訓練了一個LSTM,並嘗試測試它是否可以合成某些輸出序列,但有趣且不幸的是,它非常快速,即在2個時間步後穩定到一個固定輸出,意味着一個確切的序列相同的值。爲什麼我的LSTM穩定點?

現在我已經改變了初始化,但輸出在2步後總是相同的。培訓或抽樣可能有什麼錯誤?

對不起,我不能給更多的上下文,因爲整個程序是一個太大而不能發佈在這裏。

回答

0

您的訓練或取樣沒有任何問題 - 這是「純」LSTM網絡的預期行爲。爲了建模數據中的方差,不要讓網絡直接在下一個時間步預測值。相反,您的網絡應該爲您提供下一個時間步的可能值的概率分佈,然後您可以從中進行採樣。

的你如何能做到這兩個例子:

  • 離散數據,例如文本:在LSTM頂部堆疊softmax層,它爲每個字母提供概率,然後從這些概率中抽樣 - 這也在Karparthy臭名昭着的char-rnn中實現,參見段落「溫度」
  • 連續數據時間序列:使網絡預測混合分佈的參數(即高斯的線性組合),然後從中抽樣 - 我非常推薦在Graves 2013中的手寫預測部分,或者你可以看看this report的第5章最近寫了一個研究項目
相關問題