在Tensorflow中,Adam Optimizer突然增加了损失

and*_*uer 12 regression neural-network conv-neural-network tensorflow

我正在使用CNN进行回归任务.我使用Tensorflow,优化器是Adam.网络似乎完全收敛,直到损失突然增加的一点与验证错误.以下是标签的损失图和分离的权重(优化器在它们的总和上运行) 标签丢失 减肥

我使用l2损失进行重量正规化以及标签.我对训练数据应用了一些随机性.我目前正在尝试使用RSMProp查看行为是否发生变化,但重现错误需要至少8小时.

我想了解这是怎么发生的.希望您能够帮助我.

and*_*uer 9

我在过去几个月的经历如下:Adam很容易使用,因为你不必非常喜欢初学习率,而且几乎总是有效.然而,当谈到收敛时,亚当并没有真正满足于解决方案,而是在更高的迭代时摇摆不定.虽然SGD给出了几乎完美形状的损失图,并且似乎在更高的迭代中收敛得更好.但是改变设置的litte部分需要调整SGD参数,否则你最终会得到NaN ...对于体系结构和一般方法的实验我赞成Adam,但是如果你想获得一个所选体系结构的最佳版本你应该使用SGD并至少比较解决方案.

我还注意到一个良好的初始SGD设置(学习率,重量衰减等)收敛速度与使用Adam一样快,我的设置也很简单.希望这可以帮助你们中的一些人!

编辑:请注意,我最初的问题的影响是正常的,甚至与亚当.好像我有一个bug,但我真的不记得那里的问题.

  • 您所看到的是 Adam 和其他自适应随机梯度下降算法的数值不稳定性的影响。这是一个“已知错误”请参阅 https://discuss.pytorch.org/t/loss-suddenly-increases-using-adam-optimizer/11338 和 https://openreview.net/forum?id=ryQu7f-RZ (2认同)