我建议先看一下这篇论文的前半部分:链接。常规的dropout被应用于输入和/或输出,这意味着从x_t到h_t的垂直箭头处会进行dropout。在您的情况下,如果将其作为参数添加到您的层中,它将掩盖输入;您可以在循环层之后添加一个Dropout层来掩盖输出。循环dropout掩盖(或“丢弃”)循环单元之间的连接;那将是您图片中的水平箭头处。 这张图片摘自上面提到的论文。左边是对输入和输出进行常规dropout。右边是对输入和输出进行常规dropout PLUS 循环dropout:
(忽略此情况下箭头的颜色;在论文中,他们进一步指出在每个时间步长使用相同的dropout掩码)
- Michele Tonutti
3
1谢谢,@michetonu。链接的论文和你的解释很有帮助。你能指出一些如何在Keras中正确使用regular_dropout和recurrent_dropout进行时间序列预测的方法吗?似乎有些例子将这两种dropout结合在一起,而有些则只使用recurrent_dropout。 - Kim Miller
上面的答案强调了一种经常使用的dropout方法,但这种方法不是由Tensorflow和Keras使用的。Tensorflow Doc。 Keras/TF提到了Semeniuta et al提出的一种循环方法。此外,请查看下面比较不同循环dropout方法的图像。在上面的答案中提到的Gal and Ghahramani方法位于第二个位置,而Semeniuta方法位于最右侧。