2015-07-22 66 views
1

我已经通过一个序列训练了一个LSTM,并尝试测试它是否可以合成某些输出序列,但有趣且不幸的是,它非常快速,即在2个时间步后稳定到一个固定输出,意味着一个确切的序列相同的值。为什么我的LSTM稳定点?

现在我已经改变了初始化,但输出在2步后总是相同的。培训或抽样可能有什么错误?

对不起,我不能给更多的上下文,因为整个程序是一个太大而不能发布在这里。

回答

0

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

的你如何能做到这两个例子:

  • 离散数据,例如文本:在LSTM顶部堆叠softmax层,它为每个字母提供概率,然后从这些概率中抽样 - 这也在Karparthy臭名昭着的char-rnn中实现,参见段落“温度”
  • 连续数据时间序列:使网络预测混合分布的参数(即高斯的线性组合),然后从中抽样 - 我非常推荐在Graves 2013中的手写预测部分,或者你可以看看this report的第5章最近写了一个研究项目
相关问题