【问题标题】:What is the approach for ensembling recurrent neural networks?集成递归神经网络的方法是什么?
【发布时间】:2017-02-12 03:23:27
【问题描述】:

将多个深度网络集成在一起以改进预测期间的统计数据通常相当容易。这通常就像获取输出预测并将它们平均在一起一样简单。在循环神经网络中,这并不那么简单,因为我们正在对一系列输出进行预测。

我们如何集成递归神经网络?您是否使用多个模型预测每个时间步的输出,平均输出,然后使用平均值的预测反馈到每个单独的模型(冲洗,重复)?这似乎在常见的 ML 库中实现起来相当麻烦(我使用的是 Tensorflow)。

【问题讨论】:

  • 这与辍学有关吗?
  • 不,不相关。这是关于分别训练多个模型,然后在测试期间将它们组合以提高性能。

标签: tensorflow recurrent-neural-network ensemble-learning


【解决方案1】:

您所说的似乎可以概括为 RNN 的“解码策略”。例如:

  1. 您从单个模型中选择概率最高的词并将其输入并选择它作为下一个输入(argmax 解码)。
  2. 您可以从输出概率分布中采样一个单词并将其用作下一个输入。
  3. 您可以进行波束搜索,在其中保留 k 个最佳候选解码,然后选择另一个波束作为下一个输入。
  4. 与您的建议类似,您可以使用多个模型或其他更复杂的解码策略来选择下一个输入。

实现起来绝对不是微不足道的,但也不算太糟糕。在 TensorFlow 中,您将使用 raw_rnn 函数来执行此操作。基本上,它就像一个 while 循环,您可以使用任意复杂的函数来选择 RNN 的输出和下一个输入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-28
    • 1970-01-01
    • 2012-01-04
    • 2018-10-17
    • 2015-06-30
    • 2019-01-27
    • 1970-01-01
    • 2018-12-28
    相关资源
    最近更新 更多