繁体   English   中英

如何获得 integer 作为 output 用于连续动作空间 PPO 强化学习?

[英]How can I get an integer as output for continuous action space PPO reinforcement learning?

我有一个巨大的离散动作空间,学习稳定性不好。 我想移动到连续动作空间,但我的任务唯一的 output 可以是正的 integer(假设在 0 到 999 的范围内)。 如何强制 DNN 到 output 为正 integer?

您能否具体说明您正在使用哪种 RL 代理框架以及哪种环境?

假设您在 OpenAI 健身房环境中使用 Stable Baselines 3 (SB3),您应该能够在设置环境时设置所需的动作空间(参见此处: https://www.gymlibrary.ml/content/spaces/ )。 PPO 是 SB3 最通用的代理之一,可用于“离散”、“盒子”、“多离散”和“多二进制”动作空间。

最后要得到一个正 integer 的 output ,可以通过以下几种方式实现:

  • 如果您的 output 是例如Box(low=-1.0, high=1.0, shape=(1,)它只是将 output 缩放到所需范围并将其转换为整数。
  • 另一种选择是将您的 output 定义为Box(low=-1.0, high=1.0, shape=(N_DISCRETE_ACTIONS,)然后使用np.argmax(action)获得最终的 integer
  • 直接的方法是将动作空间定义为Discrete(N_DISCRETE_ACTIONS)

暂无
暂无

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

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