tensorflow - 如何正确使用变分复发丢失

时间:2017-11-21 14:05:39

标签: tensorflow lstm recurrent-neural-network

张量流config dropout wrapper有三种不同的丢失概率可以设置:--- ~ » kafka-console-consumer --bootstrap-server localhost:9092 \ --topic topic \ --from-beginning \ --consumer-property isolation.level=read_committed world

我希望通过将input_keep_prob, output_keep_prob, state_keep_prob参数设置为true来为我的LSTM单位使用变量dropout。但是,我不知道我必须使用哪三个丢失概率才能使变分丢失正常运行。

有人可以提供帮助吗?

1 个答案:

答案 0 :(得分:4)

根据用于实施 variational_recurrent 辍学的本文https://arxiv.org/abs/1512.05287,您可以考虑如下,

  • input_keep_prob - 丢弃输入连接的概率。

  • output_keep_prob - 丢弃输出连接的概率。

  • state_keep_prob - 丢弃经常性连接的可能性。

见下图,

enter image description here

如果您将variational_recurrent设置为true,则会得到一个 RNN ,它与右侧的模型类似,左侧则相似。

上述两个模型的基本差异是,

  • 变体RNN 每次重复相同的丢失掩码 输入输出重复图层的步骤(丢弃 每个时间步的相同网络单元)。

  • 原生RNN 在每个时间步使用不同的丢失掩码 单独使用输入输出(不会将丢失与重复使用一起使用 自从使用不同的掩模与这些连接以来的连接 导致表现恶化。

在上图中,彩色连接表示掉线连接,不同颜色对应不同的丢失掩码。虚线对应于没有丢失的标准连接。

因此,如果您使用变异RNN ,您可以根据您的要求设置所有三个概率参数。

希望这有帮助。