Фонд Фарама взял на себя управление разработкой тренажерного зала 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, и ее можно изменить для реализации более сложных агентов.