gym.spaces.box 观察状态理解

Tay*_*ain 3 reinforcement-learning deep-learning openai-gym

因此,我尝试使用gym 在自定义环境中执行一些强化学习,但是我对spaces.box 的工作原理感到非常困惑。每个参数的含义是什么?例如,如果我有一个涉及大量信息的游戏状态,例如角色的生命值、他们的统计数据和能力,我不确定这样的东西是否会在 Box 中表示为观察状态。另外,在一款具有多种能力的游戏中,最好对它们进行一次性编码,还是将它们保留为常规增量 Id,因为我想使用神经网络来查找预期的 Q 值。

nsi*_*n98 7

spaces.Box意味着您正在处理实际价值的数量。

例如:

action_space = spaces.Box(np.array([-1,0,1]), np.array([1,1,2]))

这里的动作是 3 维的。此外,[-1,0,1]是最低接受值,[1,1,2]是最高接受值。

在本质上,a=[a1,a2,a3]

a1位于范围 [-1,1] 内、a2位于范围 [0,1] 内、a3位于范围 [1,2] 内。

如果有很多种类繁多的“能力”,那么如果使用 one-hot 编码,状态向量可能会变得相当大。因此,建议使用常规增量 ID。但将它们归一化到范围 [0,1] 以便神经网络激活不会饱和。