SlideShare a Scribd company logo
1 of 42
Download to read offline
AWS Deep Racer
desde cero
#awsvalencia
Javier Campos
@javichur
12/08/2021
Índice
1. 🙋‍♂️ Presentación
2. 🏁 Qué es AWS Deep Racer
3. 🛣️ Circuitos y tipos de carreras
4. 🏎️ Los coches
5. 💰 La función de recompensa
6. ☁️ Demo en Consola AWS
7. 💻 Demo en Local
8. 📈 Analíticas
9. 💡 Trucos
10. 🔗 Links
#awsvalencia 12/8/2021
🙋‍♂️ Presentación
Javier Campos ( @javichur)
AWS Faculty Lead en CEU Digital
Cofundador de Mobilendo (2010-2020)
+10 años creando apps (Dev, PM, CTO)
Alexa Champion
#LifelongLearning #OpenSource
#Serverless #Hackathon #ML #NLP
🏁 Qué es AWS Deep
Racer
• Presentado en 2018.
• https://www.slideshare.net/AmazonWebS
ervices/new-launch-introducing-aws-
deepracer-aim367-aws-reinvent-2018
• Es un coche autónomo a escala
1:18, que conduce gracias al
Aprendizaje por Refuerzo.
• No necesitas conocimientos
previos para empezar.
• Nuestro trabajo:
• Configurar coche.
• Escribir la función de recompensa.
🏁 Qué es AWS Deep Racer
© Amazon Web Services
🏁 Qué es AWS Deep
Racer
🏁 Qué es AWS Deep Racer
🏁 Qué es AWS Deep Racer
• Al terminar la fase de entrenamiento del modelo, podemos:
• Evaluarlo en circuito (elegir el mismo circuito en el que hemos entrenado u otro).
• Clonar el modelo, definir una nueva función de recompensa y seguir entrenando.
• Competir.
🏁 Qué es AWS Deep Racer
(Curiosidad) DeepRacer utiliza internamente otros servicios de AWS:
• S3, para almacenar:
• Hiperparámetros del modelo.
• La función de recompensa.
• Fichero de acciones posibles del coche.
• Checkpoints del modelo.
• SageMaker, para entrenamiento.
• RoboMaker, para simulador.
• Kinesis, para vídeo streaming del
simulador.
• ElastiCache, para comunicación de
RoboMaker hacia SageMaker.
• CloudWatch, para logs.
🛣️ Circuitos y tipos de carreras
• 3 tipos de carreras:
• 👉 Time Trials →Contrarreloj, pista sin obstáculos.
• Object Avoidance Races →Contrarreloj, cajas en mitad de la pista.
• Head-to-Head Races →Contrarreloj, otros coches en movimiento por la pista.
• AWS DeepRacer League:
• 👉 Open Division → Abierto a todos. Cada mes, el top 10% pasa a Pro Division.
• Pro Division
• Pro Division Finale
• Community Race → Creadas por la comunidad, se accede por link.
• Los circuitos cambian cada mes.
🛣️ Circuitos y tipos de carreras
👉
🛣️ Circuitos y tipos de carreras
• Coche virtual para entrenar y competir.
• Coche físico (escala 1:18) para competir.
• Versión inicial (2018):
• 1 cámara frontal.
• Ideal para “Time Trials”.
• Versión EVO (2020):
• 2 cámaras frontales.
• LiDAR.
• Para “Object Avoidance”
y “Head-to-Head” races.
🏎️ Los coches
👉
• El coche físico se puede
comprar online (+500$) o ganar
(top 5 de cada carrera mensual).
https://www.amazon.com/dp/B07JMHRKQG
• No se necesita el coche físico
para competir.
• Ganas coches virtuales por
competir:
🏎️ Los coches
• En el coche virtual y en el físico, configurarás:
• Qué sensores usar (1 cámara, 2 cámaras, 2 cámaras + LiDAR).
• Ángulo de giro máximo de las ruedas delanteras.
• Velocidad máxima.
• Variación discreta (por pasos) o continuo.
• Si es por pasos, nº de pasos en el ángulo de giro de rueda.
• Si es por pasos, nº de pasos en la velocidad.
🏎️ Los coches
🏎️ Los coches
🏎️ Los coches
• “Espacio de Acciones”.
💰 La función de recompensa
• Se ejecuta 15 veces por segundo durante el entrenamiento.
• Tiene acceso a estos inputs del coche:
• x, y
• distance_from_center
• heading
• is_offtrack
• all_wheels_on_track
• speed
• steering_angle
• waypoints
• closest_waypoints
• progress
• steps
• is_left_of_center
• is_crashed
• is_reversed
• objects_distance, closest_objects, objects_heading, objects_left_of_center, objects_location, objects_speed
https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-reward-function-input.html
💰 La función de recompensa
• La función de recompensa no le dice al coche lo que tiene que hacer
en cada instante; le premia de forma proporcional a lo bien que lo ha
hecho en cada instante, durante el entrenamiento.
💰 La función de recompensa
def reward_function(params):
# Leer parámetros de entrada
ancho_pista = params['track_width’]
distancia_al_centro = params['distance_from_center’]
# Calcula 3 marcadores que se alejan de la línea central.
marker_1 = 0.1 * ancho_pista
marker_2 = 0.25 * ancho_pista
marker_3 = 0.5 * ancho_pista
# Dar recompensas más altas si coche está cerca centro.
if distancia_al_centro <= marker_1:
reward = 1 # 🥇
elif distancia_al_centro <= marker_2:
reward = 0.5 # 🥈
elif distancia_al_centro <= marker_3:
reward = 0.1 # 🥉
else:
reward = 1e-3 # coche fuera de pista.
return reward
💰 La función de recompensa
def reward_function(params):
# Leer parámetros de entrada
ancho_pista = params['track_width’]
medio_ancho = ancho_pista/2
distancia_al_centro = params['distance_from_center’]
if params['is_offtrack'] == True:
reward = 1e-3
else: # Calcula recompensa continua.
reward = 1 - (distancia_al_centro/medio_ancho)
return reward
☁️ Demo en Consola AWS
Acceder Consola AWS → Configurar coche → Crear modelo → Función de
recompensa → Entrenar (máx. 10 min para demo) → Evaluar y enviar a Open
Division.
💻 Demo en local
💻 Demo en local
Receta (desde Windows, con WSL2):
# git clone https://github.com/aws-deepracer-community/deepracer-for-cloud # clonar repo (solo la 1ª vez).
# sudo apt-get install jq awscli python3-boto3 docker-compose # instalar dependencias (solo la 1ª vez).
# docker swarm leave --force
bin/init.sh -a cpu -c local
# aws configure --profile minio # Configurar un perfil para S3 local (solo la 1ª vez).
source bin/activate.sh
dr-update
# copiar tu configuración de la carrera, función de recompensa, configuración del coche e hiperparámetros:
cp /mnt/d/git/aws-deep-racer/run.env ~/deepracer-for-cloud/deepracer-for-cloud/
cp /mnt/d/git/aws-deep-racer/{reward_function.py,model_metadata.json,hyperparameters.json} ~/deepracer-for-cloud/deepracer-for-
cloud/custom_files/
dr-upload-custom-files # sube los ficheros anteriores a S3 (local).
dr-start-training -w # inicia entrenamiento.
dr-start-viewer # (opcional) inicia visor vídeo.
dr-start-loganalysis # (opcional) inicia jupyter para análisis de los logs.
dr-logs-robomaker # (opcional) muestra logs de la función de recompensa. Ejemplo: dr-logs-robomaker 2> log.err | grep "REWARD:"
👀 Copy&Paste desde aquí dará error en la Terminal de WSL2,
debido al carácter especial “salto de línea” y “espacio”. Escribe los
comandos directamente en la Terminal de WSL2 o copia desde aquí.
📈 Analíticas
• Durante el entrenamiento:
• (en Consola AWS) Gráficas de recompensa obtenida y % de circuito completado.
• Vídeo del simulador.
• Tras el entrenamiento:
• Descargar los logs.
• Variables en cada step (X, Y, velocidad, giro de ruedas, orientación, recompensa, progreso,
tiempo…)
• Resumen de cada episodio (recompensa total, tiempo, progreso total.
• Log de SageMaker y RoboMaker (tus logs de la función de recompensa).
• Analizar logs con cuadernos jupyter desarrollados por la comunidad:
📈 Analíticas
📈 Analíticas
dr-start-loganalysis
💡 Trucos
1. Pricing: Primeras 10 horas gratis, resto 3,5€/h. Ahorro posible con
Promo Codes, instancias EC2 Spot y entrenamiento en ordenador local.
2. Utiliza los Hiperparámetros por defecto del modelo.
3. Más fácil conseguir resultados con una función de recompensa sencilla.
4. El modelo aprende más rápido con funciones de recompensa
continuas.
Función discontinua Función continua
💡 Trucos
5. El modelo aprende más rápido con coches “limitados”:
• Aprende más rápido el coche que solo puede ir a 1m/s, que un coche de 3-5
velocidades. Ídem para giros de volante (mejor 3 posiciones que 5, etc).
• Pero al clonar un modelo entrenado no podemos cambiar de coche.
• Idea: empezar con un coche que tenga muchas velocidades pero limitarlas
en la función de recompensa.
💡 Trucos
6. Evaluar/Competir +1 vez por cada entrenamiento.
7. Empezar con una función de recompensa muy sencilla, hasta
conseguir que el coche complete la vuelta. Después clonar el
modelo y aplicar “extra” en la función de recompensa.
• Ejemplo:
• 1º Recompensar solo por ir centrado en la pista pero con velocidad fija.
• 2º Clonar modelo.
• 3º Entrenar el modelo clonado, recompensando también por progresar (≠ ir rápido).
8. Es más importante el “progreso” que la “velocidad”.
• Ejemplo:
💡 Trucos
💡 Trucos
V = 1m/s V = 2m/s
💡 Trucos
V = 1m/s V = 2m/s
💡 Trucos
V = 2 m/s
💡 Trucos
9. ¿1 modelo entrenado para cada
circuito VS 1 modelo que generaliza?
• Overfitting VS Generalizar
10. ¿El coche puede optimizar aún más
la trazada?
• https://github.com/cdthompson/deeprac
er-k1999-race-lines
📋 Resumen
• Intro a AWS DeepRacer y al Aprendizaje por Refuerzo.
• Tipos de carreras. Empezaremos por contrarreloj en Open Division.
• Coches. Entrenaremos al coche virtual, con un espacio de acciones
limitado.
• Función de recompensa. Empezar con función sencilla, entrenar modelo,
evaluar, clonar modelo, ampliar la función de recompensa.
• Importancia progreso vs velocidad.
• Pricing, estimar coste diferentes opciones (AWS, EC2 spot, local).
• Demo en AWS y en ordenador local.
• Analíticas de carrera.
🔗 Links
• AWS Deep Racer Community: https://deepracing.io
• Repositorio: https://github.com/aws-deepracer-community/deepracer-for-cloud
• AWS Deep Racer web: https://aws.amazon.com/deepracer
• (E-LEARNING) AWS DeepRacer: Driven by Reinforcement Learning:
https://www.aws.training/Details/eLearning?id=32143
• Grand Prix Final – AWS DeepRacer TV 2020 Championships:
https://www.youtube.com/watch?v=lBj3PN91aqE
¡Gracias!
AWS Deep Racer desde
cero
#awsvalencia
Javier Campos
@javichur
javiercampos.es

More Related Content

Similar to AWS DeepRacer desde cero - Meetup de awsvalencia (2021/08/12)

Sprint backlog specified by example
Sprint backlog specified by exampleSprint backlog specified by example
Sprint backlog specified by example
Agora Group
 

Similar to AWS DeepRacer desde cero - Meetup de awsvalencia (2021/08/12) (20)

2012 Simulated Car Racing Championship @ CIG-2012
2012 Simulated Car Racing Championship @ CIG-20122012 Simulated Car Racing Championship @ CIG-2012
2012 Simulated Car Racing Championship @ CIG-2012
 
Michael Allen's AWS user group talk ""Developers, Start Your Engines - Hands ...
Michael Allen's AWS user group talk ""Developers, Start Your Engines - Hands ...Michael Allen's AWS user group talk ""Developers, Start Your Engines - Hands ...
Michael Allen's AWS user group talk ""Developers, Start Your Engines - Hands ...
 
PipelineAI + AWS SageMaker + Distributed TensorFlow + AI Model Training and S...
PipelineAI + AWS SageMaker + Distributed TensorFlow + AI Model Training and S...PipelineAI + AWS SageMaker + Distributed TensorFlow + AI Model Training and S...
PipelineAI + AWS SageMaker + Distributed TensorFlow + AI Model Training and S...
 
Optimizing, Profiling, and Deploying High Performance Spark ML and TensorFlow AI
Optimizing, Profiling, and Deploying High Performance Spark ML and TensorFlow AIOptimizing, Profiling, and Deploying High Performance Spark ML and TensorFlow AI
Optimizing, Profiling, and Deploying High Performance Spark ML and TensorFlow AI
 
Reinforcement Learning for Self Driving Cars
Reinforcement Learning for Self Driving CarsReinforcement Learning for Self Driving Cars
Reinforcement Learning for Self Driving Cars
 
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
 
Sprint backlog specified by example
Sprint backlog specified by exampleSprint backlog specified by example
Sprint backlog specified by example
 
R, Scikit-Learn and Apache Spark ML - What difference does it make?
R, Scikit-Learn and Apache Spark ML - What difference does it make?R, Scikit-Learn and Apache Spark ML - What difference does it make?
R, Scikit-Learn and Apache Spark ML - What difference does it make?
 
Serverless in production, an experience report (LNUG)
Serverless in production, an experience report (LNUG)Serverless in production, an experience report (LNUG)
Serverless in production, an experience report (LNUG)
 
2019 12 14 Global AI Bootcamp - Auto ML with Machine Learning.Net
2019 12 14 Global AI Bootcamp   - Auto ML with Machine Learning.Net2019 12 14 Global AI Bootcamp   - Auto ML with Machine Learning.Net
2019 12 14 Global AI Bootcamp - Auto ML with Machine Learning.Net
 
Scaling Ride-Hailing with Machine Learning on MLflow
Scaling Ride-Hailing with Machine Learning on MLflowScaling Ride-Hailing with Machine Learning on MLflow
Scaling Ride-Hailing with Machine Learning on MLflow
 
2013 Simulated Car Racing @ GECCO-2013
2013 Simulated Car Racing @ GECCO-20132013 Simulated Car Racing @ GECCO-2013
2013 Simulated Car Racing @ GECCO-2013
 
Toronto meetup 20190917
Toronto meetup 20190917Toronto meetup 20190917
Toronto meetup 20190917
 
Neoito — Design patterns and depenedency injection
Neoito — Design patterns and depenedency injectionNeoito — Design patterns and depenedency injection
Neoito — Design patterns and depenedency injection
 
SAP C_CPE_16: Latest Questions and Exam Tips for SAP CPE Certification
SAP C_CPE_16: Latest Questions and Exam Tips for SAP CPE CertificationSAP C_CPE_16: Latest Questions and Exam Tips for SAP CPE Certification
SAP C_CPE_16: Latest Questions and Exam Tips for SAP CPE Certification
 
Tips for Building your First XPages Java Application
Tips for Building your First XPages Java ApplicationTips for Building your First XPages Java Application
Tips for Building your First XPages Java Application
 
Serverless in Production, an experience report (cloudXchange)
Serverless in Production, an experience report (cloudXchange)Serverless in Production, an experience report (cloudXchange)
Serverless in Production, an experience report (cloudXchange)
 
MinbilDinbil Django Speed Tricks
MinbilDinbil Django Speed TricksMinbilDinbil Django Speed Tricks
MinbilDinbil Django Speed Tricks
 
Microsoft Introduction to Automated Machine Learning
Microsoft Introduction to Automated Machine LearningMicrosoft Introduction to Automated Machine Learning
Microsoft Introduction to Automated Machine Learning
 
Optimizing, Profiling, and Deploying TensorFlow AI Models with GPUs - San Fra...
Optimizing, Profiling, and Deploying TensorFlow AI Models with GPUs - San Fra...Optimizing, Profiling, and Deploying TensorFlow AI Models with GPUs - San Fra...
Optimizing, Profiling, and Deploying TensorFlow AI Models with GPUs - San Fra...
 

Recently uploaded

Recently uploaded (20)

Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024
 
Novo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNovo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMs
 
[GRCPP] Introduction to concepts (C++20)
[GRCPP] Introduction to concepts (C++20)[GRCPP] Introduction to concepts (C++20)
[GRCPP] Introduction to concepts (C++20)
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 
Software Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringSoftware Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements Engineering
 
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AI
 
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
Auto Affiliate  AI Earns First Commission in 3 Hours..pdfAuto Affiliate  AI Earns First Commission in 3 Hours..pdf
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
 
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdf
 
Rapidoform for Modern Form Building and Insights
Rapidoform for Modern Form Building and InsightsRapidoform for Modern Form Building and Insights
Rapidoform for Modern Form Building and Insights
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdf
 
Abortion Clinic In Stanger ](+27832195400*)[ 🏥 Safe Abortion Pills In Stanger...
Abortion Clinic In Stanger ](+27832195400*)[ 🏥 Safe Abortion Pills In Stanger...Abortion Clinic In Stanger ](+27832195400*)[ 🏥 Safe Abortion Pills In Stanger...
Abortion Clinic In Stanger ](+27832195400*)[ 🏥 Safe Abortion Pills In Stanger...
 
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
 

AWS DeepRacer desde cero - Meetup de awsvalencia (2021/08/12)

  • 1. AWS Deep Racer desde cero #awsvalencia Javier Campos @javichur 12/08/2021
  • 2. Índice 1. 🙋‍♂️ Presentación 2. 🏁 Qué es AWS Deep Racer 3. 🛣️ Circuitos y tipos de carreras 4. 🏎️ Los coches 5. 💰 La función de recompensa 6. ☁️ Demo en Consola AWS 7. 💻 Demo en Local 8. 📈 Analíticas 9. 💡 Trucos 10. 🔗 Links #awsvalencia 12/8/2021
  • 3. 🙋‍♂️ Presentación Javier Campos ( @javichur) AWS Faculty Lead en CEU Digital Cofundador de Mobilendo (2010-2020) +10 años creando apps (Dev, PM, CTO) Alexa Champion #LifelongLearning #OpenSource #Serverless #Hackathon #ML #NLP
  • 4. 🏁 Qué es AWS Deep Racer • Presentado en 2018. • https://www.slideshare.net/AmazonWebS ervices/new-launch-introducing-aws- deepracer-aim367-aws-reinvent-2018 • Es un coche autónomo a escala 1:18, que conduce gracias al Aprendizaje por Refuerzo. • No necesitas conocimientos previos para empezar. • Nuestro trabajo: • Configurar coche. • Escribir la función de recompensa.
  • 5. 🏁 Qué es AWS Deep Racer © Amazon Web Services
  • 6. 🏁 Qué es AWS Deep Racer
  • 7. 🏁 Qué es AWS Deep Racer
  • 8. 🏁 Qué es AWS Deep Racer • Al terminar la fase de entrenamiento del modelo, podemos: • Evaluarlo en circuito (elegir el mismo circuito en el que hemos entrenado u otro). • Clonar el modelo, definir una nueva función de recompensa y seguir entrenando. • Competir.
  • 9. 🏁 Qué es AWS Deep Racer (Curiosidad) DeepRacer utiliza internamente otros servicios de AWS: • S3, para almacenar: • Hiperparámetros del modelo. • La función de recompensa. • Fichero de acciones posibles del coche. • Checkpoints del modelo. • SageMaker, para entrenamiento. • RoboMaker, para simulador. • Kinesis, para vídeo streaming del simulador. • ElastiCache, para comunicación de RoboMaker hacia SageMaker. • CloudWatch, para logs.
  • 10. 🛣️ Circuitos y tipos de carreras • 3 tipos de carreras: • 👉 Time Trials →Contrarreloj, pista sin obstáculos. • Object Avoidance Races →Contrarreloj, cajas en mitad de la pista. • Head-to-Head Races →Contrarreloj, otros coches en movimiento por la pista. • AWS DeepRacer League: • 👉 Open Division → Abierto a todos. Cada mes, el top 10% pasa a Pro Division. • Pro Division • Pro Division Finale • Community Race → Creadas por la comunidad, se accede por link. • Los circuitos cambian cada mes.
  • 11. 🛣️ Circuitos y tipos de carreras 👉
  • 12. 🛣️ Circuitos y tipos de carreras
  • 13. • Coche virtual para entrenar y competir. • Coche físico (escala 1:18) para competir. • Versión inicial (2018): • 1 cámara frontal. • Ideal para “Time Trials”. • Versión EVO (2020): • 2 cámaras frontales. • LiDAR. • Para “Object Avoidance” y “Head-to-Head” races. 🏎️ Los coches 👉
  • 14. • El coche físico se puede comprar online (+500$) o ganar (top 5 de cada carrera mensual). https://www.amazon.com/dp/B07JMHRKQG • No se necesita el coche físico para competir. • Ganas coches virtuales por competir: 🏎️ Los coches
  • 15. • En el coche virtual y en el físico, configurarás: • Qué sensores usar (1 cámara, 2 cámaras, 2 cámaras + LiDAR). • Ángulo de giro máximo de las ruedas delanteras. • Velocidad máxima. • Variación discreta (por pasos) o continuo. • Si es por pasos, nº de pasos en el ángulo de giro de rueda. • Si es por pasos, nº de pasos en la velocidad. 🏎️ Los coches
  • 17. 🏎️ Los coches • “Espacio de Acciones”.
  • 18. 💰 La función de recompensa • Se ejecuta 15 veces por segundo durante el entrenamiento. • Tiene acceso a estos inputs del coche: • x, y • distance_from_center • heading • is_offtrack • all_wheels_on_track • speed • steering_angle • waypoints • closest_waypoints • progress • steps • is_left_of_center • is_crashed • is_reversed • objects_distance, closest_objects, objects_heading, objects_left_of_center, objects_location, objects_speed https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-reward-function-input.html
  • 19.
  • 20. 💰 La función de recompensa • La función de recompensa no le dice al coche lo que tiene que hacer en cada instante; le premia de forma proporcional a lo bien que lo ha hecho en cada instante, durante el entrenamiento.
  • 21. 💰 La función de recompensa def reward_function(params): # Leer parámetros de entrada ancho_pista = params['track_width’] distancia_al_centro = params['distance_from_center’] # Calcula 3 marcadores que se alejan de la línea central. marker_1 = 0.1 * ancho_pista marker_2 = 0.25 * ancho_pista marker_3 = 0.5 * ancho_pista # Dar recompensas más altas si coche está cerca centro. if distancia_al_centro <= marker_1: reward = 1 # 🥇 elif distancia_al_centro <= marker_2: reward = 0.5 # 🥈 elif distancia_al_centro <= marker_3: reward = 0.1 # 🥉 else: reward = 1e-3 # coche fuera de pista. return reward
  • 22. 💰 La función de recompensa def reward_function(params): # Leer parámetros de entrada ancho_pista = params['track_width’] medio_ancho = ancho_pista/2 distancia_al_centro = params['distance_from_center’] if params['is_offtrack'] == True: reward = 1e-3 else: # Calcula recompensa continua. reward = 1 - (distancia_al_centro/medio_ancho) return reward
  • 23. ☁️ Demo en Consola AWS Acceder Consola AWS → Configurar coche → Crear modelo → Función de recompensa → Entrenar (máx. 10 min para demo) → Evaluar y enviar a Open Division.
  • 24. 💻 Demo en local
  • 25. 💻 Demo en local Receta (desde Windows, con WSL2): # git clone https://github.com/aws-deepracer-community/deepracer-for-cloud # clonar repo (solo la 1ª vez). # sudo apt-get install jq awscli python3-boto3 docker-compose # instalar dependencias (solo la 1ª vez). # docker swarm leave --force bin/init.sh -a cpu -c local # aws configure --profile minio # Configurar un perfil para S3 local (solo la 1ª vez). source bin/activate.sh dr-update # copiar tu configuración de la carrera, función de recompensa, configuración del coche e hiperparámetros: cp /mnt/d/git/aws-deep-racer/run.env ~/deepracer-for-cloud/deepracer-for-cloud/ cp /mnt/d/git/aws-deep-racer/{reward_function.py,model_metadata.json,hyperparameters.json} ~/deepracer-for-cloud/deepracer-for- cloud/custom_files/ dr-upload-custom-files # sube los ficheros anteriores a S3 (local). dr-start-training -w # inicia entrenamiento. dr-start-viewer # (opcional) inicia visor vídeo. dr-start-loganalysis # (opcional) inicia jupyter para análisis de los logs. dr-logs-robomaker # (opcional) muestra logs de la función de recompensa. Ejemplo: dr-logs-robomaker 2> log.err | grep "REWARD:" 👀 Copy&Paste desde aquí dará error en la Terminal de WSL2, debido al carácter especial “salto de línea” y “espacio”. Escribe los comandos directamente en la Terminal de WSL2 o copia desde aquí.
  • 26. 📈 Analíticas • Durante el entrenamiento: • (en Consola AWS) Gráficas de recompensa obtenida y % de circuito completado. • Vídeo del simulador. • Tras el entrenamiento: • Descargar los logs. • Variables en cada step (X, Y, velocidad, giro de ruedas, orientación, recompensa, progreso, tiempo…) • Resumen de cada episodio (recompensa total, tiempo, progreso total. • Log de SageMaker y RoboMaker (tus logs de la función de recompensa). • Analizar logs con cuadernos jupyter desarrollados por la comunidad:
  • 29. 💡 Trucos 1. Pricing: Primeras 10 horas gratis, resto 3,5€/h. Ahorro posible con Promo Codes, instancias EC2 Spot y entrenamiento en ordenador local. 2. Utiliza los Hiperparámetros por defecto del modelo. 3. Más fácil conseguir resultados con una función de recompensa sencilla. 4. El modelo aprende más rápido con funciones de recompensa continuas. Función discontinua Función continua
  • 30. 💡 Trucos 5. El modelo aprende más rápido con coches “limitados”: • Aprende más rápido el coche que solo puede ir a 1m/s, que un coche de 3-5 velocidades. Ídem para giros de volante (mejor 3 posiciones que 5, etc). • Pero al clonar un modelo entrenado no podemos cambiar de coche. • Idea: empezar con un coche que tenga muchas velocidades pero limitarlas en la función de recompensa.
  • 31. 💡 Trucos 6. Evaluar/Competir +1 vez por cada entrenamiento. 7. Empezar con una función de recompensa muy sencilla, hasta conseguir que el coche complete la vuelta. Después clonar el modelo y aplicar “extra” en la función de recompensa. • Ejemplo: • 1º Recompensar solo por ir centrado en la pista pero con velocidad fija. • 2º Clonar modelo. • 3º Entrenar el modelo clonado, recompensando también por progresar (≠ ir rápido). 8. Es más importante el “progreso” que la “velocidad”. • Ejemplo:
  • 33. 💡 Trucos V = 1m/s V = 2m/s
  • 34. 💡 Trucos V = 1m/s V = 2m/s
  • 36. 💡 Trucos 9. ¿1 modelo entrenado para cada circuito VS 1 modelo que generaliza? • Overfitting VS Generalizar 10. ¿El coche puede optimizar aún más la trazada? • https://github.com/cdthompson/deeprac er-k1999-race-lines
  • 37. 📋 Resumen • Intro a AWS DeepRacer y al Aprendizaje por Refuerzo. • Tipos de carreras. Empezaremos por contrarreloj en Open Division. • Coches. Entrenaremos al coche virtual, con un espacio de acciones limitado. • Función de recompensa. Empezar con función sencilla, entrenar modelo, evaluar, clonar modelo, ampliar la función de recompensa. • Importancia progreso vs velocidad. • Pricing, estimar coste diferentes opciones (AWS, EC2 spot, local). • Demo en AWS y en ordenador local. • Analíticas de carrera.
  • 38.
  • 39.
  • 40.
  • 41. 🔗 Links • AWS Deep Racer Community: https://deepracing.io • Repositorio: https://github.com/aws-deepracer-community/deepracer-for-cloud • AWS Deep Racer web: https://aws.amazon.com/deepracer • (E-LEARNING) AWS DeepRacer: Driven by Reinforcement Learning: https://www.aws.training/Details/eLearning?id=32143 • Grand Prix Final – AWS DeepRacer TV 2020 Championships: https://www.youtube.com/watch?v=lBj3PN91aqE
  • 42. ¡Gracias! AWS Deep Racer desde cero #awsvalencia Javier Campos @javichur javiercampos.es