Уменьшение частоты выборки действий для одного агента в многоагентной среде - PullRequest
0 голосов
/ 14 июля 2020

Я впервые использую rllib и пытаюсь обучить пользовательскую среду RL с несколькими агентами, и хотел бы обучить на ней пару агентов PPO. Икота реализации, которую мне нужно выяснить, заключается в том, как изменить обучение одного специального агента, чтобы он выполнял действие только каждые X временных шагов. Лучше всего вызывать compute_action () только каждые X временных шагов? Или на других этапах, чтобы замаскировать выбор политики, чтобы им пришлось повторно выбирать действие, пока не будет вызвано No-Op? Или изменить действие, которое передается в среду + предыдущие действия в обучающих пакетах, как No-Ops?

Какой самый простой способ реализовать это, по-прежнему используя возможности обучения rllib? Нужно ли мне создавать для этого индивидуальный тренинг l oop или есть способ настроить PPOTrainer для этого?

Спасибо

1 Ответ

0 голосов
/ 21 августа 2020

Пусть t: = timeteps до сих пор. Дайте специальному агенту эту функцию: t (mod X), и не обрабатывайте его действия в среде, когда t (mod X)! = 0. Это дает:

  1. действующий агент предпринимать действия только каждые X временных шагов, потому что вы игнорируете все остальные
  2. агент может узнать, что только действия, предпринимаемые каждые X временных шагов, повлияют на будущие награды
...