Interagindo com ambientes do Gymnasium

Reinforcement Learning com Gymnasium em Python

Fouad Trad

Machine Learning Engineer

Gymnasium

  • Biblioteca padrão para tarefas de RL
  • Abstrai a complexidade de problemas de RL
  • Oferece muitos ambientes de RL

Imagem com o logo do gymnasium e alguns ambientes que ele oferece.

Reinforcement Learning com Gymnasium em Python

Ambientes-chave do Gymnasium

CartPole: O agente deve equilibrar uma haste em um carrinho em movimento GIF do ambiente CartPole.

MountainCar: O agente deve dirigir um carro morro acima GIF do ambiente MountainCar.

FrozenLake: O agente deve atravessar um lago congelado com buracos GIF do ambiente FrozenLake do gymnasium.

Taxi: Pegar e deixar passageiros GIF do ambiente Taxi.

Reinforcement Learning com Gymnasium em Python

Interface do Gymnasium

 

  • Interface unificada para todos os ambientes
  • Inclui funções/métodos para:
    • Inicializar o ambiente
    • Exibir o ambiente
    • Executar ações
    • Observar resultados

GIF do ambiente CartPole.

Reinforcement Learning com Gymnasium em Python

Criando e inicializando o ambiente

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/
Reinforcement Learning com Gymnasium em Python

Visualizando o estado

 

import matplotlib.pyplot as plt

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

plt.show()

Gráfico do estado inicial em CartPole.

Reinforcement Learning com Gymnasium em Python

Visualizando o estado

 

import matplotlib.pyplot as plt

def render(): state_image = env.render() plt.imshow(state_image) plt.show()
# Chamar função render()

Gráfico do estado inicial em CartPole.

Reinforcement Learning com Gymnasium em Python

Executando ações

  • 0: mover para a esquerda
  • 1: mover para a direita
action = 1 
state, reward, terminated, truncated, info = env.step(action)




Reinforcement Learning com Gymnasium em Python

Executando ações

  • 0: mover para a esquerda
  • 1: mover para a direita
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
Reinforcement Learning com Gymnasium em Python

Loops de interação

while not terminated:
    action = 1 # Mover para a direita
    state, reward, terminated, _, _ = env.step(action)
    render()

Imagem com quatro estados diferentes no ambiente CartPole, capturados durante o loop de interação.

Reinforcement Learning com Gymnasium em Python

Vamos praticar!

Reinforcement Learning com Gymnasium em Python

Preparing Video For Download...