【问题标题】:Last time step's state vs all time steps' state of RNN/LSTM/GRURNN/LSTM/GRU 上一个时间步的状态 vs 所有时间步的状态
【发布时间】:2018-02-05 19:49:11
【问题描述】:

根据我目前的理解,在为序列分类任务训练 RNN/LSTM 模型后,我可以通过以下两种方式进行预测,

  1. 获取最后一个状态并使用 softmax 层进行预测
  2. 取所有时间步的状态,在每个时间步进行预测,求和后取最大值

一般来说,有什么理由选择一个而不是另一个?或者这取决于应用程序?另外,如果我决定使用第二种策略,我应该为每个时间步使用不同的 softmax 层还是为所有时间步使用一个 softmax 层?

【问题讨论】:

    标签: machine-learning neural-network deep-learning lstm recurrent-neural-network


    【解决方案1】:

    我从未见过任何实现第二种方法的网络。最明显的原因是除了最后一个之外的所有状态都没有看到完整的序列。

    以评论情感分类为例。它可以从几个积极方面开始,然后是一个带有一系列缺点的“但是”。 “但是”之前的所有 RNN 单元都会有偏差,它们的状态不会反映真实的标签。他们中有多少人输出正面的课程以及他们有多自信是否重要?无论如何,最后一个单元格输出将是一个更好的预测器,因此我认为没有理由考虑之前的单元格输出。

    如果数据方面的顺序在特定问题中并不重要,那么 RNN 似乎不是一个好的方法。否则,最好使用最后一个状态。


    然而,在具有注意机制的序列到序列模型中存在一个例外(例如参见this question)。但它是不同的,因为解码器在每一步都预测一个 new 标记,因此它可以从查看早期状态中受益。此外它还需要最终的隐藏状态信息。

    【讨论】:

    • 好的。谢谢。这就说得通了。 2 层 RNN 案例如何:将最终层的最终状态与添加到最终层状态的第一层最终状态的最大值(我的意思是使用状态的预测分数)?
    • 更深的 RNN 实际上并没有太大的不同。在接下来的时间步中,早期的细胞仍然没有连接到数据。第一层可以看作是特征提取器,产生一个新的分析序列。顺便说一句,如果您有兴趣,可以看看双向 RNN。
    猜你喜欢
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 2018-04-14
    相关资源
    最近更新 更多