Ambientes de RL no Amazon SageMaker
O RL do Amazon SageMaker usa ambientes para imitar cenários do mundo real. Dado o estado atual do ambiente e uma ação tomada por um ou mais agentes, o simulador processa o impacto da ação e retorna o próximo estado e um prêmio. Simuladores são úteis nos casos em que não é seguro treinar um agente no mundo real (por exemplo, pilotar um drone) ou se o algoritmo de RL demora muito tempo para convergir (por exemplo, em um jogo de xadrez).
O diagrama a seguir mostra um exemplo das interações com um simulador para um jogo de corrida de carros.
O ambiente de simulação consiste em um agente e um simulador. Aqui, uma Rede neural convolucional (CNN) consome imagens do simulador e gera ações para controlar o controlador de jogo. Com várias simulações, esse ambiente gera dados de treinamento no formato state_t
, action
, state_t+1
e reward_t+1
. Definir o prêmio não é um processo comum e afeta a qualidade do modelo de RL. Queremos dar alguns exemplos de funções de prêmio, mas gostaríamos de torná-los configuráveis pelo usuário.
Tópicos
Usar a interface OpenAI Gym para ambientes no RL do SageMaker
Para usar ambientes OpenAI Gym no RL do SageMaker, use os seguintes elementos de API: Para obter mais informações sobre o OpenAI Gym, consulte a Documentação do Gym
-
env.action_space
: Define as ações que o agente pode realizar, especifica se cada ação é contínua ou discreta e especifica o mínimo e o máximo, se a ação for contínua. -
env.observation_space
: Define as observações que o agente recebe do ambiente, bem como o mínimo e o máximo para observações contínuas. -
env.reset()
: Inicializa um episódio de treinamento. A funçãoreset()
retorna o estado inicial do ambiente, e o agente usa o estado inicial para realizar sua primeira ação. A ação é então enviada aostep()
repetidamente até que o episódio atinja um estado terminal. Quandostep()
retornadone = True
, o episódio termina. O kit de ferramentas de RL reinicializa o ambiente chamandoreset()
. -
step()
: Usa a ação do agente como entrada e produz o próximo estado do ambiente, o prêmio, independentemente de o episódio ter sido encerrado, e um dicionárioinfo
para comunicar informações de depuração. É responsabilidade do ambiente validar as entradas. -
env.render()
: Usada para ambientes que possuem visualização. O kit de ferramentas RL chama essa função para capturar visualizações do ambiente após cada chamada para a funçãostep()
.
Usar ambientes de código aberto
Você pode usar ambientes de código aberto, como o EnergyPlus e o RoboSchool, no RL do SageMaker, criando seu próprio contêiner. Para mais informações sobre o EnergyPlus, consulte https://energyplus.net/
Usar ambientes comerciais
Você pode usar ambientes comerciais, como o MATLAB e o Simulink, no RL do SageMaker, criando seu próprio contêiner. Você precisa gerenciar suas próprias licenças.