你在訓練RNN的時候有哪些特殊的trick?

時間 2021-05-06 09:13:36

1樓:無非

重要的事情說三遍:orthogonal初始化,orthogonal初始化,orthogonal初始化

乙個簡單易懂的文章見:Explaining and illustrating orthogonal initialization for recurrent neural networks

有時orthogonal初始化+prelu/elu activation 配合使用食味更佳。。。

如果是用gru,另外可以嘗試用最開始這篇文獻的decoder gru cell框架[1406.1078] Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation

就是cell的輸入多了乙個context/summary的hidden state 資訊。我用tf沒找到直接能呼叫的API不過在自帶的gru cell的基礎上改很方便

2樓:吳學陽

首先得驗證模型對不對,我們通常使用數字排序來驗證(即seq2seq的input sequence是亂序的數字,output sequence是排序後的結果),通常用比較小的網路就能做到。其次是語料,如果模型正確性有保障的話,在訓練Responding Machine的時候對語料的依賴性很大。如果語料中post和response的相關性低,很難訓練出正常的結果。

即使是從Github上clone的模型,也難以保證結果。一般訓練前要對語料進行一遍清洗。

關於訓練時長,我用pytorch實現的版本,訓練400萬對大概300分鐘乙個epoch。網路就是seq2seq with attention,單層單向,hidden_size 800, embedding size 400,2到3個epoch收斂。實際上訓練資料不用這麼多也能收斂,我試過20萬對的照樣能把ppl下降到正常範圍,也大概是3個epoch左右。

3樓:

最近我也發現gru竟然還沒全連線效果好,我也是醉了。試試樓上良心trick再瞅瞅

個人專案經驗:

1.gru替換fc之後,迭代次數相應變多

2.變數初始化使用正交向量

3.變數regularation

比較好一些..

你在訓練機器學習模型的時候,有哪些關於 training dynamics 的經驗?

星衡科技 實用策略 warm up 余弦退火 warm up 訓練初期由於離目標較遠,一般需要選擇大的學習率,但是使用過大的學習率容易導致不穩定性。所以可以做乙個學習率熱身階段,在開始的時候先使用乙個較小的學習率,然後當訓練過程穩定的時候再把學習率調回去。比如說在熱身階段,將學習率從0調到初始學習率...

你有哪些特殊的Windows使用習慣?

二一先生 應用 將開始工具列從下方移至上方的好處 這是好多年前在電腦雜誌上看的.自己也是都這樣用有什麼好處呢?就windows而言視窗的標題欄是位於上方的ex 視窗切換 而滑鼠游標的操作每每總是須要從上移到下方來進行點選的動作 雖可利用鍵盤組合鍵 ALT TAB 達到在不同視窗切換的動作若是把工具列...

你有哪些特殊的寫作技巧?

專業文案小德 我想進來看這個問題的朋友們都十分期待能有一種小白都能看得懂,小白都能用得上,小白一用馬上就能提高的寫作技巧。左思右想,能滿足這個條件的,應該就是我創作文案時候常用的 意象寫作法 了 這個方法很簡單,就是當你面對乙個主題,或者你要營造一種氛圍時那麼先別急,先把這個主題或者氛圍的意象列出來...