dropout

1、dropout是神經網絡中最有效的正則化方法;

2、傳統的dropout在rnn中效果不是很好;dropout在rnn中使用的效果不是很好,因爲rnn有放大噪音的功能,所以會反過來傷害模型的學習能力;

3、在rnn中使用dropout要放在時間步的連接上,即cell與cell之間傳遞,而不是神經元;對於rnn的部分不進行dropout,也就是說從t-1時候的狀態傳遞到t時刻進行計算時,這個中間不進行memory的dropout;僅在同一個t時刻中,多層cell之間傳遞信息的時候進行dropout

model.add(LSTM(100, dropout=0.2, recurrent_dropout=0.2))

第一個dropout是x和hidden之間的dropout,第二個是hidden-hidden之間的dropout

在tensorflow裏面有

 

第三個是層-層之間的dropout

model.add(Embedding(top_words, embedding_vecor_length, input_length=max_review_length))
model.add(Dropout(0.2))
model.add(LSTM(100))
model.add(Dropout(0.2))

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章