AWS DeepRacer : banalisation du Reinforcement Learning (RL)
AWS DeepRacer : banalisation du Reinforcement Learning (RL)
Principes de base
Le principe est simple, le graphe ci-dessous schématise le fonctionnement du RL et les acteurs :![](https://easyteam.fr/wp-content/uploads/2020/11/Reinforcement_learning_diagram.svg-300x290.png)
Image: Wikipédia
Un Agent robot, dans un environnement donné, prend des actions plus au moins bonnes, l’interpréteur fait part à l’agent des récompenses acquise (ou pénalités) et des paramètres de l’environnement. Donc, l’idée est que l’agent prenne beaucoup d’actions et constitue une base d’expériences qu’on appellera "Model". Ce Model sera amélioré au fur et à mesure des itérations pour faire des actions avec plus de récompenses, donc pertinentes. Mais on laisse quand même l’agent faire des actions arbitraires ou non contrôlées pour explorer de nouvelles possibilités que celle qu'il a pris l'habitude de prendre. En pratique, le grand défit est de définir ce qu'est une Récompense : c’est une fonction (reward function) qui selon l’observation des paramètres de l’environnement va retourner un score de la dernière action menée (Ex : -10 si on sort de la chaussée et +5 si on garde les 4 roues dans le couloir). Assez de théorie et place à l’amusement.AWS DeepRacer
AWS DeepRacer offre un service complet d’implémentation des Modèles RL pour des courses de voitures miniatures 1/18, très simple à utiliser pour s’initier au RL. Il suffit d’adapter une fonction d’évaluation pour faire sa propre « IA » de compétition, la simulation, gestion des capteurs d’environnement, l’environnement informatique les Frameworks (Tensorflow…) et la puissance de calcul sont encapsulés pour nous. Une fois le modèle est créé et entrainé, on peut l’utiliser en simulation ou dans une vraie mini-voiture de course pour tester et voir ses performances. Voici les quelques étapes pour créer un premier modèle RL de course :1. Création d'un nouveau Model avec le service DeepRacer
![](https://easyteam.fr/wp-content/uploads/2020/11/createModel.png)
2. Choix du type de course
![](https://easyteam.fr/wp-content/uploads/2020/11/race-agent.png)
3. Choix du circuit d'entrainement (Pas nécessairement celui de la compétition)
![](https://easyteam.fr/wp-content/uploads/2020/11/circuit.png)
4. Définition de la fonction de récompense (Python)
![](https://easyteam.fr/wp-content/uploads/2020/11/reward_function.png)
5. Validation et c'est parti pour une heure d'entrainement en mode accéléré
![](https://easyteam.fr/wp-content/uploads/2020/11/Training.png)
Pendant la durée d'entrainement, le graphe de suivi se met à jour pour voir l'avancée de l'apprentissage.
J'ai mis un graphe au début et le graphe final :
![](https://easyteam.fr/wp-content/uploads/2020/11/Graph.png)
![](https://easyteam.fr/wp-content/uploads/2020/11/GraphLast.png)
![](https://easyteam.fr/wp-content/uploads/2020/11/Simulation.png)