我目前正在构建用于原始信号分类的CLDNN(卷积,LSTM,深度神经网络)模型 .
由于可训练参数的数量很容易超过数百万,我认为辍学有助于防止过度拟合 .
我的问题也适用于堆叠多个模型的其他网络 .
如果我将网络结构化为
输入 - >卷积 - > LSTM - > DNN - >输出
我必须在每一层之后或仅在输出之前放一个辍学者吗?
输入 - >卷积 - > dropout - > LSTM - > dropout - > DNN - > dropout - > output
要么
输入 - >卷积 - > LSTM - > DNN - > dropout - >输出
到目前为止,我只看到应用于convNets的丢失,但我不明白为什么它应该只限于convNets . 其他网络(如LSTM和DNN)是否也使用压差来防止过度拟合?
1 回答
是的,您可以在每个图层后使用Dropout .
但是,将dropout应用于最后一层(在类上产生概率分布的层)是没有意义的 .
不要忘记LSTM是一个循环模型,因此您必须使用DropoutWrapper类在每个时间步应用dropout .