【问题标题】:Keras LSTM: dropout vs recurrent_dropoutKeras LSTM:辍学与经常性辍学
【发布时间】:2018-10-01 02:10:36
【问题描述】:
我知道这篇文章是在问与this 类似的问题。
但我只是想澄清一下,最好是指向某种说明差异的 Keras 文档的链接。
在我看来,dropout 在神经元之间起作用。 recurrent_dropout 在时间步之间作用于每个神经元。但是,我对此毫无根据。
Keras webite 上的文档根本没有帮助。
【问题讨论】:
标签:
deep-learning
keras
lstm
recurrent-neural-network
dropout
【解决方案1】:
Keras LSTM 文档包含高级解释:
dropout:在 0 和 1 之间浮动。输入的线性变换要丢弃的单位的分数。
recurrent_dropout:在 0 和 1 之间浮动。用于线性变换的单位的分数
的循环状态。
但这完全对应你指的the answer:
常规 dropout 应用于输入和/或输出,表示从 x_t 到 h_t 的垂直箭头。 ...
Recurrent dropout 掩盖(或“丢弃”)循环单元之间的连接;那将是您图片中的水平箭头。
如果您对公式级别的详细信息感兴趣,最好的方法是检查源代码:keras/layers/recurrent.py,查找rec_dp_mask(recurrent dropout mask)和dp_mask。一个是影响h_tm1(之前的内存单元),另一个是影响inputs。