深度强化学习-如何应对动作空间中的界限

时间:2018-07-02 00:35:49

标签: machine-learning reinforcement-learning q-learning

我建立了一个自定义强化学习environmentagent,类似于迷宫游戏。

在迷宫中,有5种可能的动作:向上,向下,向左,向右和停留。如果被阻止,例如代理不能上来,那么人们如何设计envagent来模拟呢?

具体来说,代理处于当前状态s0,并且根据定义,执行向下,向左和向右的操作会将状态更改为其他一些值,并立即获得奖励(如果在退出状态,则为> 0 )。一种可能的方法是,当采取行动up时,状态将停留在s0上,而奖励将是一个很大的负数。理想情况下,代理将了解到这一点,并且永远不会在此状态下再次up

但是,我的经纪人似乎没有学到这个。相反,它仍然会up。另一种方法是对代理和代理进行硬编码,以使代理在up时无法执行操作s0,我想到的是:

  1. 在某种不允许up的状态下,我们查看不同动作的Q值
  2. 选择up以外的Q值最大的动作
  3. 因此,代理将永远不会执行无效的操作

我在问上述方法可行吗?会不会有与此相关的问题?还是有更好的设计来处理边界和无效动作?

2 个答案:

答案 0 :(得分:1)

  

我会说这应该可行(但比猜测的尝试还要好   它)。其他问题是:您的代理能够观察到什么状态?你在做奖励削减吗?

另一方面,如果您的探员没有学会避免撞墙,则您的学习程序中可能还会出现另一个问题(奖励功能中可能有错误吗?)

硬编码的剪切操作可能会导致您希望看到的行为,但是肯定会降低代理的整体性能。

您实施了什么?如果尚未完成,最好考虑一下经验重播。

答案 1 :(得分:1)

我已经多次看到这个问题,一个代理会坚持一个动作。在以下情况下,我已经看到了这一点:

  1. 未对输入图像进行归一化,因此梯度变得很大,整个网络饱和到一个动作。
  2. 我没有使用熵加来增加初始搜索的随机性。请找到有关这项工作的更多详细信息here

我希望它会有所帮助。