某些背景
- 我正在为时间序列预测(不是预测)训练LSTM
- 时间序列的间隔不相等且长度可变。因此,序列将长度填充为0。
- timesteps = 30
- 模型有6个输出,这些输出在[0,1]之间进行了标准化
- 功能(50)由动态和静态变量组成
- 使用std和mean标准化功能,然后使用PCA对其进行转换。
- 模型权重使用“ glorot_normal”初始化
- 隐藏的lstm层使用“ tanh”,而输出层lstm则使用“ relu”
- 作为损失函数的均方对数误差(比mse更好,并且mse也显示出相同的损失趋势)
- lr = 0.001
-
batch_size = 128
-
隐藏单元数60
下面是训练和验证损失曲线,该曲线最初显示为平坦曲线。训练时,其中一个输出会出现较长的过度拟合,从而影响整个模型。请参阅放大的损失趋势。尽管如此,其他曲线仍保持相对平坦。此外,模型能够找到模式,但是就我想要达到的范围而言,它并不准确。它会超出或低于真实值。参见下面的预测。
问题
- 静态特征会导致这种高损耗趋势吗?我在blog上读过(在数据准备中),人们将需要汇总时间序列的统计信息,以免将来的信息泄漏到训练数据集中。我不确定那是什么意思。有人也可以向我解释一下吗?
- 我怀疑,由于学习曲线相对平坦,因此添加更多数据会带来任何显着改善。这种信念正确吗?
- 有没有更好的初始化方案可以使我更接近更好的性能
- 关于如何改进模型的其他想法?