Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Tensorflow中使用Adam优化器时,损失会突然增加_Tensorflow_Neural Network_Regression_Conv Neural Network - Fatal编程技术网

在Tensorflow中使用Adam优化器时,损失会突然增加

在Tensorflow中使用Adam优化器时,损失会突然增加,tensorflow,neural-network,regression,conv-neural-network,Tensorflow,Neural Network,Regression,Conv Neural Network,我正在使用CNN进行回归任务。我使用Tensorflow,优化器是Adam。网络似乎完美地收敛到一个点,随着验证误差的增加,损失突然增加。以下是分离的标签和权重的损失图(优化器根据它们的总和运行) 我使用l2损耗进行权重正则化,也用于标签。我对训练数据应用了一些随机性。我目前正在尝试RSMProp以查看行为是否发生变化,但至少需要8小时才能重现错误 我想了解这是如何发生的。希望你能帮助我。我过去几个月的经验如下: Adam非常容易使用,因为你不需要太多地使用初始学习率,而且它几乎总是有效的。然

我正在使用CNN进行回归任务。我使用Tensorflow,优化器是Adam。网络似乎完美地收敛到一个点,随着验证误差的增加,损失突然增加。以下是分离的标签和权重的损失图(优化器根据它们的总和运行)

我使用l2损耗进行权重正则化,也用于标签。我对训练数据应用了一些随机性。我目前正在尝试RSMProp以查看行为是否发生变化,但至少需要8小时才能重现错误


我想了解这是如何发生的。希望你能帮助我。

我过去几个月的经验如下: Adam非常容易使用,因为你不需要太多地使用初始学习率,而且它几乎总是有效的。然而,当到达收敛点时,Adam并不真正满足于解决方案,而是在更高的迭代次数中来回摇摆。而SGD给出了一个几乎完美的损失图,并且在更高的迭代中似乎收敛得更好。 但改变设置的一些部分需要调整SGD参数,否则最终会出现南斯。。。对于体系结构和一般方法的实验,我倾向于Adam,但是如果您想要获得所选体系结构的最佳版本,您应该使用SGD,并且至少比较解决方案

我还注意到,一个好的初始SGD设置(学习率、重量衰减等)收敛速度与使用Adam一样快,至少在我的设置中是如此。 希望这能对你们中的一些人有所帮助


编辑:请注意,我最初的问题中的效果是而不是正常的,即使是亚当。似乎我有一个bug,但我真的记不起那里的问题。

降低学习率?对于adam来说,通常情况下,你不需要在训练时降低学习率。过高的学习率会导致网络收敛到更糟糕的损失值,对吗?在RMSProp运行之后,我可以尝试更低的初始速率,但这意味着这需要更多的时间,我想……等等,第一个图显示的是什么?这是训练损失,对吧?但它正在下降?那么问题出在哪里呢?你能解释一下吗?如果你说的是综合减肥,它会被体重规律化所控制(这就是我的解释),也许可以用阿尔法来设定千分之二的减肥分量。是的,第一个图是没有减肥的训练减肥,第二个图是只减肥。优化是在两者的总和上完成的!蓝线325k代表橘子线一直下降到160k,而黄线就要上升了,因为我取消了!由于标度是对数标度,在上述迭代之后,蓝色和橙色的损失平均翻了一番,这不应该是正常的,对吧???损失之和是否仍在减少?您看到的是Adam和其他自适应随机梯度下降算法的数值不稳定性的影响。这是一个“已知的bug”看到了吗