Взаимодействие со средами Gymnasium

Обучение с подкреплением с Gymnasium на Python

Fouad Trad

Machine Learning Engineer

Gymnasium

  • Стандартная библиотека для задач RL
  • Скрывает сложность задач RL
  • Предоставляет множество сред RL

Логотип Gymnasium и примеры сред.

Обучение с подкреплением с Gymnasium на Python

Ключевые среды Gymnasium

CartPole: Агент должен удерживать шест на движущейся тележке GIF со средой CartPole.

MountainCar: Агент должен въехать на автомобиле на крутой холм GIF со средой MountainCar.

FrozenLake: Агент должен пройти по замёрзшему озеру с прорубями GIF со средой FrozenLake.

Taxi: Посадка и высадка пассажиров GIF со средой Taxi.

Обучение с подкреплением с Gymnasium на Python

Интерфейс Gymnasium

 

  • Единый интерфейс для всех сред
  • Включает функции и методы для:
    • Инициализации среды
    • Визуализации среды
    • Выполнения действий
    • Наблюдения за результатами

GIF со средой CartPole.

Обучение с подкреплением с Gymnasium на Python

Создание и инициализация среды

import gymnasium as gym

env = gym.make('CartPole', render_mode='rgb_array')
state, info = env.reset(seed=42) print(state)
[-0.04405273  0.0242996  -0.04377224 -0.01767325]
1 https://gymnasium.farama.org/environments/classic_control/cart_pole/
Обучение с подкреплением с Gymnasium на Python

Визуализация состояния

 

import matplotlib.pyplot as plt

state_image = env.render()
plt.imshow(state_image)

plt.show()

График начального состояния в CartPole.

Обучение с подкреплением с Gymnasium на Python

Визуализация состояния

 

import matplotlib.pyplot as plt

def render(): state_image = env.render() plt.imshow(state_image) plt.show()
# Call function render()

График начального состояния в CartPole.

Обучение с подкреплением с Gymnasium на Python

Выполнение действий

  • 0: движение влево
  • 1: движение вправо
action = 1 
state, reward, terminated, truncated, info = env.step(action)




Обучение с подкреплением с Gymnasium на Python

Выполнение действий

  • 0: движение влево
  • 1: движение вправо
action = 1
state, reward, terminated, _, _ = env.step(action)


print("State: ", state) print("Reward: ", reward) print("Terminated: ", terminated)
State:  [-0.04356674  0.22002107 -0.0441257  -0.3238392 ]
Reward:  1.0
Terminated:  False
Обучение с подкреплением с Gymnasium на Python

Циклы взаимодействия

while not terminated:
    action = 1 # Move to the right
    state, reward, terminated, _, _ = env.step(action)
    render()

Четыре состояния среды CartPole, зафиксированные в ходе цикла взаимодействия.

Обучение с подкреплением с Gymnasium на Python

Давайте потренируемся!

Обучение с подкреплением с Gymnasium на Python

Preparing Video For Download...