Apprendre à conduire: au-delà de la pure imitation

Par Mayank Bansal et Abhijit Ogale - Recherche Waymo

Chez Waymo, nous nous attachons à développer le pilote le plus expérimenté au monde. Et comme tout bon conducteur, notre véhicule doit percevoir et comprendre le monde qui l’entoure en reconnaissant les objets environnants et en prédisant ce qu’ils pourraient faire par la suite, avant de décider comment conduire en toute sécurité tout en respectant les règles de la circulation.

Ces dernières années, la formation supervisée de réseaux de neurones profonds utilisant de grandes quantités de données étiquetées a rapidement amélioré l'état de la technique dans de nombreux domaines, en particulier dans le domaine de la perception et de la prédiction d'objets, et ces technologies sont largement utilisées chez Waymo. . Suite au succès des réseaux de neurones pour la perception, nous nous sommes naturellement posé la question: étant donné que nous possédions des millions de données de conduite (à savoir des démonstrations de conduite d’experts), pouvons-nous former un conducteur qualifié en utilisant une approche d’apprentissage en profondeur purement supervisée?

Ce post - basé sur la recherche que nous venons de publier * - décrit une exploration pour repousser les limites de la manière dont nous pouvons utiliser des données expertes pour créer un réseau de neurones capable non seulement de conduire la voiture dans des situations difficiles en simulation, mais également fiable assez pour conduire un vrai véhicule à notre installation d'essai privée. Comme décrit ci-dessous, la simple imitation d'un grand nombre de démonstrations d'experts ne suffit pas pour créer une technologie de conduite autonome capable et fiable. Au lieu de cela, nous avons constaté qu’il était intéressant d’améliorer la perception et le contrôle afin de simplifier la tâche d’apprentissage, d’informer le modèle avec des pertes supplémentaires et de simuler le mauvais plutôt que de simplement imiter le bien.

Création de ChauffeurNet: un réseau de neurones récurrent pour la conduite

Afin de conduire en imitant un expert, nous avons créé un réseau de neurones récurrents profonds (RNN) appelé ChauffeurNet, formé pour émettre une trajectoire de conduite en observant une représentation de niveau intermédiaire de la scène. Une représentation de niveau moyen n'utilise pas directement les données de capteur brutes, ce qui élimine la tâche de perception et nous permet de combiner des données réelles et simulées pour un apprentissage par transfert plus facile. Comme le montre la figure ci-dessous, cette représentation d'entrée consiste en une vue de haut en bas de l'environnement contenant des informations telles que la carte, les objets environnants, l'état des feux de circulation, le mouvement passé de la voiture, etc. sur. Le réseau reçoit également un itinéraire de type Google Maps qui le guide vers sa destination.

ChauffeurNet génère un point le long de la future trajectoire de conduite lors de chaque itération, tout en écrivant le point prévu dans une mémoire utilisée lors de la prochaine itération. En ce sens, le RNN n'est pas traditionnel, car le modèle de mémoire est explicitement conçu. La trajectoire de sortie de ChauffeurNet, qui consiste en dix points futurs, est ensuite transmise à un contrôleur de bas niveau qui le convertit en commandes de contrôle telles que la direction et l’accélération lui permettant de conduire la voiture.

En outre, nous avons utilisé une tête distincte «PerceptionRNN» qui prédit de manière itérative l’avenir d’autres objets en mouvement dans l’environnement. Ce réseau partage les mêmes caractéristiques que le RNN qui prédit notre propre conduite. Une possibilité future est un entrelacement plus profond du processus de prévision des réactions d’autres agents tout en choisissant notre propre trajectoire de conduite.

Entrées et sorties rendues pour le modèle de conduite. Rangée du haut, de gauche à droite: feuille de route, feux de circulation, limite de vitesse et itinéraire. Rangée du bas, de gauche à droite: Zone Agent actuel, Zones dynamiques, Poses d'agent passé et Poses d'agent futur en sortie.ChauffeurNet a deux parties internes, le FeatureNet et le AgentRNN. AgentRNN utilise une image avec un rendu des positions de l’agent passé, un ensemble de caractéristiques calculées par un réseau de convolution «FeatureNet» à partir des entrées restituées, une image avec le dernier rendu de la boîte d’agent et une mémoire explicite avec un rendu des valeurs prédites. le futur agent pose pour prédire la prochaine pose de l'agent et la prochaine case de l'agent dans la vue de haut en bas. Ces prédictions sont utilisées pour mettre à jour les entrées dans AgentRNN afin de prédire l’heure suivante.

Imiter le bien

Nous avons formé le modèle à l'aide d'exemples représentant l'équivalent d'environ 60 jours de données de conduite expertes, tout en incluant des techniques de formation telles que le décrochage par mouvement antérieur, afin de garantir que le réseau ne continue pas simplement à extrapoler à partir de son mouvement précédent et à répondre correctement à l'environnement. . Comme beaucoup d’entre nous l’ont découvert, y compris le projet ALVINN dans les années 80, le modèle proposé par l’expert est un modèle qui fonctionne sans heurts tant que la situation ne dévie pas trop de ce qui a été vu lors de la formation. Le modèle apprend à réagir correctement aux contrôles de la circulation, tels que les panneaux d'arrêt et les feux de circulation. Cependant, des déviations telles que l’introduction de perturbations dans la trajectoire ou sa mise en quasi-collision la conduisent à un comportement médiocre. En effet, même entraîné avec de grandes quantités de données, il n’a peut-être jamais vu ces situations exactes pendant l’entraînement.

Un agent formé à l’apprentissage par imitation pure se coince derrière un véhicule garé (à gauche) et est incapable de récupérer d’une déviation de trajectoire lorsqu’il conduit sur une route courbe (à droite). Le chemin des sarcelles représente la route d’entrée, la boîte jaune est un objet dynamique dans la scène, la boîte verte est l’agent, les points bleus sont les positions passées de l’agent et les points verts sont les positions futures prédites.

Synthétiser le mauvais

Les démonstrations de conduite d’experts obtenues à partir de la conduite réelle ne contiennent généralement que des exemples de conduite dans de bonnes situations, car pour des raisons évidentes, nous ne voulons pas que nos chauffeurs experts s’engagent dans des quasi-collisions ou grimpent juste pour montrer à un réseau de neurones comment récupérer. dans ces cas. Pour former le réseau à sortir des zones difficiles, il est alors judicieux de simuler ou de synthétiser des données d'entraînement appropriées. Une façon simple de faire cela consiste à ajouter des cas où nous perturbons la trajectoire de conduite par rapport à ce que l'expert a réellement fait. La perturbation est telle que les points de départ et d'arrivée de la trajectoire restent les mêmes, l'écart se produisant principalement au centre. Ceci enseigne au réseau de neurones comment récupérer des perturbations. De plus, ces perturbations génèrent des exemples de collisions synthétiques avec d'autres objets ou les trottoirs, et nous enseignons au réseau à les éviter en ajoutant des pertes explicites qui découragent de telles collisions. Ces pertes nous permettent de tirer parti des connaissances du domaine pour orienter l'apprentissage vers une meilleure généralisation dans des situations nouvelles.

Perturbation de la trajectoire en tirant sur l'emplacement actuel de l'agent (point rouge) en l'éloignant du centre de la voie, puis en adaptant une nouvelle trajectoire lisse ramenant l'agent à l'emplacement cible d'origine le long du centre de la voie.

Ce travail illustre une façon d'utiliser des données synthétiques. Au-delà de notre approche, des simulations approfondies de situations très interactives ou rares peuvent être effectuées, accompagnées d'un réglage de la politique de conduite à l'aide de l'apprentissage par renforcement (RL). Cependant, pour que RL soit compatible, nous devons modéliser avec précision le comportement réel d'autres agents de l'environnement, y compris d'autres véhicules, des piétons et des cyclistes. Pour cette raison, nous nous concentrons sur une approche d'apprentissage purement supervisé dans le présent travail, en gardant à l'esprit que notre modèle peut être utilisé pour créer des «agents intelligents» au comportement naturel pour amorcer RL.

Résultats expérimentaux

Nous avons vu comment le modèle purement imité-appris n'a pas réussi à se déplacer autour d'un véhicule garé et s'est coincé lors d'un écart de trajectoire ci-dessus. Avec le jeu complet d’exemples synthétisés et les pertes auxiliaires, notre modèle ChauffeurNet complet peut maintenant contourner avec succès le véhicule garé (à gauche) et récupérer de l’écart de trajectoire pour continuer sans à-coups le long de la route courbe (à droite).

Dans les exemples ci-dessous, nous démontrons la réponse de ChauffeurNet aux facteurs de causalité corrects pour les exemples consignés dans un réglage en boucle fermée au sein de notre simulateur. Dans l'animation de gauche, nous voyons l'agent ChauffeurNet s'arrêter complètement avant un panneau stop (marqueur rouge). Dans l'animation de droite, nous supprimons le panneau d'arrêt de la route rendue et veillons à ce que l'agent ne s'arrête plus complètement, en vérifiant que le réseau répond aux facteurs de causalité corrects.

Dans l'animation à gauche ci-dessous, nous voyons l'agent ChauffeurNet s'arrêter derrière d'autres véhicules (boîtes jaunes), puis continuer au fur et à mesure que les autres véhicules avancent. Dans la bonne animation, nous supprimons les autres véhicules de l’entrée restituée et veillons à ce que l’agent continue naturellement le long du chemin, puisqu’il n’y a aucun autre objet sur son chemin, ce qui permet de vérifier la réponse du réseau aux autres véhicules de la scène.

Dans l'exemple ci-dessous, l'agent ChauffeurNet s'arrête pour un feu de signalisation passant du jaune au rouge (notez le changement d'intensité du rendu des feux de circulation représenté par les courbes le long des centres des voies) au lieu de suivre aveuglément les autres véhicules.

Après des tests en simulation, nous avons remplacé nos modules de planification primaires par ChauffeurNet et les avons utilisés pour conduire une mini-fourgonnette Chrysler Pacifica sur notre piste d’essai privée. Ces vidéos montrent le véhicule qui suit avec succès une voie incurvée et qui gère les panneaux d'arrêt et les virages.

L'exemple ci-dessous illustre les prévisions de PerceptionRNN sur un exemple enregistré. Rappelez-vous que PerceptionRNN prédit le mouvement futur d’autres objets dynamiques. Les traînées rouges indiquent les trajectoires passées des objets dynamiques dans la scène; les traînées vertes indiquent les trajectoires prédites deux secondes dans le futur, pour chaque objet.

La longue queue, la causalité et l'apprentissage continu

Les systèmes de conduite entièrement autonomes doivent être capables de gérer la longue queue de situations qui se produisent dans le monde réel. Bien que l'apprentissage en profondeur connaisse un succès considérable dans de nombreuses applications, le traitement des situations avec des données de formation rares reste un problème ouvert. En outre, l’apprentissage en profondeur identifie des corrélations dans les données d’apprentissage, mais il ne peut sans doute pas construire de modèles de causalité en se contentant d’observer des corrélations et sans avoir la capacité de tester activement des scénarios contrefactuels en simulation. Il est essentiel de savoir pourquoi un conducteur expert s'est comporté de la sorte et à quoi il réagissait pour créer un modèle de conduite responsable. Pour cette raison, il ne suffit pas d'avoir un grand nombre de démonstrations d'experts à imiter. Comprendre les raisons permet de savoir comment améliorer un tel système, ce qui est particulièrement important pour les applications critiques pour la sécurité. En outre, si ces améliorations peuvent être effectuées de manière incrémentielle et ciblée, un système peut continuer à apprendre et à s'améliorer indéfiniment. Cet apprentissage continu tout au long de la vie est un domaine de recherche actif dans la communauté de l'apprentissage automatique.

Le planificateur qui utilise aujourd'hui les véhicules Waymo utilise une combinaison d'apprentissage automatique et de raisonnement explicite pour évaluer en permanence un grand nombre de possibilités et prendre les meilleures décisions de conduite dans divers scénarios, qui ont été affinés sur plus de 10 millions de kilomètres d'essais routiers publics. et des milliards de miles en simulation. Par conséquent, la barre pour un système complètement automatisé remplaçant le planificateur Waymo est incroyablement haute, bien que les composants d’un tel système puissent être utilisés dans le planificateur Waymo ou pour créer des «agents intelligents» plus réalistes lors de tests simulés. le planificateur.

La gestion de situations complexes, la compréhension du lien de causalité et l'apprentissage continu tout au long de la vie sont des sujets de recherche active chez Waymo, ainsi que dans la communauté plus large de l'apprentissage automatique. Nous sommes toujours à la recherche de chercheurs talentueux pour nous aider à résoudre ces problèmes difficiles d’apprentissage automatique. Contactez donc waymo.com/joinus.

Pour plus de détails sur ce travail, veuillez consulter notre article:

* ChauffeurNet: apprendre à conduire en imitant le meilleur et en synthétisant le pire
Mayank Bansal, Alex Krizhevsky, Abhijit Ogale
(Matériel complémentaire)