现在几天,我正在尝试使用LSTM构建一个简单的正弦波序列生成,到目前为止还没有任何成功的一瞥。
我是从time sequence prediction example
开始的我想要做的就是:
这是my code的链接。 “experiment.py”是主文件
我的工作是:
会发生什么:
我根本看不出问题所在。我现在正在玩这个星期一周,没有任何进展。 我会非常感谢任何帮助。
谢谢
答案 0 :(得分:8)
这是正常的行为,因为您的网络对输入的质量过于自信,并且没有学会依赖过去(在其内部状态下),依赖于输入。当您在生成设置中将网络应用于其自己的输出时,网络的输入不如在获得真实输入的训练或验证情况下那样可靠。
我有两种可能的解决方案:
第一个是最简单但不太直观的一个:在输入中添加一点高斯噪声。这将迫使网络更多地依赖其隐藏状态。
第二个,是最明显的解决方案:在训练期间,不是输入真正的输入,而是以一定的概率p生成输出。开始训练p = 0并逐渐增加它,以便它独立地学习更长和更长的序列。这称为调度采样,您可以在此处阅读更多相关信息:https://arxiv.org/abs/1506.03099。