【问题标题】:Reinforcement learning. Driving around objects with PPO强化学习。使用 PPO 绕过物体
【发布时间】:2020-11-12 19:20:51
【问题描述】:

我正在用神经网络驱动工业机器人,到目前为止它运行良好。我正在使用 OpenAI 基线中的 PPO 算法,到目前为止,我可以通过使用以下奖励策略轻松地从点到点驾驶:

我计算目标和位置之间的标准化距离。然后我计算距离奖励。

rd = 1-(d/dmax)^a

对于每个时间步,我给代理一个计算的惩罚。

yt = 1-(t/tmax)*b

a 和 b 是要调整的超参数。

正如我所说,如果我想从一个点到另一个点开车,这非常有效。 但是,如果我想绕开某物怎么办? 对于我的工作,我需要避免碰撞,因此代理需要绕开物体。如果物体在最近的路径上不是笔直的,它就可以正常工作。然后机器人可以适应并围绕它行驶。但是要绕过直道的物体变得越来越困难,甚至不可能。

看这张图片:

我已经阅读了paper,它结合了 PPO 和 NES,为神经网络的参数创建了一些高斯噪声,但我自己无法实现。

有没有人对 PPO 算法增加更多探索有一些经验?或者有没有人对我如何改进我的奖励策略有一些一般性的想法?

【问题讨论】:

    标签: neural-network reinforcement-learning openai


    【解决方案1】:

    您所描述的实际上是深度强化学习最重要的研究领域之一:探索问题。

    PPO 算法(与许多其他“标准”RL 算法一样)试图最大化回报,这是您的环境提供的(通常是贴现的)奖励总和:

    在你的情况下,你有一个欺骗性梯度问题,你的返回点的梯度直接在你的目标点(因为你的奖励是到你的目标的距离),这会阻止你的代理去探索其他领域。

    这是来自this paper 的欺骗性梯度问题的说明,奖励的计算方式与您的一样,如您所见,返回函数的梯度直接指向您的目标(本例中的小方块)。如果你的代理从迷宫的右下角开始,你很可能会陷入局部最优。

    有很多方法可以处理 RL 中的探索问题,例如,在 PPO 中,您可以为您的操作添加一些噪音,其他一些方法(例如 SAC)尝试最大化您的策略的奖励和熵,而不是动作空间,但最终你不能保证在你的动作空间中添加探索噪音会导致你的状态空间的效率(这实际上是你想要探索的, 环境的 (x,y) 位置)。

    我建议您阅读质量多样性 (QD) 文献,这是一个非常有前途的领域,旨在解决 RL 中的探索问题。

    这里有两个很棒的资源:

    最后我想补充一点,问题不在于你的奖励函数,你不应该尝试设计一个复杂的奖励函数,以便你的代理能够按照你的意愿行事。目标是让代理能够解决您的环境,尽管存在诸如欺骗性梯度问题之类的陷阱。

    【讨论】:

    • 感谢您的快速回复。我将对 QD 主题进行一些研究,然后看看我能走多远。你有这方面的经验吗?
    • @David.Schaefer 是的,我目前正在研究我在回答中链接到你的那种算法
    猜你喜欢
    • 2022-11-10
    • 2022-09-28
    • 2013-12-06
    • 2019-05-17
    • 2022-09-30
    • 2018-11-05
    • 2019-04-16
    • 2016-10-24
    • 2019-01-18
    相关资源
    最近更新 更多