Iniciando en AWS DeepRacer: Introducción a Reinforcement Learning

Claudia Márquez
Caleidos
Published in
6 min readDec 2, 2023

Introducción

En la era de la inteligencia artificial, el aprendizaje por refuerzo (Reinforcement Learning, RL) se ha destacado como una técnica poderosa para entrenar agentes autónomos. AWS DeepRacer ofrece una manera emocionante de sumergirse en este fascinante campo a través de experiencias prácticas y divertidas. En este blogpost, exploraremos cómo comenzar con AWS DeepRacer y entender los conceptos fundamentales del aprendizaje por refuerzo.

¿Qué es AWS DeepRacer?

AWS DeepRacer es un servicio de aprendizaje por refuerzo completamente administrado que permite a los desarrolladores entrenar y competir con modelos de aprendizaje profundo en carreras virtuales. Al utilizar un entorno de simulación 3D, los participantes pueden entrenar sus modelos para que un coche autónomo navegue por un circuito de manera eficiente y rápida.

Crear una cuenta de AWS

Antes de empezar, asegúrate de tener una cuenta de AWS. Puedes registrarte en aws.amazon.com y obtener acceso a la consola de AWS.

Crea el modelo

Cuando ingreses a la consola, dirígete al servicio “AWS DeepRacer”. En el menú lateral, selecciona “Your models” y después haz clic en “Create model” para iniciar el proceso de creación de un nuevo modelo.

En el primer paso de “Create model”, encontramos una introducción a cómo funciona el aprendizaje por refuerzo. Básicamente, contamos con un agente (nuestro automóvil) que puede percibir el entorno (en nuestro caso, la pista de carrera) y tomar decisiones específicas (como ajustar la velocidad o girar el volante). Dependiendo de la decisión tomada, asignaremos un “premio” que refuerza positiva o negativamente la elección realizada. Después de varios de estos ciclos, obtendremos un modelo entrenado.

Para seguir con la creación de nuestro modelo, debemos agregar un nombre.

A continuación, debemos seleccionar la pista en la que llevaremos a cabo el entrenamiento. En esta primera sesión, optaremos por una pista sencilla denominada “A to Z Speedway”. Después, simplemente hacemos clic en “Next” para avanzar al siguiente paso.

En el siguiente paso, seleccionaremos el tipo de carrera. Comenzaremos con el más sencillo, que es “Time Trial”, y dejaremos por defecto el algoritmo “PPO” con los hiperparámetros predeterminados. Luego, hacemos clic en “Next” para continuar.

En la siguiente sección, definiremos las acciones que nuestro automóvil puede llevar a cabo. Mantendremos la opción “Continuous Action Space” seleccionada en el espacio de acciones, lo que implica que el auto podrá elegir cualquier número dentro del rango que especifiquemos. Optaremos por los valores predeterminados para el viraje del timón, que varían entre -30° y 30°, así como para la velocidad, que se establecerá entre 0.5 y 1.

Es tentador aumentar la velocidad máxima del auto, sin embargo, esto ampliaría el rango de opciones que nuestro automóvil podría tomar, lo que resultaría en un entrenamiento más prolongado o incluso podría afectar la efectividad del modelo, especialmente cuando se utiliza una función de recompensa simple, como la que estaremos empleando.

En la siguiente sección, tendremos la opción de elegir nuestro auto. Mantendremos la selección en “The Original DeepRacer” y simplemente haremos clic en “Next” para continuar.

Finalmente, llegaremos a uno de los pasos más importantes: la creación de nuestra función de recompensa. Para nuestro primer modelo, dejaremos el código de ejemplo proporcionado por AWS. Esta función de recompensa premiará al automóvil por estar lo más cerca posible de la línea punteada en el centro. Cuanto más cerca esté, más puntos recibirá el modelo. Puedes consultar todos los parámetros disponibles para utilizar en esta función en el siguiente enlace.

En la sección de “Stop Conditions”, definiremos la duración del entrenamiento. Dejaremos que el modelo se entrene durante 60 minutos. Es importante recordar que el entrenamiento del modelo conlleva un costo, pero para cuentas nuevas de AWS, se dispone de 10 horas de entrenamiento de forma gratuita, permitiéndote explorar el servicio sin cargos iniciales.

En la última sección, podemos optar por enviar el modelo entrenado a la liga de DeepRacer. Para esta prueba, lo dejaremos deseleccionado. Finalmente, haremos clic en “Create model”.

Analizando el entrenamiento del modelo

Después de crear el modelo, podemos observar su proceso de entrenamiento. En la sección derecha, se muestra un video en tiempo real del automóvil avanzando en la pista. A la izquierda, encontraremos tres líneas que proporcionan información clave en cada iteración del entrenamiento. La línea verde refleja las recompensas acumuladas por el modelo. La línea azul representa el porcentaje de la pista completado durante el entrenamiento, mientras que la línea roja indica el porcentaje de la pista que el modelo logró durante la fase de evaluación.

Idealmente, buscamos una fuerte correlación entre las líneas de recompensas y entrenamiento (verde y azul, respectivamente), ambas incrementándose durante el entrenamiento del modelo. El objetivo final es que el modelo logre recorrer la mayor parte posible de la pista durante la evaluación.

Un ejemplo de lo que queremos evitar es cuando la línea de recompensas muestra un aumento constante, pero tanto el progreso en el entrenamiento como en la evaluación permanecen en porcentajes bajos. Esto podría indicar que la función de recompensa actual no es la más adecuada y sugiere la necesidad de explorar otras estrategias.

Evalua el modelo

Una vez que el modelo ha sido entrenado, podemos ponerlo a prueba en una pista. Para hacerlo, nos dirigimos a la pestaña “Evaluation”. Aquí, seleccionamos el tipo de pista, optando por “Time trial” para que coincida con el tipo de carrera que elegimos al entrenar el modelo.

Luego, elegimos el tipo de pista, seleccionando la misma pista que utilizamos durante el entrenamiento del modelo.

Al finalizar, se nos dará la opción de cargar el modelo en la liga de DeepRacer, la cual dejaremos desactivada, y finalmente hacemos clic en “Start evaluation”.

Una vez completada la evaluación, podrás visualizar el video con los resultados. A continuación, te comparto un ejemplo de la evaluación del modelo que he entrenado.

El modelo muestra un buen control al mantenerse cercano a la línea central, sin embargo, se nota que es un poco lento. Es probable que no obtenga premios destacados en la liga, pero este resultado representa un excelente primer paso para comprender los fundamentos del aprendizaje por refuerzo

En resumen, este recorrido por AWS DeepRacer ha demostrado los conceptos clave del aprendizaje por refuerzo. Espero que esta experiencia te inspire a dar tus primeros pasos en DeepRacer y a explorar las infinitas posibilidades de la inteligencia artificial. ¡Anímate a comenzar tu propio viaje en la conducción autónoma!

--

--