【问题标题】:Why is keras SGD not optimizing properly?为什么 keras SGD 没有正确优化?
【发布时间】:2019-11-04 00:02:55
【问题描述】:

我正在开发强化学习代理。我已经弄清楚了结构和算法。目前我的目标是提高学习过程的稳定性。我将 keras 用于 ML 部分,并且使用 adam 优化器取得了很好的效果。这是 100 次运行的过程图(结果很好但学习过程确实不稳定)。 我已经说过我想提高稳定性,所以我尝试将优化器切换到 SGD,结果如下(我真的很困惑,因为它似乎越来越糟)。 一次运行和另一次运行之间的唯一区别是优化器。任何想法是什么导致了这种行为?

【问题讨论】:

    标签: tensorflow machine-learning optimization keras reinforcement-learning


    【解决方案1】:

    我没有足够的信息,但这种直觉可以解释你所看到的。

    虽然 Adam 具有自适应步长,但 SGD 没有。这意味着当步长太大时,SGD 可能会开始在峡谷中弹跳。

    图片属于以下文章https://blog.paperspace.com/intro-to-optimization-momentum-rmsprop-adam/

    如果步长保持不变,优化器将不断在“墙”之间弹跳。相反,Adam 能够减小步长,从而获得更好的结果。

    如果您尝试减少 SGD 中的步长,您可能会得到更好的结果,但是,所需的迭代次数将会增加。

    【讨论】:

    • 为什么优化会因此变得更糟?它不应该只是在一些次优值处反弹吗?
    • 我不明白你的建议,但似乎如果是这样的话,我会得到一个缓慢但实际的改进,相反我所经历的是模型准确性的不断下降。无论如何,我会尝试以某种方式减小 SGD 中的步长并观察结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    相关资源
    最近更新 更多