最佳强化学习者优化器

问题描述 投票:0回答:2

我正在为机器人应用程序运行SAC强化学习器,结果相当不错。我选择强化学习的原因之一是该领域的学习能力,例如调整以适应机械变化,例如磨损的轮胎或车轮稍微偏离对准状态。

我的强化学习器在启动时恢复了上一次保存的权重和重播缓冲区,因此,每次我打开它时都不需要重新培训。但是,我最关心的是关于优化程序的问题。

自ADAM以来,优化程序已经走了很长一段路,但是我阅读的所有内容以及我看到的所有RL代码示例似乎仍然使用ADAM并具有固定的学习率。我想利用优化程序中的一些进步,例如一个周期的AdamW。但是,单周期优化器似乎不适合用于连续不断的现实世界中的强化学习问题:我认为这对于初始训练/校准来说是相当不错的,但是我希望最终学习率低会对机械变化产生太慢的反应。

曾以为我可能会采用一种单周期方法进行初始训练,并且如果错误变化表明发生了某些变化,则触发较小的单周期重新启动(也许重新启动的大小可能取决于大小错误更改)。

有人使用ADAM以外的优化程序进行了强化学习,或者对处理此类问题有任何建议?

machine-learning reinforcement-learning
2个回答
1
投票

强化学习与传统的监督学习有很大的不同,因为随着政策的改进,培训数据的分布变化。用优化术语来说,目标函数可以说是非平稳的。因此,我怀疑您的直觉可能是正确的-“单周期”优化器在您的应用程序中运行一段时间后性能会很差。

我的问题是,亚当怎么了?通常,优化器的选择只是深度强化学习的次要细节;探索策略,算法超参数或网络体系结构等其他因素往往会对性能产生更大的影响。

但是,如果您真的想尝试其他优化程序,则可以尝试使用RMSProp,Adadelta或Nesterov Momentum。但是,我的猜测是,您将看到逐步的改进,如果有的话。也许寻找更好的与亚当一起使用的超参数会更有效地利用时间。


编辑:在我的原始答案中,我声称选择特定的优化器对于增强学习速度不是最重要的,而概括也不是。我想添加一些讨论来帮助说明这些要点。

请考虑最深层的策略梯度方法的工作原理:他们从环境中采样经验轨迹,估算收益,然后执行一个或多个梯度步骤以改进参数化策略(例如神经网络)。重复此过程,直到收敛(达到局部最优策略)。为什么我们必须不断从环境中汲取新经验?因为我们当前的数据只能在用于收集该数据的策略参数周围的小

信任区域

中提供合理的一阶近似值。因此,每当更新策略时,我们都需要采样更多数据。可视化此方法的一种好方法是考虑MM algorithm。在每次迭代中,都会根据我们现在拥有的数据构造一个替代目标,然后将其最大化。每次,我们都会接近真正的最优值,但是我们接近它的速度仅取决于我们构造的代理数量–

不是由我们用来最大化每个代理的特定优化器

] >。与RMSProp相比,Adam可以在更少的梯度步骤中最大化每个代理,但这不会影响代理的学习速度(相对于环境样本)。它只是减少了您需要执行的小批量更新的数量。
MM Algorithm

SAC比这稍微复杂一点,因为它以非策略方式学习Q值,并使用经验重播进行更新,但是总的想法仍然成立。最佳的策略取决于重放内存中的当前数据。无论我们使用哪种优化程序,我们都需要从环境中采样大致相同数量的数据以收敛到最佳策略。

因此,您如何制定更快(更有效采样)的策略梯度方法?您需要从根本上更改RL算法本身。例如,PPO几乎总是比TRPO更快地学习,因为约翰·舒尔曼(John Schulman)和合著者发现了一种不同的,经验性更好的方法来生成策略梯度步骤。

最后,请注意,这里没有泛化的概念。我们有一个要优化的目标函数,一旦我们对其进行优化,我们将尽力解决任务。这就是为什么我怀疑"Adam-generalizes-worse-than-SGD"问题实际上与RL不相关。

我的初始测试表明优化器的细节及其超参数很重要,至少对于非策略技术而言。我没有机会尝试PPO或策略技术,因此很遗憾,我不能为那些人代言。

我一直在使用的非策略方法在细粒度的稳定性方面存在问题。换句话说,RL找到了最正确的解决方案,但是从没有真正追求完美的解决方案(或者如果找到了简短的解决方案,它就会逐渐消失)。我仍然怀疑优化器至少是部分原因。

我进行了一些测试,发现改变ADAM学习速率具有明显的效果。太高了,演员和评论家都在最低限额附近反弹,从不收敛于最佳政策。在我的机器人应用程序中,这似乎是RL始终做出次优的决定,好像每个动作都有一些随机探索,总是会略微遗漏标记。

OTOH,如果在训练初期学习率太低,则会陷入非最佳解决方案中,而在训练后期,低学习率似乎会导致其无法快速适应变化(例如,由于电池电量低)。

我还没有对单周期时间表或AdamW进行任何学习率测试,但是我进行了非常基本的测试,对Actor和Critic进行了两阶段学习率调整(从高速率开始,然后降为率低),结果显然是一种更精确的解决方案,在高学习率时会迅速收敛,然后在低学习率中得到磨合。

基于我所看到的改进,可能值得为我的应用程序尝试单周期AdamW,至少对于初始培训而言。我对周期结束时较低的学习率将如何适应环境变化仍有一些担忧。一个简单的解决方案可能是监视损失并在学习率漂移太大的情况下重新开始学习率。


0
投票
我的初始测试表明优化器的细节及其超参数很重要,至少对于非策略技术而言。我没有机会尝试PPO或策略技术,因此很遗憾,我不能为那些人代言。

我一直在使用的非策略方法在细粒度的稳定性方面存在问题。换句话说,RL找到了最正确的解决方案,但是从没有真正追求完美的解决方案(或者如果找到了简短的解决方案,它就会逐渐消失)。我仍然怀疑优化器至少是部分原因。

© www.soinside.com 2019 - 2024. All rights reserved.