我正在开发一个强化学习代理。我已经弄清楚了结构和算法。目前我的目标是提高学习过程的稳定性。我正在使用keras的ML部分,并有很好的结果与亚当优化器。这是100次运行的过程图(结果很好,但学习过程非常不稳定)。

我已经说过我想提高稳定性,所以我试着将优化器切换到SGD,这是结果(真的让我困惑,因为它似乎正在变得越来越糟糕)。

一次运行和另一次运行之间唯一的区别是优化器。你知道是什么导致了这种行为吗?
发布于 2019-11-04 18:20:08
我没有足够的信息,但这种直觉可以解释你所看到的。
虽然Adam有一个自适应的步长,但SGD没有。这意味着当步长太大时,SGD可能会开始在峡谷中跳跃。

图片属于下面的文章https://blog.paperspace.com/intro-to-optimization-momentum-rmsprop-adam/
如果步长保持不变,优化器将继续在“墙”之间跳跃。相反,Adam能够减少步长,从而产生更好的结果。
如果你尝试在SGD中减小步长,你可能会得到更好的结果,但是,所需的迭代次数将会增加。
https://stackoverflow.com/questions/58685733
复制相似问题