
Des réseaux de neurones artificiels pour aider les robots à comprendre leur environnement
Écoutez l’interview de Karteek Alahari
Retranscription
Lorenzo Jacques pour Interstices : Chers auditeurs et auditrices, bienvenue dans le 103ᵉ épisode du podcast Interstices. Depuis plusieurs années maintenant, l’utilisation de réseaux de neurones se généralise pour apporter des solutions à une myriade de problèmes, par exemple pour générer du texte ou pour reconnaître des images. Pour parler de ses recherches, je reçois aujourd’hui Karteek Alahari. Karteek Alahari, bonjour.
Karteek Alahari : Bonjour.
Interstices : Karteek Alahari, vous êtes chercheur au sein de l’équipe THOTH du Centre Inria de l’Université Grenoble Alpes et vous êtes le responsable du projet de l’Agence nationale de la Recherche AVENUE. Ce projet vise à permettre à des robots de comprendre l’espace qui les entoure de façon à ce qu’ils puissent s’y déplacer. On utilise pour cela des réseaux de neurones. C’est bien ça ?
Karteek Alahari : C’est tout à fait ça.
Interstices : Donc ces réseaux de neurones, ils sont artificiels. Karteek Alahari, comment est-ce qu’on fabrique un réseau de neurones artificiels ?
Karteek Alahari : Alors donc là, il faut décrire ce qui se passe dans le réseau de neurones. L’idée, c’est d’émuler (simuler) ce qui existe déjà dans notre cerveau. On ne sait pas tout ce qui se passe exactement dans notre cerveau, mais on sait qu’il y a plusieurs nœuds ou des neurones qui sont interconnectés. Donc on essaie d’émuler ça en informatique. Et si on veut voir visuellement ce qu’est un réseau de neurones, il y a des couches dans le réseau de neurones. Donc il y a une entrée qui peut être l’image qu’on veut comprendre, c’est-à-dire comprendre ce qui se passe dans l’image, ou si c’est une vidéo, ce qui se passe tout au long de la vidéo et en sortie, on a notre réponse. Par exemple pour décrire que vous voyez un tel objet, il y a telle voiture qui se déplace. Et du coup, à l’intérieur, il y a des couches intermédiaires, chaque couche en entrée et en sortie et dedans il y a des paramètres qui vont prendre l’entrée et le transformer, comme la sortie.
Interstices : Quelle est la différence entre un programme « classique » et un programme basé sur un réseau de neurones ?
Karteek Alahari : Dans les deux cas, il y a des instructions. Il y a des opérations en fait qu’on essaie de résoudre dans chacun des programmes. Dans le cas de réseaux de neurones, les opérations sont très spécifiques. Il y a un certain type de calculs qu’on fait pour un réseau de neurones et pour un autre programme, on va faire d’autres types de calculs. C’est juste deux façons différentes de faire des calculs.
Prenons un exemple d’apprentissage. Je veux prédire si une telle image décrit un chat ou un chien par exemple. Donc ça c’est mon entrée, une image qui contient des chats ou des chiens ou autre chose, et comme sortie, je vais dire si c’est un chat ou un chien. On a une base de données, une base d’apprentissage de données avec des images. Chaque image est aussi étiquetée par une étiquette qui dit si ça contient un chat ou si ça contient un chien.
On va prendre toutes ces images-là avec leurs propres étiquettes et on va utiliser cette base pour apprendre au réseau. Ce qu’on fait, on passe une image comme entrée d’un réseau qui n’est peut-être au départ pas du tout appris, donc il y a des paramètres qui sont initialisés un peu aléatoirement et on essaie de passer l’image une après l’autre et de prédire en fait la réponse. Au départ, le réseau va complètement planter et il va nous donner des réponses qui n’ont rien à voir avec les images d’entrée parce qu’il n’a pas été appris. Par contre, ça c’est une prédiction. Et on utilise la prédiction et on compare la prédiction avec la vérité de terrain ou ce que contient vraiment l’image. Après, on trouve que voilà, il y a une différence entre la prédiction et la vraie étiquette en fait qui est pour cette image là, on calcule cette différence et après on fait passer par une étape qui s’appelle la rétro-propagation pour mettre à jour tous les paramètres en fonction de la réponse. Ce sont des itérations. Je vais commencer par une initialisation, ensuite, je vais regarder quelle est l’erreur produite par ces valeurs de paramètres et puis je vais mettre à jour ces paramètres en fonction d’une modulation de terrain qui est commise. Donc ça, c’est une itération. Et après je vais prendre un autre exemple, je vais voir quelle est l’erreur produite par les nouvelles valeurs de mes paramètres, et après, ainsi de suite, je vais continuer ces étapes-là pour minimiser à la fin la différence entre la prédiction et la vérité de terrain. Une fois qu’on a fait ça avec plusieurs images, en fait c’est des milliers d’images qu’on a besoin en fonction de la taille du réseau neurones. Et on peut dire qu’après toutes ces étapes là, le réseau est prêt à prédire les réseaux de neurones.
Interstices : Les réseaux de neurones, on l’a dit, ils peuvent servir à beaucoup de choses très différentes, mais à la base, il s’agit du même réseau de neurones et la seule différence, c’est la façon dont il a été entraîné ?
Karteek Alahari : Pas tout à fait, parce qu’un réseau de neurones est beaucoup décrit par la structure du réseau. En fonction de la complexité du problème qu’on veut résoudre, on va varier la structure de réseau de neurones. Par exemple, ça peut être simplement le nombre de couches qui sont dans le réseau de neurones. Ça peut être aussi comment sont reliées ces couches dans le réseau de neurones. Ça, ça va aussi changer en fait le nombre de paramètres qui sont dans le réseau de neurones. On peut avoir un réseau de neurones juste avec deux couches, avec des centaines de paramètres. On peut avoir un réseau de neurones avec des milliers de couches, avec des milliards de paramètres dedans. Donc ce ne sont pas les mêmes réseaux de neurones dans les deux cas mais on peut dire que c’est le même algorithme en fait d’apprentissage qu’on utilise dans tous les cas, c’est l’algorithme de rétro-propagation. Donc ce ne sont pas les mêmes réseaux, c’est juste l’apprentissage pour lequel il y a des nuances, des fines différences, mais en gros c’est le même algorithme. C’est juste que les réseaux peuvent varier en fonction des problèmes qu’on veut attaquer.
Interstices : Et ces bases de données, d’où est-ce qu’elles viennent ?
Karteek Alahari : L’existence de ces bases de données — je parle ici du monde visuel, du monde d’image et de vidéo, c’est aussi une des grandes raisons de l’explosion du réseau de neurones qu’on voit actuellement. Parce que avant, on n’avait pas ces bases de données là pour apprendre des modèles aussi grands. Du coup, elles sont produites par plusieurs acteurs on va dire, des acteurs qui sont dans le monde académique, des acteurs privés, mais aussi à la base, pour vous donner un exemple, c’est la première base de donnée visuelle qui a été beaucoup, beaucoup utilisée dans le monde du réseau de neurones, c’est la base de données ImageNet qui contient des millions d’images. Ils ont collecté des images sur Internet et après, l’étape qui est aussi également importante, c’est d’étiqueter ces images. Là en fait, on crée une tâche, en regardant une image, on va simplement lister les objets qui sont présents dans l’image. Ça, c’est la tâche que quelqu’un va accomplir. Là, on va mettre cette tâche sur une plateforme et après on peut voir tout le monde dans le monde qui peuvent aller étiqueter ces images là. Donc, ils sont payés très très peu, quelques centimes par image au max. Et après il y a des phases de vérification. L’idée, c’est de classifier une image en temps que, « décrivez-moi toutes les classes qui sont présentes dans telle image », c’est-à-dire les objets, par exemple un chat, un chien, ou une personne ou une voiture. Ça c’est très dépendant on va dire de l’application. Si c’est une application pour les voitures autonomes, là les classes vont plutôt être décrites sur les scènes qu’on voit à l’extérieur, sur les routes, donc plutôt des arbres ou des humains, des piétons, des cyclistes, etc.
Interstices : Et donc, dans le cadre de l’ANR AVENUE, on cherche à réaliser un réseau de neurones qui soit capable de comprendre une scène ?
Karteek Alahari : Absolument. On sait quand on regarde une scène, il y a une table, je ne peux pas passer à travers, je fais le tour de table et donc pareil, est-ce que les agents peuvent apprendre ça automatiquement ? Un exemple, c’était de calculer en fait la profondeur dans la scène quand on a une vidéo. Là, c’est un exemple qui peut être utilisé dans les voitures autonomes où on veut dire voilà, je vois cette vidéo qui a été capturée devant la voiture, là je veux bien estimer en fait quelle est la profondeur de chaque objet que je vois dans la scène. L’entrée ici c’est une vidéo, et ensuite la sortie c’est de donner une valeur pour chaque pixel dans la vidéo en disant, voilà ça c’est la distance entre la voiture et l’objet que je vois à tel endroit dans cette vidéo. Pour faire ça, il faut des données qui sont étiquetées. Il nous faut beaucoup de données en général et avec des sorties comme les profondeurs aux valeurs de profondeur pour chacun des pixels dans la vidéo. C’est très difficile, parce que pour créer ces bases de données, on ne peut pas mettre tous les capteurs de profondeur, parce que ça coûte très cher d’avoir ces outils-là et de capturer ces données-là. Et ça, ça va être un peu le thème qui est tout au long du projet, d’utiliser en fait des étiquettes qui sont moins coûteuses. Par exemple, il y a des LiDAR qui peuvent nous donner des indices sur la distance entre la voiture et des objets qui sont devant.
Interstices : Qu’est-ce que c’est un LiDAR ?
Karteek Alahari : Un LiDAR (pour light detection and ranging), c’est un capteur qui capture l’information de distance. Ça projette des lasers dans l’espace pour dire, voici la distance entre la voiture et où s’est arrêté mon laser. Ces LiDAR de 64 couches peuvent être très onéreux au niveau des coûts, mais il y a des LiDAR qui ne sont par exemple pas très denses, qui coûtent moins chers pour faire des prédictions, pas partout dans la scène mais dans quelques endroits. Donc ça va apparaître en fait dans les données comme quatre lignes où on a des estimations de profondeur.
Interstices : Donc l’idée c’est d’utiliser ces LiDAR à faibles couches qui sont peu coûteux pour étiqueter les bases de données, plutôt que de demander à des gens de regarder ces vidéos et de donner l’estimation de profondeur à chaque fois ?
Karteek Alahari : Absolument. On va créer des données et des étiquettes avec ces capteurs, mais ça ne va pas être parfait. On a des étiquettes qui ne sont pas partout et pas dans toutes les images, ce n’est pas à tous les endroits dans l’image. Et du coup, comment apprendre maintenant aux mêmes réseaux de neurones qui ont besoin de beaucoup de données étiquetées ? Est-ce qu’on peut transformer ces besoins vers des données qui ne sont pas étiquetées partout, qui ne sont pas parfaites non plus ? Ça, c’était une des approches qu’on avait proposées dans ce projet ANR.
Interstices : Karteek Alahari, vous êtes le responsable du projet de l’Agence nationale de recherche AVENUE. Ces projets, ils ont une durée de vie de quatre ans, Celui-là est déjà arrivé à son terme. La question est donc, est-ce que vous avez réussi à produire des réseaux de neurones qui sont capables d’estimer les distances et les profondeurs ?
Karteek Alahari : Euh je ne dirai pas qu’on a réussi à 100 % mais on a beaucoup avancé. On a fait un pas vers ces résultats-là. Par exemple, pour l’estimation des profondeurs, on est passé des LIDAR de 64 couches qui sont des LiDAR très très onéreux vers des LiDAR de quatre couches mais est-ce qu’on a un résultat qui est à 100 % fiable ? Non, pas tout le temps, mais on a déjà réduit la nécessité d’avoir un LiDAR qui a 64 couches. Si on a plus entre quatre et 64, le résultat va s’améliorer et du coup ce n’est pas 100 % avec quatre couches.
Interstices : On assiste presque à une course à la performance entre les différents grands acteurs des intelligences artificielles. Où est-ce que vous vous placez au sein de cette course ? Est-ce que vous en faites partie ou est-ce qu’au contraire, vous cherchez à résoudre d’autres problèmes, d’autres façons ?
Karteek Alahari : Alors je pense que tout le monde qui fait de l’intelligence artificielle est dans la course. Après, on peut attaquer le problème différemment aussi parce qu’il y a des choses qu’on ne peut pas aborder dans le monde économique. Si on prend un gros modèle avec plusieurs milliards de paramètres, nous, on n’a pas de ressources en fait pour faire tourner ces modèles. Par contre, il y a beaucoup d’autres problèmes qui nous intéressent. Par exemple, vous utilisez un gros modèle, est-ce qu’on peut le simplifier vers un modèle qui est un peu plus petit mais qui est aussi performant ? On cherche pas à être à 100 %, mais quelque chose qui est fiable et à un coût qui est beaucoup réduit.
Interstices : On l’a dit au début de ce podcast, les réseaux de neurones peuvent être utilisés pour une grande variété de choses. On peut s’en servir pour produire du texte. On peut s’en servir comme vous l’avez fait pour analyser des images et en déduire une perception de l’espace. Est-ce que bientôt une intelligence artificielle pourra produire des podcasts pour Interstices.info ?
Karteek Alahari : C’est très intéressant comme but. Si on a suffisamment de données par exemple, je pense que pour ce podcast, vous avez regardé les travaux de l’ANR AVENUE, donc on peut imaginer un réseau de neurones qui peut regarder tous ces travaux-là et générer des questions qui seraient intéressantes pour discuter. Après, est-ce que le réseau va être aussi capable d’intervenir et de changer et de s’adapter avec des nouvelles questions ? Ça, c’est à voir mais ce n’est pas impossible.
Interstices : Et pour la recherche ?
Karteek Alahari : Ça a déjà un impact sur la façon de faire de la recherche. Pour trouver la bibliographie, peut-être pour résumer des articles, il y a des outils qu’on voit passer. Alors, ça ne pose pas encore les questions, je dis bien encore, parce que ça peut évoluer, ça ne pose pas des questions que nous on pose en tant que chercheurs et chercheuses dans le domaine. Je vois ça plutôt comme un outil que comme quelque chose qui va nous remplacer. Mais quelle est la prochaine question de recherche à explorer ? Même nous on ne sait pas. Est-ce qu’un réseau va être capable de le dire ? Peut-être qu’il va nous donner des suggestions. Est-ce que ces suggestions-là vont être mieux que ce que nous on peut faire ? Ça c’est à voir. En fait, pour un réseau, tout dépend de ce qui a été fourni comme entrée, comme base de données d’entraînement. Donc pour un nouveau domaine de recherche, il n’y aura pas suffisamment de données. Donc il nous faut des chercheurs et des chercheuses qui explorent ces questions-là.
Interstices : Eh bien, en attendant, nous allons arriver à la fin de ce podcast. Merci beaucoup Karteek Alahari d’avoir répondu à nos questions !
Karteek Alahari : Merci de m’avoir invité.
Interstices : Et à bientôt sur Interstices.
Karteek Alahari : À bientôt, au revoir.
Interstices : Chers auditeurs et auditrices, à la prochaine et n’oubliez pas les sciences du numérique sur Interstices.
Newsletter
Le responsable de ce traitement est Inria. En saisissant votre adresse mail, vous consentez à recevoir chaque mois une sélection d'articles et à ce que vos données soient collectées et stockées comme décrit dans notre politique de confidentialité
Niveau de lecture
Aidez-nous à évaluer le niveau de lecture de ce document.
Votre choix a été pris en compte. Merci d'avoir estimé le niveau de ce document !

Karteek Alahari
Directeur de recherche Inria dans l'équipe THOTH, adjoint au directeur scientifique, en charge de l’Intelligence Artificielle.
Photo © Inria / H. Raguet.

Lorenzo Jacques
En charge de la réalisation des podcasts pour Interstices (responsable de l'animation d'Interstices d'avril à novembre 2022).