Entrenamiento y evaluación de modelos de AWS DeepRacer - AWS DeepRacer

Entrenamiento y evaluación de modelos de AWS DeepRacer

Cuando su vehículo de AWS DeepRacer se conduce a sí mismo por una pista, captura los estados del entorno con la cámara montada en la parte delantera y realiza acciones en respuesta a las observaciones. Su modelo de AWS DeepRacer es una función que asigna las observaciones y las acciones a la recompensa esperada. Entrenar al modelo consiste en encontrar o aprender la función que maximiza la recompensa prevista de manera que el modelo optimizado prescriba qué acciones (pares de velocidad y ángulo de dirección) puede realizar su vehículo para moverse por la pista de principio a fin.

En la práctica, la función se representa mediante una red neuronal y el entrenamiento de la red implica encontrar las ponderaciones de red óptimas dadas las secuencias de estados medioambientales observados y las acciones de respuesta del vehículo. Los criterios subyacentes óptimos se describen por la función de recompensas del modelo que anima al vehículo a realizar movimientos legales y productivos sin provocar accidentes de tráfico o infracciones. Una función de recompensa sencilla podría devolver una recompensa de 0 si el vehículo está en la pista, -1 si está fuera de la pista y +1 si alcanza la línea de meta. Con esta función de recompensa, el vehículo se penaliza al salirse de la pista y recibe una recompensa por llegar al destino. Esta puede ser una buena función de recompensa si el tiempo o la velocidad no es un problema.

Supongamos que le interesa que el vehículo conduzca lo más rápido posible sin salirse de una pista recta. A medida que la velocidad del vehículo aumenta y disminuye, el vehículo puede maniobrar hacia la izquierda o hacia la derecha para evitar obstáculos o para permanecer dentro. Un giro demasiado abierto a velocidad elevada podría provocar que el vehículo se saliera de la pista. Hacer un giro demasiado pequeño podría no ayudar a evitar una colisión contra un obstáculo u otro vehículo. En términos generales, las acciones óptimas serían realizar un giro mayor a una velocidad menor velocidad o maniobrar menos a lo largo de una curva más pronunciada. Para fomentar este comportamiento, la función de recompensa debe asignar una puntuación positiva para recompensar los giros más pequeños a una velocidad mayor o una puntuación negativa para penalizar giros mayores a una velocidad superior. Del mismo modo, la función de recompensa puede devolver una recompensa positiva al acelerar por un trayecto más recto a reducir la velocidad cuando se acerca a un obstáculo.

La función de recompensa es una parte importante de su modelo de AWS DeepRacer. Debe proporcionarla al entrenar su modelo de AWS DeepRacer. El entrenamiento implica episodios repetidos a lo largo de la pista de principio a fin. En un episodio el agente interactúa con la pista para realizar el recorrido de acciones óptimo maximizando la recompensa futura prevista. Al final, el entrenamiento produce un modelo de aprendizaje por refuerzo. Después del entrenamiento, el agente ejecuta la conducción autónoma ejecutando inferencia en el modelo para que realice una acción óptima en cualquier estado dado. Esto puede hacerse en un entorno simulado con un agente virtual o en un entorno real con un agente físico, como un vehículo a escala de AWS DeepRacer.

Para entrenar un modelo de aprendizaje de refuerzo en la práctica, debe elegir un algoritmo de aprendizaje. En la actualidad, la consola de AWS DeepRacer solo admite los algoritmos Optimización proximal de políticas (PPO, proximal policy optimization) y Actor-crítico suave (SAC, soft actor-critic). A continuación, puede elegir un marco de aprendizaje profundo que admita el algoritmo elegido, a menos que desee escribir uno desde cero. AWS DeepRacer se integra con SageMaker para que algunos marcos de aprendizaje profundo populares, como TensorFlow, estén fácilmente disponibles en la consola de AWS DeepRacer. El uso de un marco de trabajo simplifica la configuración y ejecución de trabajos de entrenamiento y le permite centrarse en la creación y mejora de funciones de recompensa específicas de sus problemas.

El entrenamiento del modelo de aprendizaje de refuerzo es un proceso iterativo. En primer lugar, resulta complicado definir una función de recompensa que cubra todos los comportamiento importantes de un agente en un entorno a la vez. En segundo lugar, los hiperparámetros se suelen ajustar para garantizar un rendimiento de entrenamiento satisfactorio. Ambos requieren experimentación. Un enfoque prudente es comenzar con una función de recompensa sencilla y luego mejorarla progresivamente. AWS DeepRacer facilita este proceso iterativo al habilitarle para clonar un modelo entrenado y luego utilizarlo para poner en marcha la siguiente ronda de entrenamiento. En cada iteración puede introducir en la función de recompensa uno o varios tratamientos más sofisticados para tratar variables que se hayan pasado por alto con anterioridad o puede ajustar sistemáticamente los hiperparámetros hasta que el resultado converja.

Como práctica general en aprendizaje automático, debe evaluar un modelo de aprendizaje por refuerzo para determinar su eficacia antes de implementarlo en un agente físico para ejecutar inferencia en una situación del mundo real. Para conducción autónoma, la evaluación se puede basar en la frecuencia con la que un vehículo permanece en una determinada pista de principio a fin o la rapidez con que puede finalizar el recorrido sin salirse de la pista. La simulación de AWS DeepRacer le permite ejecutar la evaluación y publicar las métricas de rendimiento para compararlas con modelos entrenados por otros usuarios de AWS DeepRacer en una tabla de clasificación.