我正在使用CNN进行回归任务。我使用Tensorflow,优化器是Adam。网络似乎完全收敛,直到损失突然增加以及验证错误的一点。以下是标签的损失图和分离的权重(优化器在它们的总和上运行)
我使用l2损失进行重量正规化以及标签。我对训练数据应用了一些随机性。我目前正在尝试使用RSMProp查看行为是否发生变化,但重现错误需要至少8小时。
我想了解这是怎么发生的。希望你能帮帮我。
答案 0 :(得分:9)
我过去几个月的经历如下: Adam非常容易使用,因为你不必非常熟悉初始学习率,而且它几乎总能奏效。然而,当谈到收敛时,亚当并没有真正满足于解决方案,而是在更高的迭代次数中摇摆不定。虽然SGD给出了几乎完美形状的损失图,并且似乎在更高的迭代中收敛得更好。 但是改变设置的litte部分需要调整SGD参数,否则你将最终得到NaN ...对于体系结构和一般方法的实验我赞成Adam,但是如果你想获得一个所选体系结构的最佳版本你应该使用SGD并至少比较解决方案。
我还注意到一个好的初始SGD设置(学习速率,重量衰减等)收敛速度和使用Adam一样快,我的设置很简单。 希望这对你们中的一些人有所帮助!
编辑:请注意,即使有亚当,我在初始问题中的效果也是不正常。好像我有一个错误,但我真的不记得那里的问题。