0

我第一次使用 rllib,并尝试训练一个自定义的多代理 RL 环境,并希望在其上训练几个 PPO 代理。我需要弄清楚的实现问题是如何改变对一名特工的训练,以便这个特工每 X 个时间步才采取一次行动。最好只在每 X 个时间步调用 compute_action() 吗?或者,在其他步骤中,屏蔽策略选择,以便他们必须重新采样操作,直到调用 No-Op?或者将输入环境的动作 + 训练批次中的先前动作修改为 No-Ops?

仍然利用 rllib 的训练功能的最简单的实现方法是什么?我需要为此创建一个自定义训练循环,还是有办法配置 PPOTrainer 来做到这一点?

谢谢

4

1 回答 1

0

让 t:= 到目前为止的时间步长。给特殊代理这个特征:t (mod X),并且当 t (mod X) != 0 时不处理它在环境中的动作。这完成了:

  1. 实际上,代理仅在每 X 个时间步执行一次操作,因为您忽略了所有其他操作
  2. 智能体可以了解到,只有每 X 时间步采取的行动才会影响未来的奖励
于 2020-08-20T23:34:56.177 回答