Создание openai тренажерного зала - PullRequest
0 голосов
/ 31 августа 2018

Мне дали задание настроить тренажерный зал openai, который может решить только агент с памятью. Мне дали пример с двумя дверями, и в момент времени t = 0 мне показывают либо 1, либо -1. При t = 1 я могу перейти к правильной двери и открыть ее.

Кто-нибудь знает, как мне начать? Я хочу показать, что a2c или ppo могут решить эту проблему с помощью политики lstm. Как мне настроить окружение и т.д?

1 Ответ

0 голосов
/ 09 сентября 2018

Чтобы создать новую среду в формате спортзала, она должна иметь 5 функций, упомянутых в файле gym.core.

https://github.com/openai/gym/blob/e689f93a425d97489e590bba0a7d4518de0dcc03/gym/core.py#L11-L35

Чтобы сложить это поэтапно -

  1. Определите пространство наблюдения и пространство действия для вашей среды, предпочтительно с помощью модуля gym.spaces.

  2. Запишите пошаговую функцию, которая выполняет действия агента и возвращает 4 кортежа, содержащего - следующий набор наблюдений из среды, вознаграждение, done - логическое значение, указывающее, закончился ли эпизод, и некоторая дополнительная информация, если хотите.

  3. Напишите функцию сброса для среды, чтобы повторно инициализировать эпизод до состояния произвольного запуска и вернуть кортеж 4, аналогичный шагу.

Этих функций достаточно для запуска агента RL в вашей среде. Вы можете пропустить функции рендеринга, посева и закрытия, если хотите.

Для заданной вами задачи вы можете смоделировать пространство наблюдения и действия, используя Discrete (2). 0 для первой двери и 1 для второй двери.

  1. Сброс вернется в наблюдении, какая дверь имеет награду.
  2. Тогда агент выберет любую из дверей - 0 или 1.
  3. Затем выполните шаг среды, вызвав step (action), который вернет вознаграждение агента и флаг done как true, что означает, что эпизод окончен.

Честно говоря, описанная вами проблема кажется слишком простой для решения для любого алгоритма обучения с подкреплением, но я предполагаю, что вы предоставили это в качестве примера. Запоминание для более длинных горизонтов обычно труднее.

Вы можете прочитать их документацию и игрушечную среду, чтобы понять, как ее создать.

...