Treine e avalie os modelos do AWS DeepRacer - AWS DeepRacer

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Treine e avalie os modelos do AWS DeepRacer

Quando seu veículo do AWS DeepRacer se movimenta em uma pista, ele captura os estados do ambiente com a câmera frontal e realiza ações em resposta às observações. Seu modelo do AWS DeepRacer é uma função que mapeia as observações e ações para a recompensa esperada. Treinar seu modelo é encontrar ou aprender a função que maximiza a recompensa esperada para que o modelo otimizado prescreva quais ações (pares de velocidade e ângulo de direção) seu veículo pode tomar para se mover na pista do início ao fim.

Na prática, a função é representada por uma rede neural e treinar a rede envolve encontrar os pesos de rede ideais, dadas as sequências de estados de ambiente observados e a resposta às ações do veículo. Os critérios subjacentes de otimização são descritos pela função de recompensa do modelo, que incentiva o veículo a fazer movimentos legais e produtivos sem causar acidentes de trânsito ou infrações. Uma função de recompensa simples pode retornar o valor 0 de recompensa se o veículo estiver na pista, -1 se estiver fora da pista e +1 se alcançar a linha de chegada. Com essa função de recompensa, o veículo é penalizado por sair da pista e recompensado por alcançar o destino. Essa pode ser uma boa função de recompensa se tempo ou velocidade não for problema.

Digamos que você tenha interesse em fazer com que o veículo seja conduzido o mais rápido possível sem sair de uma pista reta. À medida que aumenta ou reduz a velocidade, o veículo pode ir para a esquerda ou para a direita para evitar obstáculos ou permanecer na pista. Fazer uma curva muito acentuada em alta velocidade pode facilmente levar o veículo para fora da pista. Fazer uma curva menor pode não impedir uma colisão com um obstáculo ou outro veículo. De modo geral, as ações ideais seriam fazer uma curva maior em velocidade menor ou reduzir a velocidade em uma curva mais acentuada. Para incentivar esse comportamento, sua função de recompensa deve atribuir uma pontuação positiva para curvas menores feitas em velocidade maior e/ou uma pontuação negativa para punir curvas maiores feitas em alta velocidade. Da mesma forma, a função de recompensa pode retornar uma recompensa positiva por acelerar ao longo de um percurso mais reto ou desacelerar quando estiver perto de um obstáculo.

A função de recompensa é uma parte importante do seu modelo do AWS DeepRacer. Você deve fornecê-la ao treinar o modelo do AWS DeepRacer. O treinamento envolve episódios repetidos ao longo da pista, do início ao fim. Em um episódio, o agente interage com a pista para entender a melhor sequência de ações, maximizando a recompensa cumulativa esperada. No final, o treinamento produz um modelo de aprendizado por reforço. Após o treinamento, o agente executa a condução autônoma por meio de inferência no modelo para executar uma ação ideal em qualquer estado. Isso pode ser feito no ambiente simulado com um agente virtual ou em um ambiente real com um agente físico, como um veículo em escala do AWS DeepRacer.

Para treinar um modelo de aprendizado por reforço na prática, você deve escolher um algoritmo de aprendizagem. Atualmente, o console do AWS DeepRacer suporta somente os algoritmos de otimização de políticas proximal (PPO) e de ator-crítica suave (SAC). Em seguida, você pode escolher uma estrutura de aprendizado profundo que suporte o algoritmo escolhido, a menos que queira escrever uma do zero. O AWS DeepRacer se integra ao SageMaker para disponibilizar prontamente algumas estruturas populares de aprendizado profundo, como o TensorFlow, no console do AWS DeepRacer. Usar uma estrutura simplifica a configuração e a execução de tarefas de treinamento e permite a você se concentrar na criação e no aprimoramento das funções de recompensa específicas para seus problemas.

Treinar um modelo de aprendizado por reforço é um processo interativo. Primeiro, é desafiador definir uma função de recompensa para abranger todos os comportamentos importantes de um agente em um ambiente de uma só vez. Em segundo lugar, os hiperparâmetros geralmente são ajustados para garantir um desempenho de treinamento satisfatório. Ambos exigem experimentação. Uma abordagem prudente é começar com uma função de recompensa simples e depois melhorá-la progressivamente. O AWS DeepRacer facilita esse processo iterativo, permitindo que você clone um modelo treinado e depois use-o para iniciar a próxima rodada de treinamento. Em cada iteração você pode introduzir um ou mais tratamentos sofisticados adicionais na função de recompensa para lidar com as variáveis ignoradas anteriormente ou você pode ajustar sistematicamente os hiperparâmetros até que o resultado convirja.

Assim como ocorre com as práticas gerais em machine learning, é necessário avaliar um modelo treinado de aprendizado por reforço para verificar sua eficácia antes de implantá-lo em um agente físico para a execução de inferência em uma situação real. Para corridas autônomas, a avaliação pode ser baseada na frequência com que um veículo permanece em uma pista do início ao fim ou quão rápido ele consegue concluir o percurso sem sair da pista. A simulação do AWS DeepRacer é executada no simulador do AWS DeepRacer e permite realizar a avaliação e publicar as métricas de desempenho para comparação com modelos treinados por outros usuários do AWS DeepRacer em um placar.