Mon avis sur l'avenir de l'intelligence artificielle en ce qui concerne la conduite automobile.

Sans vouloir mettre en avant un quelconque argument d'autorité, il m'arrive régulièrement de programmer des intelligences artificielles pour m'amuser, notamment dans le cadre de l'excellent site Codingame. Mes algorithmes sont simplistes et je n'arrive pas à la cheville des spécialistes du domaine qui produisent du code génétique ou qui utilisent des modes d'apprentissage complexes pour faire évoluer leur programme. Mais j'arrive à concevoir ce qu'on peut faire avec de tels algorithmes et je crois percevoir aussi leurs limites, toutes proportions gardées.

À l'heure où tout est "intelligent", ou "smart", la bagnole de monsieur tout le monde reste un dinosaure mécanique, malgré toutes les avancées électroniques des trente dernières années. Il se vend encore des véhicules où l'autoradio n'accepte pas les clés USB, ou lit mal les MP3. Mais tout va bientôt changer puisqu'on nous promet d'ici peu une déferlante de voitures autonomes. Plus besoin de toucher le volant, de regarder la route, la voiture se pilote elle-même, en toute sécurité.

Tout informaticien que je suis, je n'y crois pas une seconde. Conduire n'est pas une tâche particulièrement difficile et je ne me sens pas particulièrement intelligent derrière un volant (au contraire), mais c'est une activité intrinsèquement humaine, dans un environnement profondément humain. Ce que j'appelle un environnement profondément humain, c'est un réseau routier très hétérogène, plus ou moins bien entretenu, avec une signalisation verticale et horizontale empirique, et des usagers de la route et des trottoirs (quand il y en a) imprévisibles.

Première difficulté : lire les panneaux

Reconnaître un panneau est une tâche triviale pour un humain. La forme, la couleur, la hauteur, la taille, l'endroit où il est posé sont autant d'indices que l'oeil humain va utiliser pour identifier le panneau. Même si ces caractéristiques sont altérées (la couleur passée par les intempéries, la forme modifiée par un accrochage, un autocollant "CGT" posé au milieu du panneau sens interdit...), l'oeil humain s'en tire remarquablement bien dans la plupart des cas.

L'intelligence artificielle va utiliser le deep learning pour reconnaître le panneau. C'est à la fois extrêmement efficace et... particulièrement facile à mettre en échec. Ainsi, des chercheurs ont démontré que des panneaux à peine altérés étaient confondus avec d'autres qui n'avaient strictement rien à voir :

Aucun problème pour l'oeil humain qui reconnaît immédiatement le panneau et aussi les modifications qu'il a subie. Pour l'IA, c'est la catastrophe. Le premier panneau est pris pour une limitation de vitesse et le dernier panneau indiquant un virage à droite étant interprété comme... un panneau STOP !

Tout cela va bien sûr s'améliorer avec la puissance de calcul, mais même en condition de laboratoire, il est aujourd'hui très facile de berner l'algorithme...

Deuxième difficulté : avoir une carte à jour

On ne conduit pas seulement en suivant les indications des panneaux. Par exemple, la plupart du temps la limitation de vitesse est implicite (ce qui invalide au passage l'un des arguments contre le passage à 80 km/h sur les nationales : non, il n'y aura pas des dizaines de milliers de panneaux à remplacer). Par ailleurs, le tracé des routes est régulièrement modifié, temporairement ou durablement, au fil des chantiers.

Les prototypes actuels ne fonctionnent généralement que dans les endroits parfaitement cartographiés, en haute définition. Cela pose deux problèmes : comment obtenir une carte bien à jour en tout lieu ? Qui va s'occuper des mises à jour de la petite route communale, du sens unique qui change de sens de circulation ? Y compris pendant les phases de travaux ? Quelle volume de données cela va représenter et pour quel rythme de mise à jour ?

Même si l'on peut imaginer de gros progrès à l'avenir dans ce domaine (tant dans les réseaux de communication que dans les efforts de mises à jour...), on est très loin du compte aujourd'hui. Personnellement, je ne crois pas qu'on arrivera à un niveau de précision suffisant en tout lieu et tout le temps.

Troisième difficulté : interpréter ce qu'on voit

Quand les panneaux et la cartographie ne suffisent plus, il reste l'observation de l'environnement pour s'en sortir. Les voitures autonomes sont donc bardées de caméras et de capteurs qui renseignent l'algorithme sur l'environnement direct de la voiture. Gros avantage pour ces systèmes : ils voient des choses que l'oeil humain ne voit pas (par exemple, la trace infrarouge d'un animal qui sort de la forêt, ce qui se passe derrière, sur les côtés et devant, tout à la fois...).

Mais pour anticiper les réactions de chacun des éléments, encore faut-il savoir interpréter leur nature et leurs intentions. Ce qui est très, mais alors très, difficilement informatisable. D'abord parce qu'il faut reconnaître les objets/animaux/humains, ensuite parce qu'il faut deviner ce qu'ils vont faire.

Niveau reconnaissance, l'oeil humain est parfaitement aguerri, la machine, elle est encore très perfectible. Ce qui fait dire à Luc Julia, le père de Siri, la chose suivante : "Il faut montrer 1000 fois l'image d'un chat à la machine avant qu'elle ne commence à comprendre ce que c'est. Un enfant n'aura besoin que d'en voir un seul."

Et le problème ne s'arrête pas là : le deep-learning va d'autant mieux reconnaître un élément connu qu'il est dans un contexte "habituel". Dès qu'on sort des sentiers battus, l'IA est totalement à l'ouest. Le programme de reconnaissance "Azure" de Microsoft donne de très bons résultats dans la plupart des cas, mais d'après cette chercheuse dans le domaine des réseaux de neurones, elle commet des erreurs très bizarres dès que le contexte est particulier. Par exemple, dans cette image :

Azure voit "a cat is eating a carrot in a bowl". Un chat mange une carotte dans un bol.

On imagine mal ce que vont voir les caméras d'une voiture un jour de carnaval, et comment elles vont gérer toutes ces informations improbables qu'elles vont devoir analyser. D'autant qu'une fois les objets, animaux et individus correctement identifiés, il reste à deviner leurs intentions. L'humain ne va pas porter la même attention à un vieillard, un gamin portant un ballon, un homme saoul ou un femme avec un parapluie un jour de grand vent. Par ailleurs, aux abords d'une école, ou le jour d'une kermesse annoncée quelques centaines de mètres avant par un panneau illisible, le conducteur pourra être plus prudent ou au moins s'attendre à voir des choses surprenantes. Capter et interpréter un regard, comprendre la finalité d'un chantier et déduire de la disposition des lieux qu'un panneau a été déplacé à tort par un engin, griller un feu en panne, s'adapter au flot et aux habitudes de circulation qui flirtent avec les limites de la loi... Tout cela relève d'un travail intellectuel à la fois trivial pour nous et extrêmement fin pour un algorithme.

Quatrième difficulté : le chaos

On peut supposer que les trois premières difficultés ne sont qu'affaire de puissance de calcul. Quand on aura donné à manger suffisamment d'images et de vidéos aux machines, et que l'on pourra embarquer dans les voitures des processeurs puissants et des accès à des bases de données temps réel, elles finiront bien par reconnaître les panneaux, les gens et conduire correctement ?

La dernière vidéo de la chaine Science étonnante a achevé de me convaincre du contraire. Même si le sujet abordé n'a a priori rien à voir avec la question qui m'occupe aujourd'hui puisqu'elle parle de la théorie du chaos et de l'effet papillon. David Louapre revient sur la théorie décrite par le météorologue Lorenz qui a montré qu'un modèle météorologique même ultra simplifié avec seulement trois paramètres connait des évolutions chaotiques lorsque les données d'initialisation changent de quelques pouillèmes. Autrement dit : le battement d'aile d'un papillon quelque part, peut provoquer une tornade à l'autre bout du monde. Conséquence : même si on avait un modèle météorologique parfait (donc avec bien plus que trois paramètres) et une prise de mesure exacte des conditions initiales (des capteurs partout et précis), une simple erreur ou un arrondi au dixième chiffre après la virgule sur la température ou la pression de tel endroit du globe rendrait impossible la prédiction certaine de la météo.

Revenons à notre voiture autonome qui doit interagir avec un monde en perpétuelle évolution. Même si les diverses caméras et capteurs nourrissent l'algorithme de prédiction des trajectoires de chacun des individus et objets traversant leur champ de vision, un comportement inattendu (un coup de vent, un ballon qui s'échappe des mains de son propriétaire, une bouche d'égoût mal refermée...) va fausser tous les calculs et aboutir à une prise de décision hasardeuse.

Fort heureusement, on sait gérer algorithmiquement les choses improbables : soit on pondère leur chance de survenir, et on adapte alors le comportement, soit on les ignore parce que trop rares. Mon avis est que, dans les deux cas, cela sera intolérable.

- Soit l'IA a perçu un danger potentiel de probabilité faible et va, par exemple, ralentir. Mais dans ce cas, la voiture sera extrêmement lente car elle imaginera le pire scénario à chaque instant (le gosse qui se jette sous les roues, l'arbre qui tombe devant le capot, le chien qui traverse...).

- Soit l'IA ignore les dangers pour rouler à une allure "normale" (pour un humain) et dès le premier accident grave, on hurlera que les machines ne peuvent décidément pas cohabiter avec les humains.

L'humain, outre sa capacité supérieure à comprendre le comportement d'un monde à son image, a également cet "avantage" de faire abstraction intelligemment des phénomènes peu probables. Quand on roule à 50 en ville, il est parfaitement clair qu'il nous serait impossible d'éviter un gosse qui se jette sous nos roues. Pourtant on le fait. Et quand le drame se produit, on admet (ou pas selon les cas) que rien ne pouvait l'éviter, l'erreur (du conducteur ou de l'enfant) est "humaine". Pour une machine, hors de question d'admettre qu'elle écrase "sciemment" des enfants, ce sera socialement inacceptable.

En conclusion

L'intelligence artificielle me fascine et je ne doute pas que des progrès énormes vont être réalisés dans les années qui viennent. Je ne me lasse pas d'observer mon robot aspirateur et mon robot tondeuse, d'autant que je mesure tout le temps qu'ils me font gagner (par exemple pour écrire cet article !). Mais si l'on peut accepter qu'un aspirateur mette cinq fois plus de temps à réaliser sa tâche, ou qu'une tondeuse sorte trois heures chaque jour pour maintenir la pelouse en état, on ne voudra pas d'une voiture qui met trois fois plus de temps pour vous déposer au boulot, ou qui prend des risques inconsidérés à votre place.

Je ne parle même pas de la débauche d'énergie et de high-tech qu'il sera nécessaire de déployer pour rendre la chose seulement envisageable, dans un monde avec moins de métaux et d'énergies fossiles.

Autrement dit, je ne crois pas assister, de mon vivant à la démonstration d'une voiture vraiment autonome. Nous aurons vraisemblablement des aides à la conduite, des portions de route permettant l'autonomie totale, mais pas davantage.

Si vous pensez le contraire, je suis curieux de lire vos commentaires.

Commentaires

1. Le jeudi, 29 mars 2018, 01:18 par Verhaeghe

Bonjour Mérome et merci pour la qualité de l'article.

Je vais me permettre une réponse point par point, quitte à ce que ce soit fastidieux...

1. Première difficulté : lire les panneaux
C'est effectivement bien vu puisque les IA sont souvent mis en échec sur les reconnaissances complexes MAIS il se trouve que les IA communiquent entre elles et communiquent avec les humains. Il suffira que pour un panneau difficile à interpréter soit parfaitement déchiffré qu'il soit ne serait-ce qu'une seule fois corrigé par un humain et ensuite toutes les IA de toutes les voitures du monde sauront qu'à ce point GPS précis le panneau illisible veut dire STOP!
A titre perso, je pense en plus qu'en deep learning, la reconnaissance des panneaux ne sera pas très longue à acquérir avec un niveau d'erreur comparable à l'être humain

2. Deuxième difficulté : avoir une carte à jour
J'ai assisté vendredi dernier à une présentation de Médianav qui t'aurait plus et surtout qui t'aurait fait changer d'avis. Les voitures remontent en direct tous les éléments en écarts avec la cartographie du lieu qu'elles traversent de sorte que la cartographie du suivant qui emprunte la route est corrigée. C'est le même principe que Coyote pour la détection des radars, chaque usager renseigne la route pour le suivant...

3. Troisième difficulté : interpréter ce qu'on voit
la vraie difficulté c'est interpréter les comportements humains mais aussi incroyable que cela puisse le paraître, l'IA s'avère être redoutable dans sa capacité d'analyse d'une expression humaine, au delà même des capacités humaines.
https://www.rtbf.be/info/medias/det...
C'est assez déroutant de penser qu'une IA qui n'est qu'une vulgaire suite de 0 et de 1 y arrive mais les faits sont là. D'autant que le deep learning s'enrichit de l'ensemble des expériences vécues par l'ensemble des machines. Comme disait Mc Enroe (je suis un ex sport étude Tennis...) "L'important est de tirer une leçon de chaque échec." là c'est les millions de km parcourus chaque jours qui alimenteront la base de connaissance de IA.

4. Quatrième difficulté : le chaos
Si tu permets, je reformulerai ta réserve par difficulté d'acceptation par les humains des risques pris par l'IA lors d'une conduite en ville par exemple. Là, je pense que l'on aura bientôt des statistiques qui annonceront que les accidents en ville par des IA est entre 10 et 100 x inférieures à ceux des humains. Oui, chaque accident impliquant une IA sera un drame mais les 50 accidents qui se seront produits entre temps seront autant de raisons de ne pas remettre en cause l'IA

Antoine

2. Le jeudi, 29 mars 2018, 09:18 par Merome

Merci pour cette réponse avec laquelle je ne suis pas en accord, évidemment.

1 et 2. Je n'ignore pas que les voitures vont communiquer entre elles, et que l'apprentissage des unes va bénéficier aux autres. Mais il y a 2 bémols :

* Avant que les voitures de toutes marques s'entendent sur le protocole d'échange et/ou partage la même base d'information, on a du temps devant nous. A ce jour, il existe par exemple plusieurs connecteurs pour recharger une voiture électrique, type 2, type 3, chademo et j'en passe.

* Lorsqu'une voiture va rencontrer un panneau qu'elle interprète mal, elle va se retrouver avec un choix à faire : faire confiance à son interprétation car après tout c'est de qu'elle "voit", ou faire confiance à ce que les autres ont interprété avant elle. Mais entre temps, le panneau a pu changer. Le cédez-le-passage qui devient un stop, le 90 qui devient 80... Comment l'IA peut trancher avec des informations contradictoires ?

C'est exactement la même chose avec la carto : la zone de travaux qui évolue plusieurs fois dans la journée, au rythme de l'avancée de l'enrobé, ou du creusement de la tranchée, la seule information viable, c'est celle qu'on VOIT en temps réel. La carto n'apporte strictement rien (sauf de la confusion) dans ce cas.

3. Les réseaux de neurones sont bluffant dans beaucoup de cas, et ça me fascine de voir tout ce qu'on peut faire avec. Mais c'est l'exception qui va être difficile à gérer. Le deep learning est mis en défaut chaque fois qu'un cas tordu ne s'est pas présenté dans la période d'apprentissage (voir la chèvre et la banane dans l'article). J'ai l'intuition que sur la route, c'est... très souvent ! Des voitures sapin de Noël qui clignotent n'importe comment, des chargements sur des remorques improbables, des panneaux "déviation" posés en dépit du bon sens,...

4. Le nombre d'accidents n'est pas un indicateur suffisant. Si l'IA obtient des bons chiffres en roulant deux fois moins vite, ce ne sera pas appliquable dans la vraie vie. Et pour l'heure, il me semble que toutes les IA roulent avec une supervision humaine et/ou dans des endroits bien déterminés, donc je ne suis pas certain qu'on ait rapidement des stats valables.

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

La discussion continue ailleurs

URL de rétrolien : https://merome.net/blog/index.php?trackback/1134