Conteúdo do Curso
Introdução ao Aprendizado por Reforço
Introdução ao Aprendizado por Reforço
Noções Básicas de Gymnasium
Gymnasium é um kit de ferramentas de código aberto projetado para o desenvolvimento e avaliação de agentes de aprendizado por reforço (RL). Oferece uma coleção de ambientes padronizados para testar algoritmos e treinar agentes de forma eficiente.
Principais Características
- API padronizada: garante compatibilidade entre diferentes ambientes;
- Variedade de ambientes: oferece suporte a problemas clássicos de controle, jogos Atari e simulações de robótica;
- Integração facilitada: compatível com frameworks de aprendizado profundo como TensorFlow e PyTorch.
Fluxo de Trabalho
Um fluxo de trabalho típico no Gymnasium segue os seguintes passos:
1. Importação da Biblioteca
import gymnasium as gym
Após a descontinuação da biblioteca original gym
, recomenda-se agora utilizar o gymnasium
— um fork do gym bem mantido e em desenvolvimento ativo. Apesar da mudança de nome, a biblioteca ainda é comumente importada com o alias gym
para manter compatibilidade retroativa e praticidade.
2. Criação de um Ambiente
env = gym.make("CartPole-v1")
A função gym.make()
instancia um ambiente utilizando seu identificador único (por exemplo, "CartPole-v1"
). Também é possível passar parâmetros adicionais de configuração, dependendo dos requisitos do ambiente.
3. Reinicialização do Ambiente
observation, info = env.reset()
Antes de interagir com o ambiente, é necessário reiniciá-lo para o estado inicial utilizando env.reset()
. Isso retorna:
observation
: o estado inicial do ambiente;info
: dados auxiliares que podem incluir metadados ou configurações específicas do estado.
4. Interação com o Ambiente
action = env.action_space.sample()
observation, reward, terminated, truncated, info = env.step(action)
Na primeira linha, uma ação aleatória é escolhida a partir do espaço de ações utilizando env.action_space.sample()
. O espaço de ações define o conjunto de todas as ações possíveis que o agente pode executar no ambiente. Além disso, o ambiente fornece o espaço de observação, acessível via env.observation_space
, que representa o conjunto de todas as observações (estados) possíveis que o agente pode encontrar.
Na segunda linha, a ação escolhida é passada para env.step(action)
, que executa a ação e retorna o seguinte:
observation
: o novo estado do agente após executar a ação;reward
: a recompensa recebida pela ação tomada;terminated
: valor booleano indicando se o episódio foi finalizado (ou seja, a tarefa foi concluída);truncated
: valor booleano indicando se o episódio foi interrompido prematuramente (por tempo ou outras restrições);info
: informações diagnósticas adicionais, frequentemente utilizadas para depuração ou registro.
5. Fechamento do Ambiente
env.close()
Se o ambiente utilizar recursos externos (por exemplo, janelas de renderização ou simulações), recomenda-se fechá-lo utilizando env.close()
.
Para saber mais sobre os recursos oferecidos pela biblioteca Gymnasium, acesse their website.
Obrigado pelo seu feedback!