DeepRacer: Primeros pasos con Machine Learning
¿Quieres saber cómo funciona AWS DeepRacer? Lo probé en re:Invent 2022 y te cuento mi experiencia con este servicio de machine learning.
1. Introducción
¡Sí! Ahora que los bots de inteligencia artificial están aquí para ayudar a todos a crear contenido (y mucho más)… y como me gusta hacer justo lo contrario, he escrito este artículo desde un punto de vista personal basado en mi experiencia con DeepRacer en el último re:Invent 2022.
En resumen, en DeepRacer tienes que entrenar tu coche para que se mantenga en la pista… y no será algo que logres rápidamente.
¡Pero eventualmente, podrás completar una vuelta!
Por qué decidí aprender cómo funciona DeepRacer
En el AWS Summit Madrid 2022, mi primer evento presencial de AWS, descubrí DeepRacer, el servicio, el coche y la pista, pero no tuve suficiente tiempo para probarlo o saber cómo funcionaba, y me dije que aprovecharía la próxima oportunidad para aprender más sobre ello.
¡Y esta oportunidad llegó pronto! Tuve el placer de ir a re:Invent este mismo 2022, y dediqué algo de tiempo a hacer un DeepRacer Level 200 Introductory Workshop. ¡Creé mi primer modelo y corrí mi primera carrera!
¡Aprende, practica y diviértete!
2. Conceptos
AWS DeepRacer es un coche de carreras completamente autónomo a escala 1/18 que se puede usar para aprender sobre aprendizaje por refuerzo (RL) y participar en ligas de carreras globales.
“Una forma divertida de aprender machine learning” dijo AWS en su página web
Fue anunciado en AWS re:Invent 2018, como parte de un conjunto de nuevos productos y servicios de machine learning (ML) de Amazon Web Services (AWS), incluyendo Amazon SageMaker, Amazon Lex y Amazon Rekognition.
El machine learning es un campo de la inteligencia artificial (IA) que se centra en el desarrollo de algoritmos que permiten a las computadoras aprender y tomar decisiones basadas en datos, en lugar de ser programadas explícitamente. Los algoritmos de machine learning están diseñados para mejorar su rendimiento con el tiempo a medida que se exponen a más datos.
Existen diferentes tipos de machine learning:
- Supervisado: datos etiquetados, donde se proporciona la salida correcta para cada ejemplo del conjunto de entrenamiento (dataset). El modelo usa esta supervisión para aprender cómo hacer predicciones por sí mismo.
- No supervisado: datos no etiquetados, donde no se proporciona la salida correcta y el modelo debe encontrar patrones o relaciones en los datos por sí mismo.
- Por refuerzo: entrenar un agente (coche) para tomar decisiones basadas en el estado actual (imágenes de cámara) para lograr objetivos especificados y maximizar una recompensa en un entorno (circuito). El modelo se entrena mediante prueba y error, para aprender cómo tomar acciones que maximicen la recompensa
- Recompensar el comportamiento positivo
- No recompensar el comportamiento negativo
Probablemente lo más importante en el aprendizaje por refuerzo es diseñar la función de recompensa para que el agente (coche) tome mejores decisiones.
Esta es la asociación con los términos clave del aprendizaje por refuerzo en AWS DeepRacer:
- Agente: coche
- Estado: imágenes de cámara
- Entorno: circuito
- Acción: moverse a una velocidad y ángulo de dirección particular
- Recompensa (número, +100) –> NÚCLEO del aprendizaje por refuerzo
- Episodio: viaje
3. Cómo entrenar tu modelo
3.1. Comenzar con AWS DeepRacer
Para comenzar con AWS DeepRacer, necesitas una cuenta de AWS y acceso al servicio DeepRacer. Una vez allí, puedes acceder a la consola de DeepRacer y comenzar a entrenar tu modelo de ML. Como siempre, la consola de AWS contiene mucha buena documentación y enlaces directos para aprender mucho más.
Antes de comenzar:
- tienes que crear tu perfil de corredor - solo completa los formularios y elige tu avatar.
- luego, en el Garage, crearás y personalizarás los coches virtuales que luego usarás para entrenar modelos.
- finalmente, puedes comenzar a configurar un nuevo modelo.
Esta imagen representa el concepto general de cómo funciona el modelo de entrenamiento
- Crear un modelo
- Entrenar
- Evaluar
- Iteración del modelo y mejora de habilidades
Pero por supuesto, ¡primero tienes que aprender lo básico! ¡El curso de 10 minutos dentro de la consola es muy recomendable y muy visual! Aprenderás cómo funciona el aprendizaje por refuerzo y estarás listo para comenzar a “jugar” con la consola de DeepRacer.
Tu primer modelo debería ser el fácil, el que tiene todas las opciones predeterminadas. Solo con eso, deberías poder completar la carrera. Por cierto, esta también es la primera opción recomendada por AWS.
Si intentas cambiar las opciones predeterminadas sin conocimiento, posiblemente será peor que dejar las opciones predeterminadas.
Estos son los 5 pasos para crear un nuevo modelo:
- 1: Especificar el nombre del modelo y el entorno
- 2: Elegir el tipo de carrera y el algoritmo de entrenamiento
- tipos de carrera: Time trial, Object avoidance y Head-to-head racing
- 3: Definir el espacio de acción
- 4: Elegir un vehículo
- 5: Personalizar la función de recompensa
- El tiempo recomendado para completar el entrenamiento es de 1 hora, pero en general, más tiempo significa que el agente (coche) ganará más experiencia y aprenderá como has definido en la función de recompensa.
- El último paso será definir la función de recompensa, pero afortunadamente, hay 4 opciones diferentes que puedes usar en la consola:
- Time trial - seguir la línea central (Predeterminado)
- Time trial - permanecer dentro de los dos bordes
- Time trial - prevenir zigzag
- Object avoidance y head-to-head - permanecer en un carril y no chocar (predeterminado para OA y h2h)
Deberías probar qué opciones son mejores para tu circuito específico, pero mi recomendación es…. ¡prueba y error!
Tienes la limitación de entrenar 4 modelos al mismo tiempo:
- crea un modelo con las opciones predeterminadas y 3 más con algunos otros cambios…
- luego cuando termine el entrenamiento, analiza los resultados,
- finalmente, usa el mejor modelo (en gráfico y en tiempos) para clonarlo e intentar de nuevo con otras 4 opciones diferentes
3.2. ¿Cómo sabes si un modelo es mejor que el anterior
Cuando un modelo termina una sesión de entrenamiento, tiene que ser evaluado, ¡y puedes hacerlo varias veces porque los tiempos de vuelta no siempre son los mismos!
También puedes revisar el gráfico de entrenamiento. La mejora del rendimiento debería aumentar con el tiempo:
Pero a veces verás algo como esto:
Significa:
- Sobre-entrenamiento: el modelo no mejora con el tiempo
- O no es una buena combinación de opciones
En cualquier caso, si ves que tu gráfico disminuye y el “mejor modelo” permanece al principio, ¡puedes detener este entrenamiento e intentar una combinación diferente, porque esta no está funcionando bien!
¡Ten cuidado! Los costos pueden aumentar rápidamente cuando te estás divirtiendo. Lo sé… pero como obtuve un voucher (créditos) no fue un problema…. Sin embargo, con el nivel gratuito tienes 10 horas y es suficiente para probar el servicio.
Si quieres ahorrar dinero, deberías considerar entrenar tus modelos en tu entorno local y luego importar a la consola de DeepRacer para evaluar
3.3. Algunas de mis pruebas
Mi opción 1: El modelo de entrenamiento predeterminado
Mi opción 2: usando la opción SAC (gran diferencia)
Muchas más pruebas y errores…
Y el resultado final, después de muchas horas y diferentes intentos:
¡Esto no es gran cosa, pero para mí valió la pena!
¡Y solo por participar, recibí este coche!









