深度强化学习 - 如何处理动作空间中的边界[关闭]

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

我构建了一个自定义强化学习

environment
agent
,类似于迷宫游戏。

在迷宫中有 5 种可能的动作:上、下、左、右和停留。而如果被阻止,例如代理无法上去,那么人们如何设计

env
agent
来模拟呢?

具体来说,智能体处于当前状态

s0
,根据定义,采取下、左、右操作会将状态更改为其他一些值,并立即获得奖励(如果在出口,则>0)。一种可能的方法是,当采取行动
up
时,状态将保持在
s0
,并且奖励将是一个很大的负数。理想情况下,智能体会了解到这一点,并且在这种状态下永远不会再去
up

但是,我的经纪人似乎没有学到这一点。相反,它仍然是

up
。另一种方法是对代理和环境进行硬编码,使代理在
up
时无法执行操作
s0
,我能想到的是:

  1. 当在某些状态下
    up
    不被允许时,我们看看不同动作的Q值
  2. 选择Q值最大的动作,除了
    up
  3. 因此,代理永远不会执行无效的操作

请问以上的做法可行吗?会不会有相关的问题?或者有没有更好的设计来处理边界和无效动作?

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

我多次看到这个问题,代理会坚持单一操作。我在以下情况中看到过:

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

0
投票

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

另一方面,如果你的智能体没有学会避免碰壁,那么你的学习例程中可能会出现另一个问题(也许奖励函数中有一个错误?)

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

您还实施了什么?如果还没有完成,最好考虑一下经验回放。

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