Allan Turing : Imitation game

Mais qui est-ce ?
Allan Mathison Turing né en 1912 en Angleterre, atteint d’un syndrome d’Asperger, il noue une passion quasi exclusive pour les mathématiques et les sciences. Il se présente comme mathématicien/statisticien et travail comme cryptologue sur le déchiffrage du code Enigma (chiffrage des messages de l’armée nazi) Article en français sur l’INRIA. Sa capacité en statistique aide dans l’art de la guerre durant la seconde guerre mondiale, pour affaiblir les ennemies, sans que celui-ci comprenne que les messages était déchiffré. Son rôle dans la guerre n’a été connu qu’après la déclassification des archives de l’armée britannique en 1970. Mais ses travaux de cryptanalyse et documents techniques n’ont été accessible qu’à partir des années 1980.
Dans son ouvrage « Imitation Game », il décrit avec précision ses attentes d’un système automatisé de réponse pour imiter des échanges avec un être humain (notre futur chat). Afin d’atteindre un niveau de réalisme, il inventa en 1950, dans sa publication « Computing Machinery and Intelligence » dans la revue Mind un test que l’on appellera « test de Turing ».
Est-ce que les machines peuvent penser ?
Le but est de vérifier qu’entre une imitation et un réel dialogue avec un humain ne puisse pas être détectable.

Le test se déroule à l’aveugle à tour de rôle dans un ordre aléatoire et l’interlocuteur humain en « C » doit déterminer quel sont les échanges avec la machine « A » ou l’humain « B ». Si la personne « C » n’arrive pas à déterminer s’il échange avec une machine ou un humain alors le test est validé. On considèrera alors, que la machine est capable de penser comme un humain. Dans le cas contraire, on chronomètrera le temps avant que l’interlocuteur désigne la machine pour déterminer un score à dépasser.
Ce test simple à produire implique plusieurs compétences pour la machine comme :
- retenir les informations échangées dans la conversation et les réutilisées
- comprendre le sens des mots par rapport au contexte, de l’humour de l’échange, des références culturelles
- avoir une forme sémantique proche d’un humain au travers d’une personnalité ou de reproduire des erreurs humaines afin de déjouer l’évaluateur
- avoir des connaissances pour enrichir la conversation et engrangés de nouvelles connaissances
- tenir le fil de la conversation en déduisant la logique à partir du contexte
À ce stade, le terme d’intelligence artificiel n’existe pas. On parlera de « jeu d’imitation » ou de machine potentiellement « intelligente ».
Allan Turing comprend rapidement les limites techniques du matériel de l’époque, mais reste confiant sur le fait de surmonté ces obstacles.
Il décrit même, au chapitre 7, des solutions logicielles pour résoudre la phase d’apprentissage que l’on appellera « Machine Learning ».
Apprentissage automatisé ou « Machine Learning »
Il était important pour lui de montrer que l’apprentissage n’est pas une théorie fumeuse de laboratoire, mais va décrire la méthode du comment l’on doit faire.
Il expose les problèmes suivants :
- Le volume de code à produire pour reproduire le fonctionnement d’un cerveau est impensable en termes de temps
- La puissance de calcul pour faire tourner ce même code n’est pas envisageable avec les moyens disponibles
Chez un être humain, on évolue depuis la naissance en effectuant des retours d’expériences sur les actions que l’on mène. Au départ, on observe le monde avec ses yeux et l’on découvre les formes, les couleurs, la lumière, les sons environnants, le toucher. Avec la préhension des objets, on découvre les volumes, les goûts, les sons des objets, le poids, la gravité (chute d’objet, force de la gravité), la possession. Avec la marche entre de nouveaux paramètres et l’apprentissage grandit avec suivant un schéma Darwinien.
L’approche informatique la plus probable est d’avoir un jeu de situation auquel on souhaite confronter la machine. Pour situation, on ajoute un ensemble de paramètres de contextes et on attribue une note de réussite de la machine pour chaque situation. La note, sous forme de bonus/malus, servira à l’algorithme du programme pour choisir la meilleure solution à appliquer ou ne pas appliquer du tout. L’approche est probabiliste en fonction du contexte d’exécution.
L’algorithme devra être écrit dans un langage modulaire ou le code pouvait avoir sa vie propre et connecté pour réagir à l’interaction des autres modules. Ce langage n’existant pas au moment de la rédaction de ses travaux.
Allan Turing prévient que toute supervision est inapplicables lors de la phase d’entraînement, car l’humain ne pourra jamais aller aussi vite que la machine et donc encore moins la stopper en cours de route en cas d’erreur. De plus les volumes d’informations traités sont ingérables pour un humain.
M. Turing prend le temps de préciser que certain domaine se prête bien à l’apprentissage, car les contours du savoir sont bien définis comme un jeu ou certain sujet très scolaire comme les sciences, les maths, etc.
Les prérequis de l’Intelligence Artificielle sont écrits pour les années à venir. Les tâches à accomplir sont nombreuses et complexes.
Premier programme intelligent
Allan Turing s’est suicidé le 7 juin 1957 (41 ans) à Wilmslow au cyanure et ne verra pas les domaines d’application de ses recherches.
Ce n’est qu’en 1664, que le premier programme ELIZA arrive à tromper un utilisateur humain plus de cinq minutes. Ce programme qui imite un psychothérapeute en reformulant les réponses fournit en question arrive a trompé un temps l’utilisateur. Toutes fois, le test est biaisé, car l’utilisateur n’a pas pour objectif d’évaluer le programme pour démasquer son interlocuteur. Il ne se méfie donc pas des réponses fournit par la machine.
La plupart des travaux de recherche de l’IA ont été arrêtés principalement à cause de contrainte technique qui n’ont pas permis de tenir les promesses de résultat et les délais annoncés par M. Turing pour atteindre l’IA général.
Dans les années 1980, le langage objet a été créé pour sa modularité puis a été étendu avec la programmation évènementielle pour connecter les événements entre les objets. Le C++ a été dans les premiers langages à répondre au besoin de l’expression de besoin de M. Turing, bien d’autre langage ont pris le relais par la suite.
