Neural network 强化学习。使用PPO在物体周围行驶

Neural network 强化学习。使用PPO在物体周围行驶,neural-network,reinforcement-learning,openai,Neural Network,Reinforcement Learning,Openai,我正在研究用神经网络驱动工业机器人,到目前为止,它工作得很好。我正在使用OpenAI基线中的PPO算法,到目前为止,通过使用以下奖励策略,我可以轻松地从一点到另一点驾驶: 我计算目标和位置之间的标准化距离。然后我计算距离奖励 rd = 1-(d/dmax)^a 对于每个时间步,我都会给代理一个按计算得出的惩罚 yt = 1-(t/tmax)*b a和b是要调整的超参数 正如我所说,如果我想从一个点开到另一个点的话,这真的很有效但是如果我想绕着什么东西开车呢?对于我的工作,我需要避免碰撞,因此

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

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

rd = 1-(d/dmax)^a
对于每个时间步,我都会给代理一个按计算得出的惩罚

yt = 1-(t/tmax)*b
a和b是要调整的超参数

正如我所说,如果我想从一个点开到另一个点的话,这真的很有效但是如果我想绕着什么东西开车呢?对于我的工作,我需要避免碰撞,因此代理需要绕着对象开车。如果对象在最近的路径上不是直的,则其工作正常。然后机器人可以适应并围绕它行驶。但是,越来越难让人无法绕过那些笔直的物体

请参见此图:

我已经读过一篇文章,它将PPO和NES结合起来,为神经网络的参数创建一些高斯噪声,但我自己无法实现


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

您所描述的实际上是Deep RL最重要的研究领域之一:探索问题

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

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

这是一个欺骗性梯度问题的例子,奖励的计算方法和你的一样,正如你所看到的,回报函数的梯度直接指向你的目标(本例中的小正方形)。如果你的代理从迷宫的右下角开始,你很可能陷入局部最优

在RL中,有很多方法可以解决探索问题,例如在PPO中,你可以在你的行动中添加一些噪音,其他一些方法,如尝试在行动空间中最大化你的政策的回报和熵,但最终,你无法保证在你的动作空间中添加探索噪音将有效地利用你的状态空间(这实际上是你想要探索的,你的环境的(x,y)位置)

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

以下是两大资源:


最后,我想补充一点,问题不在于你的奖励功能,你不应该试图设计一个复杂的奖励功能,这样你的代理人就可以像你想的那样行事。我们的目标是拥有一个能够解决您的环境问题的代理,尽管存在诸如欺骗梯度问题之类的陷阱。

感谢您的快速响应。我会做一些关于QD主题的研究,看看我能走多远。你在这个领域有经验吗?@David.Schaefer是的,我目前正在研究我在回答中与你联系的算法