Фонд Фарама взял на себя управление разработкой тренажерного зала OpenAI. Их недавний выпуск сделал многие ранее доступные руководства по использованию Gym устаревшими.

Обучение с подкреплением (RL) — это тип машинного обучения, при котором агенты учатся принимать решения, взаимодействуя с окружающей средой. Одной из популярных библиотек для реализации RL в Python является OpenAI Gym. В этом сообщении блога мы будем работать с определенной средой из библиотеки Gym под названием «FrozenLake-v1».

Код

Первая строка импортирует модуль gym. Вторая строка импортирует класс-оболочку TimeLimit из модуля gym.wrappers.

В следующей строке кода создается экземпляр среды «FrozenLake-v1» из библиотеки Gymnasium Gym, используя режим рендеринга «ansi». Это среда с сетчатым миром, в которой агент должен двигаться от начала к цели, избегая дыр во льду.

Следующая строка сбрасывает среду и присваивает исходное наблюдение и информацию соответствующим переменным.

Следующие две строки устанавливают максимальное количество действий за игру равным 10, а количество игр, которые нужно сыграть, равным 100.

Затем переменная env помещается в оболочку TimeLimit, которая ограничивает максимальное количество шагов в эпизоде ​​значением, указанным в аргументе max_episode_steps. Это гарантирует, что игра закончится после того, как будет выполнено не более 10 действий, независимо от того, достигнута цель или нет.

Следующий код запускает указанное количество игр. В каждой игре среда сбрасывается и начинается новая игра.

Игровой цикл начинается, когда агент выполняет действия, пока не достигнет цели или пока не будет выполнено максимальное количество действий. Агент выполняет случайные действия, используя метод action_space.sample(). Среда визуализируется после каждого действия, поэтому агент может видеть свое текущее положение в сетке.

Этот код является базовым примером того, как использовать библиотеку Gymnasium и среду «FrozenLake-v1» для реализации простого агента RL. Агент выполняет случайные действия, и среда визуализируется после каждого действия, чтобы агент мог видеть свое текущее положение в сетке. Это хорошая отправная точка для понимания того, как работать со средами RL в Gym, и ее можно изменить для реализации более сложных агентов.