为什么损失曲线在很长一段时间内表现良好,但在训练接近尾声时突然出现罢工?

2024-09-30 22:24:00 发布

您现在位置:Python中文网/ 问答频道 /正文

整个培训共有20个课时,完成培训需要36个小时。损耗在开始时以很好的稳定速度减小,在第[3]纪元前后,损耗减小到3-5左右,然后在第13纪元,损耗逐渐减小到1-2,但在第[18]纪元时,损耗开始增大,然后爆发。一旦爆炸,它开始减少,然后在损失20-30左右,它又开始爆炸

我检查学习率太高。但我很惊讶地看到,在培训快结束时发生了这种情况,因为大多数在线示例很快或在培训过程中就开始出现了。我使用AdamOptimization,初始学习率为0.0005。我还实现了Elu激活、He权重初始化和渐变剪裁,以帮助避免渐变消失/爆炸的情况

我想我能做的就是一旦损失没有通过设定某个值得到改善,就停止训练。但是如果我想得到更好的结果呢?现在我只能训练17个时代,损失大约是1-2,如果我继续训练,损失最终会回升。但是,如果我想让损失小于1呢?我应该怎样做/探索才能更好地优化程序?我怎样才能让网络在不爆炸的情况下保持有效的训练?如果我设定一个较低的学习率,会不会只是让“爆棚”发生在以后(换言之,不管学习率有多高,最终会爆发吗?)

enter image description here


Tags: 示例过程情况速度elu损耗权重he