测试集上loss振荡
来源:7-9 LSTM长短期记忆网络

慕标1049315
2021-03-12
老师,我把一个2层,双向误差传递的LSTM应用到我的实际数据。数据为时间序列。这里有两个问题想请教。
1、在模型训练时,训练集上loss稳步下降,测试集上loss却振荡并且没有明显下降。如图,我的理解是,模型在训练集上过拟合了。但,我尝试减少units,把双层网络改成单层,情况并没有明显改变。请问还有哪些方法可以尝试?
2、我的数据是时间序列的,且时间越靠后,y的值也更加波动(在同样工况下)。所以,我如果用时间靠前的数据训练模型,再用模型去预测时间靠后的数据,预测偏差肯定会偏大。(即训练、测试数据集存在差异)这个我可以理解,体现在测试集上的loss就是比训练集上大。但我觉得变化趋势应该是一致的才对啊,怎么去理解这种loss振荡。
写回答
1回答
-
还可以尝试添加dropout,改进初始化方法。这些在lstm的API上可以找到:https://www.tensorflow.org/api_docs/python/tf/keras/layers/LSTM
看你这个loss趋势图,我感觉不是震荡问题,而好像是没有收敛。你可以尝试一下对数据做一下归一化,看看能不能好一些?另外,时间数据的话,主要就是考虑数据分布的漂移,可以考虑做归一化的时候类似于BN那样用moving average和moving variance。
012021-03-25
相似问题