pytorch RNN LSTM GRU 曲线序列预测
网络训练输入为某段时刻的正弦曲线波形,目标值为同一时刻的余弦曲线波形(红色),每一次模型训练输出的预测值为蓝色曲线。
1.经典RNN预测结果
经典RNN的单次输入序列长度为10steps时,经过100次迭代后,曲线的预测值已经能较好地与目标值重合,如下图所示。
然而,当经典RNN的单次输入序列长度为20steps时,出现了梯度爆炸和梯度弥散,如下图所示。
2.LTSM预测结果
LSTM解决了梯度爆炸和梯度消失问题,使用20steps作为训练序列长度,在第80次迭代左右就实现了较好的拟合,如下图所示。
2.GRU预测结果
GRU同样解决了梯度爆炸和梯度消失问题,使用20steps作为训练序列长度,在第60次迭代左右就实现了较好的拟合,而和LSTM相比,GRU所需参数更少,性能更加优秀,预测结果如下图所示。