deep-learning - gym.spaces.box 观察状态理解
问题描述
所以我试图在使用健身房的自定义环境中执行一些强化学习,但是我对 space.box 的工作方式感到非常困惑。每个参数的含义是什么?如果我有一个包含大量信息的游戏状态,例如角色的 hp、他们的统计数据和能力等信息,我不确定这样的东西是否会在 Box 中表示为观察状态。同样在具有很多能力的游戏中,最好对它们进行一次热编码或将它们保留为常规增量 ID,因为我想使用神经网络来找到预期的 Q 值。
解决方案
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] 范围内,这样神经网络的激活就不会饱和。
推荐阅读
- r - 使用 ggplot2 将带有文本的图像作为刻度标签
- python - Pyodbc - 无效的连接字符串 - 用户登录失败
- django - ModelChoiceField:删除空选项并选择默认值
- javascript - 仅在每次点击时使用 jquery 或 javascript 打开一级深层子菜单
- wordpress - 如何在 WooCommerce 中针对全国不同地区组织不同的运费和运费方式?
- javascript - 如何测试 TOML 文件中的“0”和“假”?
- php - 递归代码导致允许的内存大小被耗尽
- python - python3:无法打开文件[Errno 2] nodejs python spawn上没有这样的文件或目录
- python - pyqt 中的分形 --> 递归问题
- node.js - 不和谐.js | 在嵌入中提及某人