dropout

1、dropout是神经网络中最有效的正则化方法;

2、传统的dropout在rnn中效果不是很好;dropout在rnn中使用的效果不是很好,因为rnn有放大噪音的功能,所以会反过来伤害模型的学习能力;

3、在rnn中使用dropout要放在时间步的连接上,即cell与cell之间传递,而不是神经元;对于rnn的部分不进行dropout,也就是说从t-1时候的状态传递到t时刻进行计算时,这个中间不进行memory的dropout;仅在同一个t时刻中,多层cell之间传递信息的时候进行dropout
dropout

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

第一个dropout是x和hidden之间的dropout,第二个是hidden-hidden之间的dropout

在tensorflow里面有dropout

 

第三个是层-层之间的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))