AutoML: Automatisation de la conception de modèles d'apprentissage machine pour la conduite autonome

Par: Shuyang Cheng et Gabriel Bender *

Chez Waymo, l’apprentissage automatique joue un rôle clé dans presque toutes les parties de notre système d’auto-conduite. Cela aide nos voitures à voir leur environnement, à donner un sens au monde, à prédire comment les autres se comporteront et à décider de leur meilleur mouvement.

Prenez la perception: notre système utilise une combinaison de réseaux de neurones qui permet à nos véhicules d’interpréter les données des capteurs afin d’identifier les objets et de les suivre au fil du temps, afin de pouvoir comprendre en profondeur le monde qui l’entoure. La création de ces réseaux de neurones est souvent une tâche fastidieuse. Optimiser les architectures de réseaux neuronaux pour atteindre à la fois la qualité et la vitesse requise pour fonctionner sur nos voitures autonomes est un processus complexe de mise au point qui peut prendre des mois à nos ingénieurs pour une nouvelle tâche.

Maintenant, grâce à une collaboration avec les chercheurs Google AI de l'équipe Cerveau, nous mettons en pratique des recherches de pointe pour générer automatiquement des réseaux de neurones. De plus, ces réseaux de neurones à la pointe de la technologie sont de meilleure qualité et plus rapides que ceux qui ont été ajustés manuellement par les ingénieurs.

Pour que notre technologie de conduite autonome puisse être utilisée dans différentes villes et environnements, nous devrons optimiser nos modèles pour différents scénarios avec une grande rapidité. AutoML nous permet de faire exactement cela, en fournissant un large éventail de solutions ML de manière efficace et continue.

Transfert d'apprentissage: Utilisation des architectures AutoML existantes

Notre collaboration a débuté par une question simple: AutoML pourrait-il générer un réseau neuronal de haute qualité et à faible temps de latence pour la voiture?

La qualité mesure la précision des réponses produites par le réseau de neurones. La latence mesure la rapidité avec laquelle le réseau fournit ses réponses, également appelé temps d'inférence. La conduite étant une activité nécessitant que nos véhicules utilisent des réponses en temps réel et compte tenu de la nature critique de notre système pour la sécurité, nos réseaux de neurones doivent fonctionner avec un temps de latence faible. La plupart de nos réseaux utilisant directement nos véhicules fournissent des résultats en moins de 10 ms, ce qui est plus rapide que de nombreux réseaux déployés dans des centres de données exécutés sur des milliers de serveurs.

Dans leur document AutoML original [1], nos collègues de Google AI ont été en mesure d'explorer automatiquement plus de 12 000 architectures pour résoudre la tâche classique de reconnaissance d'image de CIFAR-10: identifier une petite image en tant que représentant d'une des dix catégories, telle qu'une voiture. , un avion, un chien, etc. Dans un article de suivi [2], ils ont découvert une famille de blocs constitutifs de réseaux neuronaux, appelés cellules NAS, qui pourraient être composés pour construire automatiquement mieux que les filets fabriqués à la main pour CIFAR-10. et des tâches similaires. Avec cette collaboration, nos chercheurs ont décidé d’utiliser ces cellules pour créer automatiquement de nouveaux modèles pour des tâches spécifiques à la conduite autonome, transférant ainsi les connaissances acquises sur CIFAR-10 à notre domaine. Notre première expérience consistait en une tâche de segmentation sémantique: identifier chaque point d’un nuage de points LiDAR comme une voiture, un piéton, un arbre, etc.

Un exemple de cellule NAS. Cette cellule traite les entrées des deux couches précédentes dans un réseau de neurones.

Pour ce faire, nos chercheurs ont mis en place un algorithme de recherche automatique afin d'explorer des centaines de combinaisons de cellules NAS différentes au sein d'une architecture réseau convolutionnelle (CNN), de former et d'évaluer des modèles pour notre tâche de segmentation LiDAR. Lorsque nos ingénieurs peaufinent manuellement ces réseaux, ils ne peuvent explorer qu'un nombre limité d'architectures, mais avec cette méthode, nous en avons automatiquement exploré des centaines. Nous avons trouvé des modèles qui amélioraient les modèles fabriqués à la main de deux manières:

  • Certains avaient une latence sensiblement inférieure avec une qualité similaire.
  • D'autres avaient une qualité encore supérieure avec une latence similaire.

Compte tenu de ce succès initial, nous avons appliqué le même algorithme de recherche à deux tâches supplémentaires liées à la détection et à la localisation des voies de circulation. La technique d'apprentissage par transfert a également fonctionné pour ces tâches et nous avons pu déployer trois réseaux de neurones nouvellement formés et améliorés sur la voiture.

Recherche de bout en bout: Rechercher de nouvelles architectures à partir de zéro

Ces premiers résultats nous ont encouragés. Nous avons donc décidé d'aller plus loin en recherchant plus largement des architectures totalement nouvelles susceptibles de fournir des résultats encore meilleurs. En ne nous limitant pas à combiner les cellules NAS déjà découvertes, nous pourrions rechercher plus directement des architectures qui tiennent compte de nos exigences de latence strictes.

Effectuer une recherche de bout en bout nécessite généralement d'explorer manuellement des milliers d'architectures, ce qui entraîne des coûts de calcul élevés. Explorer une architecture unique nécessite plusieurs jours de formation sur un ordinateur de centre de données avec plusieurs cartes GPU, ce qui signifie qu'il faudrait des milliers de jours de calcul pour rechercher une seule tâche. Au lieu de cela, nous avons conçu une tâche proxy: une tâche de segmentation LiDAR réduite qui pourrait être résolue en quelques heures seulement.

L'un des problèmes que l'équipe a dû surmonter était de trouver une tâche proxy suffisamment similaire à notre tâche de segmentation d'origine. Nous avons expérimenté plusieurs conceptions de tâches proxy avant de pouvoir établir une bonne corrélation entre la qualité des architectures de cette tâche et celles de la tâche d'origine. Nous avons ensuite lancé une recherche similaire à celle du document AutoML d'origine, mais maintenant sur la tâche proxy: une recherche proxy de bout en bout. C'était la première fois que ce concept était appliqué aux données LiDAR.

Recherche de bout en bout de proxy: explorez des milliers d'architecture sur une tâche de proxy réduite, appliquez les 100 meilleures à la tâche d'origine, validez et déployez le meilleur des meilleures architectures sur la voiture.

Nous avons utilisé plusieurs algorithmes de recherche, optimisant la qualité et la latence, ce qui est essentiel pour le véhicule. En examinant différents types d'architectures CNN et en utilisant différentes stratégies de recherche, telles que la recherche aléatoire et l'apprentissage par renforcement, nous avons pu explorer plus de 10 000 architectures différentes pour la tâche proxy. En utilisant la tâche proxy, ce qui aurait pris plus d'un an de temps de calcul sur un cluster Google TPU n'a pris que deux semaines. Nous avons trouvé des réseaux encore meilleurs qu’auparavant lorsque nous venions de transférer les cellules NAS:

  • Les réseaux neuronaux avec une latence inférieure de 20 à 30% et des résultats de même qualité.
  • Réseaux de neurones de qualité supérieure, avec un taux d'erreur inférieur de 8 à 10%, avec la même latence que les architectures précédentes.
1) Le premier graphique montre environ 4 000 architectures découvertes grâce à une recherche aléatoire sur un ensemble simple d'architectures. Chaque point est une architecture qui a été formée et évaluée. La ligne continue marque les meilleures architectures avec différentes contraintes de temps d'inférence. Le point rouge indique la latence et les performances du réseau construit avec l’apprentissage par transfert. Dans cette recherche aléatoire, les filets n'étaient pas aussi bons que celui de l'apprentissage par transfert. 2) Dans le deuxième graphique, les points jaunes et bleus indiquent les résultats de deux autres algorithmes de recherche. Le jaune était une recherche aléatoire sur un ensemble raffiné d'architectures. La bleue a utilisé l'apprentissage par renforcement comme dans [1] et a exploré plus de 6 000 architectures. Cela a donné les meilleurs résultats. Ces deux recherches supplémentaires ont permis de trouver des réseaux nettement meilleurs que ceux issus de l'apprentissage par transfert.

Certaines des architectures trouvées dans la recherche ont montré des combinaisons créatives d'opérations de convolution, de mise en commun et de déconvolution, telles que celle présentée dans la figure ci-dessous. Ces architectures ont finalement très bien fonctionné pour notre tâche de segmentation LiDAR originale et seront déployées sur les véhicules autonomes de Waymo.

Une des architectures de réseau de neurones découvertes par la recherche de bout en bout par proxy.

Et après

Nos expérimentations AutoML ne sont que le début. Pour nos tâches de segmentation LiDAR, le transfert d'apprentissage et la recherche de bout en bout par procuration ont fourni des réseaux mieux adaptés que ceux fabriqués à la main. Nous avons maintenant la possibilité d'appliquer ces mécanismes à de nouveaux types de tâches, ce qui pourrait améliorer de nombreux autres réseaux de neurones.

Ce développement ouvre de nouvelles et passionnantes pistes pour nos futurs travaux sur le BC et améliorera les performances et les capacités de notre technologie de conduite autonome. Nous sommes impatients de poursuivre notre travail avec Google AI. Restez à l'affût pour en savoir plus!

Références

[1] Barret Zoph et Quoc V. Le. Recherche d'architecture neuronale avec apprentissage par renforcement. ICLR, 2017.

[2] Barret Zoph, Vijay Vasudevan, Jonathon Shlens, Quoc V. Le, Apprentissage des architectures transférables pour la reconnaissance d’image évolutive. CVPR, 2018.

* Remerciements

Cette collaboration entre Waymo et Google a été initiée et parrainée par Matthieu Devin de Waymo et Quoc Le de Google. Le travail a été dirigé par Shuyang Cheng de Waymo et Gabriel Bender et Pieter-jan Kindermans de Google. Un merci supplémentaire pour le soutien de Vishy Tirumalashetty.

Membres des équipes Waymo et Google (à partir de la gauche): Gabriel Bender, Shuyang Cheng, Matthieu Devin et Quoc Le