Elias Bellouti
EN
← Retour aux projets

Projet personnel · Apprentissage par renforcement

DreamerV3 : apprendre la conduite simulée

Comment un agent peut-il apprendre à conduire à partir des images qu’il reçoit ? Pour l’expérimenter, j’ai raccordé le simulateur CarRacing à une implémentation existante de DreamerV3. Cet algorithme apprend un modèle de l’environnement et l’utilise pour entraîner sa politique de conduite. J’ai écrit l’adaptation des observations, commandes et épisodes, puis mené une campagne d’environ 41 heures sur GPU. Les courbes et la vidéo montrent la progression dans le cadre testé : un circuit unique, utilisé pendant l’entraînement et l’évaluation.

Environ 41 heures d’entraînement sur RTX 4060, avec métriques et vidéo de conduite sur un circuit unique.

L’agent boucle le circuit, vu à travers ses propres observations en 64 par 64.

Expérimenter la conduite à partir d’images

Dans CarRacing, l’agent reçoit une image de la piste et commande la direction, l’accélération et le freinage. J’ai utilisé ce simulateur pour expérimenter DreamerV3, qui apprend un modèle de son environnement puis entraîne sa politique sur des trajectoires imaginées avec ce modèle.

L’algorithme vient de Hafner et ses collaborateurs ; je me suis appuyé sur l’implémentation PyTorch de NM512. Mon travail porte sur l’intégration de CarRacing, sa configuration et la conduite de l’expérience. Cette répartition permet d’examiner séparément le fonctionnement de l’algorithme et les adaptations nécessaires pour lui fournir un environnement exploitable.

Adapter le contrat entre simulateur et agent

J’ai écrit un wrapper Python qui redimensionne les observations en 64 × 64, adapte les actions continues et gère leur répétition. Il transmet aussi les signaux de début et de fin d’épisode ainsi que l’information d’escompte attendue par l’agent.

Ces conventions donnent un sens aux transitions enregistrées : quelle image suit une action, quand une trajectoire commence et quand elle s’arrête. J’ai également raccordé la tâche à la sélection d’environnement et à la configuration de l’implémentation existante. Gymnasium fournit le simulateur ; le wrapper rend son interface compatible avec l’entraînement.

Mener et lire la campagne d’entraînement

La campagne totalise 1 010 668 pas d’environnement, soit environ 41 heures sur une RTX 4060. Le retour moyen des cent derniers épisodes atteint 855, contre environ −37 au départ. La perte de reconstruction enregistrée diminue de 437 à 1,62.

Ces indicateurs décrivent la progression dans cette expérience. La vidéo montre le meilleur épisode évalué, avec un circuit terminé en 339 pas. Elle restitue les observations en basse résolution utilisées par l’agent, ce qui permet de voir de quelles informations il disposait pour conduire.

Donner aux résultats leur portée exacte

Le wrapper réapplique la même graine à chaque réinitialisation : entraînement et évaluation utilisent donc un circuit unique. Le score décrit l’apprentissage sur cette piste, pas un résultat de référence CarRacing sur des circuits inédits.

J’ai conservé les métriques par épisode, les courbes et le code d’intégration pour rendre la campagne examinable. Ce travail m’a fait relier adaptation d’environnement, exécution d’un entraînement long et interprétation de mesures, avec un protocole dont la prochaine extension est une évaluation sur plusieurs circuits.

Intégration, métriques et reproduction

Les compétences mises en pratique

Machine learning et intégration IA

J’ai adapté CarRacing à l’implémentation DreamerV3 et entraîné un agent qui apprend à conduire depuis les images du simulateur.

Tests, évaluation et fiabilité

J’ai suivi les courbes d’apprentissage et analysé les retours de l’agent dans les conditions de la campagne, sur un circuit fixe.

← Retour aux projets