簡體   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