神经网络训练不稳定问题(loss和accuracy波动大)的一种原因及解决方案

用LSTM做时间序列预测时发现训练刚开始时loss(MSE)下降很快,accuracy(调整R方)上升也很快,但到后面loss总体上下降变慢,并且时有波动,accuracy甚至会经常出现负值,然后又回弹至正值。经查阅资料和反复调试,发现是batch size太小的问题,原来的batch size是2,现在改成4

batch size为2时loss的变化如下
神经网络训练不稳定问题(loss和accuracy波动大)的一种原因及解决方案_第1张图片
batch size 为4时loss的变化如下,虽然也有波动,比如在910epoch左右loss冲到了0.06,但总体上比batch size稳定
神经网络训练不稳定问题(loss和accuracy波动大)的一种原因及解决方案_第2张图片
再来看accuracy
batch size为2时accuracy变化如下,蓝色训练集,红色测试集
神经网络训练不稳定问题(loss和accuracy波动大)的一种原因及解决方案_第3张图片
batch size为4时accuracy变化如下,确实更稳定了
神经网络训练不稳定问题(loss和accuracy波动大)的一种原因及解决方案_第4张图片
参考资料:https://www.zhihu.com/question/30263116/answer/130163865

你可能感兴趣的:(RNN,PyTorch,神经网络,机器学习,深度学习)