Intelligence artificielle - I

Lu dans la presse: "Dans les laboratoires de Google Brain, deux IA ont réussi à créer un algorithme unique pour communiquer sans être comprises des autres intelligences.''

Cette phrase n'a absolument aucun sens.
Je vais vous expliquer pourquoi.

 

TL;DR. Deux ingénieurs de Google se sont amusés à chiffrer et déchiffrer des messages avec des algorithmes d'apprentissage supervisé. La mise en œuvre est assez intéressante, sur ce cas d'usage lié à la cryptographie. Leurs résultats sont notables et dignes d'intérêt. Ce que ces journalistes appellent intelligence artificielle (IA) est en réalité une architecture en réseau de neurones, assez classique bien que modifiée. Et puisqu'ils n'ont visiblement pas compris ce qu'ils ont lu, ils ont brodé assez salement.


 

J'écoutais une chronique récemment à propos de cette histoire de compétition entre des intelligences artificielles, dont deux se sont entendues pour communiquer entre elles sans interception possible d'une troisième. Allez lire ici ou encore , si vous trouvez le temps. Les courageux pourront même étudier le papier des gars de Google qui ont bossé sur le sujet [pdf].

Je résume, pour les deux du fond qui ont loupé cette folle nouvelle. Deux ingénieurs du grand G ont joué à construire trois intelligences artificielles (IA), qui communiquaient entre elles. J'écris jouer, car, n'en déplaise aux fâcheux qui font profession de sériosité, il y a évidemment une part de jeu dans ce genre d'activités exploratoires. C'est, en réalité, un cas d'usage pertinent sur la sécurisation automatique de transaction. Important, donc. L'arrangement, sur lequel je reviendrai, est le suivant : les deux premières IA (Alice et Bob) avaient pour but de chiffrer, ou camoufler, leurs échanges, afin que la troisième (Eve) ne puisse pas les comprendre. Elles avaient à leur disposition une clé commune et privée, qu'Eve ne connaissait pas, histoire de leur simplifier la vie dans cette tentative, assez honteuse il faut l'avouer, d'humiliation publique. Le but de cette expérience est de savoir si ces IA, que nous continuerons à appeler ainsi, sauront apprendre à tirer parti d'informations privées pour sécuriser leurs communications. Voici le pitch, que Nolan saurait aisément convertir en blockbuster.

En se limitant aux faits, on baillerait volontiers. Mais c'est sans compter sur la capacité d'invention infinie du journalisme à sensation qui, lui, résume les choses ainsi: ''Dans les laboratoires de Google Brain, deux IA ont réussi à créer un algorithme unique pour communiquer sans être comprises des autres intelligences'', avec en sous-titre une espèce de pseudo-citation disant que les "pères" de ces IA sont complètement secs sur la façon dont ces IA ont "inventé leur langage"

Vous sentez bien, rusés lecteurs, qu'on essaie de vous enfumer. Puisque je suis contre la trump-fiction [*] et pour la précision sur des sujets aussi complexes, je vais tenter de démonter cette histoire.

Google Brain

 
Brain: cerveau. Brains: crane, ciboulot, cervelle.

Brain: cerveau.
Brains: crane, ciboulot, cervelle.

Pas besoin d'avoir fait Polytechnique pour piger le champ lexical - ça tombe bien, quelque part. Avant de détailler l'expérience, je vais devoir vous parler de la recherche en intelligence artificielle. Pas longtemps, rassurez-vous.

Le but de l'intelligence artificielle, en tant que champ de recherche, est de comprendre et de reproduire des processus dits "intelligents", si possible de haut-niveau. On est pas franchement sur de l'optimisation d'empreinte mémoire en assembleur, vous m'aurez compris. L'intelligence artificielle (se) pose un certain nombre de problèmes majeurs.

Le premier problème majeur de cette discipline est dans la définition même de l'intelligence: où commence-t-elle ? ou s'arrête-t-elle ? que couvre-t-elle ? Vaste programme. Le second problème majeur vient du fait que notre seule vraie référence sur le sujet, c'est l'homme: comment différencier, dans l'intelligence humaine, ce qui est humain et ce qui ne l'est pas ? Que faire de la psychologie ? Qu'est-ce qu'une intelligence non-humaine ? Doit-on s'inquiéter des affres psychologiques du moineau pour concevoir l'aile d'un A380 ? [**]. Le troisième problème majeur est bassement matériel. Les chercheurs en intelligence artificielle se sont rendus compte qu'écrire leurs idées sur du papier ne rendait pas le papier plus intelligent, seulement moins propre, ce qui ne résolvait donc pas vraiment leur problème. Heureusement que les ordinateurs leur ont, peu à peu, permis de tester leurs idées concrètement ...une fois les langages adéquats inventés.

Pour aller très vite tout en essayant de ne pas raconter trop d'inepties, on peut distinguer trois approches: symbolisme, connexionnisme, statistiques.

Dès les années 1950, voire un peu avant, l'IA symbolique a essayé de fixer un cadre fort à l'émergence de l'intelligence, en la construisant à partir de grands principes. L'hypothèse principale est que l'intelligence est réductible à un manipulation de symboles, de concepts ... une modélisation de la pensée (humaine). On appelle cette approche GOFAI, acronyme anglais pour "bonne veille IA à la papa", type HAL-9000 ou Deep Thought. C'est l'approche classiquement classique, violemment premiers principes, et qui n'a pas eu un succès énorme qu'en science-fiction.

Deep Thought processing The Answer to Life, The Universe, and Everything. (Bruno Murai)

Deep Thought processing The Answer to Life, The Universe, and Everything. (Bruno Murai)

L'IA connexionniste part du cerveau, vu comme un réseau complexe de neurones. Puisqu'on observe que les comportements intelligents sont globalement corrélés avec la présence d'un nombre assez important de neurones, l'hypothèse de base consiste à modéliser finement un neurone puis à en accumuler assez (mettons "beaucoup", pour être précis). On mélange et on espère avoir ainsi trivialisé le problème, l'intelligence étant donc définie comme phénomène émergeant d'un réseau complexe d'unités basiques. Ça me semble être l'approche du Humain Brain Project (à vérifier cependant).

Enfin, l'approche statistique, plus récente, se focalise sur les maths et la résolution de problèmes précis. On est toutefois plus sur du problem solving par systèmes experts que de l'intelligence pure, adaptable et capable de résoudre des problèmes généraux. Citons DeepBlue, qui a tenu en échec G Kasparov en 1997 et AlphaGo, qui s'est fait une spécialité de battre des humains aux Go, en 2016. Je suis personnellement assez rétif à appeler ça de l'intelligence. Notez que tout ce que je lis dans les médias sur le sujet tombe dans cette catégorie.

Les curieux intéressé par une présentation un peu moins personnelle du domaine iront se promener sur le WP. Les masochistes, eux, seront comblés par l'impressionnant "Mind as Machine" de M. Boden, par exemple, dont les 1452 pages occuperont sereinement vos soirées. Et je préfère ne pas évoquer les 134 pages de référence que contiennent ces remarquables briques. Que du bonheur, cela dit. Je recommande chaudement.

"Deux IA ..." ?

Schéma typique d’un réseau de neurones avec trois niveaux cachés. Les données sont à gauche, les résultats à droite. Entre les deux, il se passe des choses obscures. (image: Michael Nielsen)

Schéma typique d’un réseau de neurones avec trois niveaux cachés. Les données sont à gauche, les résultats à droite. Entre les deux, il se passe des choses obscures. (image: Michael Nielsen)

Revenons à nos "intelligences artificielles" de Google, qui s'amusent à s'échanger des messages. On est sur de l'intelligence artificielle type problem solving. Je rappelle donc qu'il ne serait pas pertinent de demander à ces programmes leur avis sur les résultats de la primaire LR.

Leur architecture n'est pas d'une complexité folle et, puisque je ne suis pas réellement un expert du domaine, je ne me risquerai pas vraiment loin sur le sujet. Ce sont des réseaux de neurones multi-couches (cinq, semble-t-il) sur des entrées de taille 2N, N=16, 32 ou 64. Tout se fait en binaire, c'est à dire que les messages que se passent ces réseaux sont des suites de 0 et de 1. Les sorties sont aussi des suites de bits. Je parlais d'une clé privée, commune à Alice et Bob : c'est une entrée de même taille que le message (N). D'où le 2N.

Quatre des couches sont convolutives (convolution layer) et permettent d'analyser des bits voisins, c'est à dire localement. Cette localisation est classique dans les applications de cryptographie. S'ils ont donné aux réseaux la possibilité de travailler localement, les auteurs, taquins, ont cependant fait précéder ces quatre couches spots d'une couche pouvant mélanger tous les bits. L'idée est de laisser le réseau décider seul (apprendre) s'il avait besoin de cette localisation. Les trois réseaux ont la même architecture - Eve devant être en N, et non pas 2N - et seuls leurs paramètres internes les différencient : ce sont ces paramètres qui permettent de fixer le fonctionnement précis des différentes couches, et les poids relatifs à associer aux entrées/sorties des dites couches. Voici un petit schéma et un précédent billet qui en parle.

 
Graphe issu du papier de Google Brain

Graphe issu du papier de Google Brain

Les règles du jeu:

  • Alice produit un message avec une clé privée;
  • Bob essaie de reproduire le message avec la clé privée;
  • Eve essaie de reproduire le message sans la clé privée.

Il est simple. Dans les faits, les réseaux travaillent sur des paires (message,clé) aléatoires. Une étape correspond à un set de 4096 paires. Un run classique est une suite de quelques centaines de milliers d'étapes. L'apprentissage du (dé)chiffrement des messages se fait par la modification des paramètres internes des réseaux.

Le processus d'apprentissage se répète à chaque étape et est le suivant:

  • on entraîne A et B à adapter leur chiffrage/déchiffrage pour minimiser les erreurs de reconstruction par B et maximiser celle par E (E fixé);
  • on entraîne E à minimiser son erreur de reconstruction (A,B fixé).

Quand plus rien ne semble bouger, les auteurs sortent deux-trois trucs de matheux pour bien s'assurer que tout est stable, puis quantifient les capacités d'apprentissage de Bob et Eve en analysant la fidélité de leur prédiction : ont-ils su retrouver le message embrouillé par A ? Pas question de se limiter à un seul run, cela n'aurait aucun sens : les auteurs en ont donc fait plusieurs. Et les résultats tombent : quelque part entre un tiers et la moitié des cas, Bob arrive à reproduire assez parfaitement le message chiffré par A, et Eve pas vraiment, i.e. elle se trompe sur 5 à 7 bits pour un message de 16 bits (N=16).

Graphe issu du papier de Google Brain

Graphe issu du papier de Google Brain

Comprendre ce qu'il se passe dans un réseau de neurones est compliqué, donc les auteurs n'ont pas pu vraiment analyser les méthodes de (de)chiffrement utilisées par les trois réseaux. Ils l'ont fait rapidement, mais je n'ai pas vraiment trouvé de détails. Sans critiquer le travail fourni, qui est vraiment intéressant, les résultats sont donc limités. Autant pour le "communiquer sans être comprises des autres intelligences" : pas tout le temps, et de manière imparfaite.

"... ont réussi à créer un algorithme unique..."

Cette formulation est évidemment totalement trompeuse : "on réussi à créer" laisse entendre qu'il y a une réflexion derrière cette création. Et c'est totalement faux. Il ne s'agit encore moins de volonté, ni de "conscience", si ce mot a un sens quelconque en intelligence artificielle. Je me permets d'ailleurs de citer Jean Piaget, très éclairant sur ce sujet : "l’intelligence ce n'est pas ce que l’on sait, mais ce que l’on fait quand on ne sait pas" (d'autres ici). Ce qui permet de dire encore un peu plus fort qu'on ne parle pas ici d'intelligence. Et encore moins de conscience.

Peut-on au moins parler de plan ? Non.

Pour illustrer ce processus d'apprentissage de ces réseaux, il va falloir imaginer qu'on ne parle plus de programmes, mais d'un enfant qui joue aux legos. Son but est de construire un château qui monte le plus haut possible, et il a beaucoup de temps devant lui. Au lieu de réfléchir à l'agencement des pièces, celles qu'il faut assembler ensemble etc (hey, ne comptez pas sur moi pour vous apprendre à jouer aux legos), ce qui dénoterait une certaine forme d'intelligence, il va procéder autrement. Il va tirer des pièces au hasard, les assembler et voir ce que ça donne. Évidemment, au début, sa construction ne sera pas haute, et ses performances seront donc faibles. Si on lui laisse assez de temps, il finira très probablement par construire un château qui ira très haut, mais ce sera un pur hasard. Ça marche aussi avec des singes et Shakespeare (infinite monkey theorem).

"Ford, there's an infinite number of monkeys outside who want to talk to us about this script for Hamlet they've worked out.'' (Douglas Adams, 1979)

"Ford, there's an infinite number of monkeys outside who want to talk to us about this script for Hamlet they've worked out.'' (Douglas Adams, 1979)

Ce n'est pas vraiment efficace. Permettons-lui maintenant de se souvenir de la forme générale de son château, des pièces qu'il a utilisées et de certaines caractéristiques de la construction. Donnons-lui un moyen de relier ces informations au résultat. Apprenons-lui quelques principes mathématiques de base, comme la corrélation, pour exploiter ces données et lui permettre de choisir les pièces qu'il va utiliser ; laissons-le ensuite expérimenter un certain temps. Il aura aussi construit un château qui ira très haut, à la différence près qu'il saura reproduire ce résultat. Il aura appris.

Cet enfant ne sera pas non plus intelligent, au sens classique, mais saura utiliser les corrélations pour construire un château. Cool.

Voici un exemple d'apprentissage automatique qui se rapproche assez grossièrement de ce qui se passe dans les algorithmes. On fournit directement des règles de résolutions de problèmes - ou des méta-règles permettant de construire ces règles -, une méthode d'estimation du résultat recherché, et une boucle de rétroaction permettant de modifier les règles. Toute la difficulté est de réaliser concrètement et efficacement ce schéma général.

Donc "... deux IA ont réussi à créer un algorithme unique..." est idiot. Disons plutot qu'à force de hasard, et en assemblant des briques très spécifiques sans aucun plan d'ensemble, Alice et Bob se sont transformés pour permettre à Bob d'être performant et à Eve de ne pas l'être; Eve, quant à elle, s'est transformée pour être performante, en réaction aux efforts de Alice et Bob.

 

L'intelligence est fournie par les ingénieurs : ils ont défini les règles du jeu et les moyens d'action.

 

"... sans être comprises des autres intelligences..."

"Créer", "comprendre": difficile de ne pas noter que nous sommes encore dans l'anthropomorphisme le plus total.

Quelques remarques sur ce point:

  • le schéma interne des réseaux de neurones n'est pas facilement compréhensible: les règles ne sont pas faites pour être parlantes, ni explicites;
  • il n'y a aucune contrainte, ou aucun intérêt, pour les IA à analyser, ou comprendre, leurs règles internes: le seul but est que la prédiction soit proche du résultat;
  • A, B et C peuvent avoir des schémas internes totalement différents;
  • A, B et C ne comprennent pas les messages qu'elles transmettent, qui sont par ailleurs issu d'un premier message purement aléatoire.

Il s'agit de pragmatisme pur et dur, uniquement régi par l'évaluation du résultat. Aucune compréhension de la part des algorithmes de (dé)chiffrement n'est requise.

En passant : la seconde étude détaillée dans le papier, un peu plus complexe que la première, est de savoir si, avec un schéma à peu près semblable, ces réseaux peuvent apprendre à cacher des bouts d'information lors de ce chiffrement. C'est à dire éviter de permettre à Eve de reconstruire certaines parties du message initial en analysant le message chiffré. La réponse est oui. Mais sans aucune compréhension au sens humain du terme, ni raisonnement.

d7227601-f77a-4640-90d7-983f079f806a_vyb82h.jpg
 

N'ayez pas peur !

Ces automates se contentent de résoudre rapidement des problèmes bien délimités, fin de l'histoire.

Faut-il avoir peur ? Non.

Dans toute cette histoire, la créativité est guidée, circonscrite à un domaine très précis. Les règles sont créées par l'ingénieur. On a affaire à des automates rapides et efficaces, qui jouent selon des règles très précises et parfaitement contrôlées. La complexité des architectures internes est au-delà de la compréhension immédiate du data-scientist de base, mais il saurait l'analyser s'il y consacrait assez d'énergie.

Une autre question, qui est souvent entendue lorsqu'on parle d'intelligence artificielle : peuvent-elles penser ? Edsger Dijkstra, un des papes de l'informatique, a eu cette saillie que je fais mienne: "se demander si un ordinateur peut penser est aussi intéressant que de se demander si un sous-marin peut nager". Ce n'est juste pas le sujet. Dormez tranquille.

That is the sound of inevitability.  Never send a human to do a machine's job. (Mr Smith, Matrix, 1999)

That is the sound of inevitability.  Never send a human to do a machine's job. (Mr Smith, Matrix, 1999)

Le jour où on saura créer un programme qui pourra:

  • explorer un environnement non prédéfini;
  • produire ses propres schémas d'analyses;
  • apprendre seul, en dehors de tout cadre;
  • assurer sa subsistance physique;
  • se répliquer;
  • se fixer ses buts;
  • agir sur son environnement;
  • (liste non exhaustive :-));

... alors oui, on pourra avoir peur et Skynet ne sera pas loin. La vie artificielle non plus, d'ailleurs, avec une certaine volonté de vie, de puissance. La vie qui veut la vie ... qui veut la vie. Nous sommes vraiment très loin de ça, avec nos réseaux de neurones in silicio et autres forêts aléatoire.

Alors ?

Alors, dans les laboratoires de Google Brain, deux réseaux de neurones indépendants ont (parfois) abouti, après un processus évolutif aléatoire et encadré par les ingénieurs, à l'établissement de protocoles de chiffrement et déchiffrement suffisamment efficaces pour empêcher un troisième réseau de neurones similaire de les casser. C'est moins sexy, mais c'est plus précis.


[*] : version moderne de l'aphorisme de M Queuille, "les promesses n'engagent que ceux qui les écoutent".
[**] : ce n'est pas une blague.

Thomas Gerbaud