因此,我试图在一个使用健身房的定制环境中执行一些强化学习,但是对于spaces.box是如何工作的,我感到非常困惑。每个参数意味着什么?如果我有一个游戏状态,其中包含了很多信息,比如字符的hp,它们的统计数据和能力,作为一个例子,我不确定像这样的东西是否会在Box中表示为一个观察状态。另外,在一个有很多能力的游戏中,最好是对它们进行一次热编码,还是将它们作为常规增量Id,因为我想使用一个神经网络来找到预期的Q值。
发布于 2020-02-08 18:09:21
spaces.Box意味着你处理的是实值的数量.
例如:
action_space = spaces.Box(np.array([-1,0,1]), np.array([1,1,2]))
这里的动作是三维的。另外,[-1,0,1]是最低接受值,[1,1,2]是最高接受值。
本质上,a=[a1,a2,a3],
a1在范围内-1,1,a2在0,1,a3在范围1,2。
如果有大量的“能力”,有一个巨大的变化,那么状态向量可能会变得相当巨大,如果一个人使用一个热编码。因此,最好使用常规的增量it。但是将它们归一化到0,1,这样神经网络的激活就不会饱和。
发布于 2022-10-03 19:32:00
试图跟进这个问题。当我试图实现这段代码时,我会得到以下错误:
AttributeError: 'Box' object has no attribute 'spaces'这个方法还有效吗?
https://stackoverflow.com/questions/60129007
复制相似问题