我想预测股价。
通常情况下,人们会将输入视为一系列股票价格。 然后他们将输出作为相同的序列但向左移动。
测试时,他们会将预测的输出提供给下一个输入时间步,如下所示:
我有另一个想法,即修复序列长度,例如50个步骤。 输入和输出完全相同。
训练时,我将输入的最后3个元素替换为零,让模型知道我没有那些时间步的输入。
测试时,我会给模型提供50个元素的序列。最后3个是零。我关心的预测是输出的最后3个元素。
这会有用吗还是这个想法存在缺陷?
答案 0 :(得分:2)
这个想法的主要缺陷是它不会为模型的学习添加任何东西,并且它会降低其容量,因为你强迫你的模型学习前47个步骤(50-3)的身份映射。注意,提供0作为输入相当于不为RNN提供输入,因为零输入在乘以权重矩阵后仍然为零,因此唯一的信息来源是偏差并从先前时间步输出 - 两者都已存在于原始配方。现在是第二个插件,我们有前47个步骤的输出 - 通过学习身份映射没有任何东西可以获得,但网络将不得不“为它付出代价” - 它需要使用权重来按顺序编码这个映射不要受到惩罚。
所以简而言之 - 是的,你的想法会起作用,但与原始方法相比,这种方式几乎不可能获得更好的结果(因为你没有提供任何新信息,也没有真正改变学习动态,但是你通过请求逐步学习身份映射来限制容量;特别是这是一个非常容易学习的东西,所以梯度下降将首先发现这种关系,甚至在尝试“模拟未来”之前。)