繁体   English   中英

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

[英]Deep reinforcement learning - how to deal with boundaries in action space

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

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

具体来说,该代理处于当前状态s0 ,并且根据定义,执行向下,向左和向右的操作会将状态更改为其他一些值,并立即获得奖励(如果退出则为> 0)。 一种可能的方法是采取行动up ,状态将保持在s0 ,而奖励将是一个较大的负数。 理想情况下,代理将学习到该信息,并且在此状态下再也不会up

但是,我的经纪人似乎没有学到这一点。 相反,它仍然up 另一种方法是硬编码的代理和环境的代理人将无法执行该操作up的时候s0 ,我能想到的是什么:

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

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

我会说这应该有效(但比猜测更有效)。 其他问题是:您的代理能够观察到什么状态? 你在做报酬削减吗?

另一方面,如果您的特工没有学会避免撞墙,则您的学习程序中可能存在另一个问题(奖励功能中可能存在错误?)

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

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

我已经多次看到这个问题,其中一个代理会坚持执行单个操作。 在以下情况下,我已经看到了:

  1. 输入图像未进行标准化,因此渐变变得巨大,整个网络饱和到一个动作。
  2. 我没有使用熵加来增加初始搜索的随机性。 在此处找到有关此工作的更多详细信息。

希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM