首页 > 解决方案 > gym.spaces.box 观察状态理解

问题描述

所以我试图在使用健身房的自定义环境中执行一些强化学习,但是我对 space.box 的工作方式感到非常困惑。每个参数的含义是什么?如果我有一个包含大量信息的游戏状态,例如角色的 hp、他们的统计数据和能力等信息,我不确定这样的东西是否会在 Box 中表示为观察状态。同样在具有很多能力的游戏中,最好对它们进行一次热编码或将它们保留为常规增量 ID,因为我想使用神经网络来找到预期的 Q 值。

标签: deep-learningreinforcement-learningopenai-gym

解决方案


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] 范围内,这样神经网络的激活就不会饱和。


推荐阅读