1

我已经通过序列训练了 LSTM,并尝试测试它是否可以合成一些输出序列,但有趣且不幸的是,它非常快,即在 2 个时间步之后,稳定到固定输出,这意味着序列完全相同的值.

现在我已经更改了初始化,但是在 2 步之后输出总是相同的。训练或抽样中可能有什么问题?

抱歉,我无法提供更多上下文,因为整个程序太大了,无法在此处发布。

4

1 回答 1

0

您的训练或采样没有任何问题 - 这是“纯”LSTM 网络的预期行为。要对数据的方差进行建模,请不要让网络直接预测下一个时间步的值。相反,您的网络应该为您提供下一个时间步的可能值的概率分布,然后您可以从中进行采样。

如何做到这一点的两个例子:

  • 离散数据,例如文本:在 LSTM 顶部堆叠一个 softmax 层,它为您提供每个字母的概率,然后从这些概率中采样 - 这也在 Karparthy 臭名昭著的char-rnn中实现,请参见“温度”段落
  • 连续数据,例如时间序列:让网络预测混合分布的参数(即高斯的线性组合),然后从中采样 - 我非常推荐Graves 2013中关于笔迹预测的部分,或者你可以看看我最近为一个研究项目写的这份报告的第 5 章
于 2016-06-27T00:49:05.190 回答