Bien que l’homme ait essayé de créer des machines à calculer ou autres objets, par exemple, la machine à calculer « la Pascaline » de Blaise Pascal en 1642, des automates comme ceux d’un horloger suisse (entre 1767 et 1774) qui élabora l’écrivain, le dessinateur, et la musicienne, les spécialistes du domaine considèrent toutefois que les balbutiements de l’histoire de l’IA ont débuté vers la fin des années 1930, avec un scientifique du nom d’Alan Turing. En effet, sans être le père de l’IA, bien qu’on le considère comme le père de l’informatique, Alan Turing a influencé les études et les recherches faites sur l’IA, grâce à deux de ses concepts: la machine de Turing (1936) et
le test de Turing.
La machine de Turing est un ordinateur abstrait capable de reproduire tout type de raisonnement à partir d’un algorithme (procédure de règles à suivre), donc de mécaniser le fonctionnement de la pensée. Dans les faits, voir si les processus de déduction, de décision, de résolution de problème, etc., propres à la pensée humaine, pouvaient être décrits rigoureusement et être résolus par un programme informatique. Tandis que le test de Turing, bien que ce test soit contesté aujourd’hui, suggérait que si une machine pouvait tromper un homme en lui faisant croire qu’elle était aussi humaine, le logiciel de l’ordinateur avait passé le test avec brio. On se rappellera que ce même Alan Turing
décrypta le code secret de la machine Énigma utilisée par l’armée allemande durant la Seconde Guerre mondiale. Par la suite, soit en 1948, le premier ordinateur était créé.
Au cours d’un demi-siècle (1955-2005) de recherches sur l’IA, deux écoles de pensée se sont fait concurrence : l’école symbolique ou l’école basée sur des règles et l’école reposant sur les réseaux de neurones.
L’idée de l’école symbolique était de créer de la pensée artificielle en enseignant aux ordinateurs à penser, en leur insérant une série de règles logiques, sous forme de code numérique, que maîtrise un être humain.
C’est en 1956 que Marvin Minsky, père co-fondateur de l’IA, du MIT et ses collègues fondent un centre de recherche sur l’IA. En 1963, on assiste à la création d’Éliza, premier agent conversationnel, grand-père de Siri, tandis que de 1973 à 1982, apparaît la première hibernation de l’IAi. En 1982, on relance l’IA avec les systèmes experts, dont le but est de rassembler dans des bases de données toutes les connaissances des experts d’une discipline et d’expliciter les règles de raisonnement. C’est également en 1982 que l’apprentissage par renforcement fait son apparition, lequel apprentissage consiste à étudier les gestes à poser à partir d’expériences, sur la basse de récompenses et punitions, de façon à optimiser une récompense quantitative dans le temps. De 1987 à 1993, on assiste à une seconde hibernation de l’IA puis à sa relance grâce aux progrès informatiques. À ce propos, soulignons que cette école de pensée de l’IA a toujours évolué en parallèle avec l’informatique.
Par ailleurs, l’idée de l’école fondée sur les réseaux de neurones consistait à imiter l’architecture interne du cerveau, en superposant des couches de neurones artificielles qui peuvent recevoir et transmettre de l’information dans une structure semblable à nos réseaux de neurones biologiques.
En 1943, Walter Pitts, pionnier des réseaux de neurones, et Warrent McCulloch inventent le neurone artificiel élaboré sur la base d’un neurone biologique. Dans le cas du neurone artificiel, on fait une sommation pondérée des entrées en tenant compte de leurs coefficients respectifs et on déclenche un signal de sortie (Nous avons assisté à 2 hibernations de l’IA en raison de la pauvreté des moyens de calcul, d’une absence de champs d’application, d’où la difficulté d’obtenir des fonds).
En 1957, Frank Rosenblatt, premier concepteur d’un réseau de neurones, crée le Perceptron, grosse machine comportant beaucoup de câbles interreliés aux neurones (transistors) et des potentiomètres à réglage automatique dont le but est de donner un coefficient synaptique entre les neurones. À cela s’ajoute un appareil photo pour permettre à la machine de classer des images via un programme faisant varier les potentiomètres qui lui indiquent la bonne réponse. Après 50 essais, les poids synaptiques sont calibrés et la machine peut classer de nouvelles images qui ne lui auront pas été présentées durant l’entraînement (pour plus d’explications, voir la partie suivante sur le fonctionnement d’un réseau de neurones).
En 1969 surgissent de violentes critiques des réseaux de neurones, formulées, entre autres, par Marvin Lee Minsky.
En 2003, Yoshua Bengio, Geoffrey Hinton et Yann LeCun relancent les réseaux de neurones tandis qu’en 2006, on assiste à la naissance de l’apprentissage profond (Deep Learning, pour plus d'explications, voir plus bas la section sur l'apprentissage profond et l'apprentissage par renforcement.
En 2012, à un concours de reconnaissance d’images, ImageNet, un premier réseau de neurones à plusieurs couches (Deep Learning) bat tous les autres types d’IA.
Finalement, en mars 2016, la victoire au jeu du GO (10 aux 171 combinaisons possibles) par le programme AlphaGo développé par DeepMind représente une avancée historique de l’intelligence artificielle. Pour concevoir leur algorithme, les fabricants d’AlphaGo avaient utilisé deux réseaux de neurones artificiels qui s’entraînaient mutuellement. Au début, ils l’avaient alimenté avec 30 millions de coups de joueurs expérimentés, puis ils avaient fait jouer, à des versions différentes de la machine, des millions de parties contre elle-même. Le logiciel avait ainsi appris de nouvelles stratégies inconnues de l’être humain.
En réalité, contrairement à la première école, les concepteurs de réseaux de neurones ne leur donnent pas de règle eu égard au processus décisionnel, mais les alimentent plutôt de beaucoup, beaucoup d’exemples d’un phénomène donné et laissent les réseaux eux-mêmes identifier le bon choix à même les données présentées. Moins il y a d’interférences humaines, mieux c’est. Ce qui a retardé considérablement le développement des réseaux de neurones, c’est que ces derniers exigeaient une quantité phénoménale de données et de puissance de traitement. Par exemple, la puissance actuelle de calcul de nos téléphones intelligents est des millions de fois supérieures à celle des ordinateurs de la NASA en 1969. Enfin, l’Internet a abouti à une explosion de données numériques.
Fonctionnement d’un réseau de neurones
Comme mentionné précédemment, l’idée d’un réseau de neurones est de mimer ou répliquer le fonctionnement des neurones biologiques. En effet, lorsqu'un neurone biologique reçoit une information par une de ses dendrites, il s'y propage un tout petit courant électrique, appelé potentiel local. Ce courant électrique se rend jusqu'au corps cellulaire, pour l'inciter à son tour à en envoyer un. Si c'est le cas, un potentiel d'action sur l'axone et ses liens synaptiques sera déclenché par le corps cellulaire pour se connecter à d’autres neurones. Dans le cas des neurones composant un réseau de neurones, chaque neurone est susceptible de recevoir des données issues de plusieurs autres neurones de la couche précédente, ou de neurones voisins, avec lesquels il est connecté par des synapses. Le neurone traite alors les données reçues et, si la somme pondérée de ces signaux dépasse un seuil défini au préalable, il déclenche alors à son tour un signal vers des neurones de la couche suivante, ou des neurones voisins. Plus un neurone reçoit un signal d’un autre neurone, et plus le poids de ce signal devient important dans le calcul de son seuil de déclenchement (pondération synaptique).
En somme, un réseau de neurones est un algorithme composé d’une succession de petites boîtes de calculs (neurones) qui accomplissent des fonctions mathématiques élémentaires. Ces neurones sont organisés en couches successives et reliés par des liaisons appelées synapses. L’architecture d’un réseau de neurones artificiels définit la façon dont ses divers neurones sont placés ou disposés l’un par rapport à l’autre. Le nombre de couches, la quantité de neurones et la richesse des liaisons augmentent rapidement la complexité du système. Il y a différents types d'application d’un réseau de neurones :
- reconnaissance de formes, ce qui permet aux camions, aux drones, aux automobiles de s’autopiloter;
- traitements de signaux, prévisions financières, prise de décision, jeux vidéo, etc.
À titre d’exemple, en reconnaissance faciale, on expose la couche d'entrée à des milliers, voire des millions d’images (visages humains) de formes diverses et sous des angles de vue variés, pour éduquer le réseau de neurones. Ce dernier va ainsi pouvoir, de couche en couche, apprendre à reconnaître et à filtrer des combinaisons de pixels de plus en plus complexes (du simple pixel pour la première couche, au visage entier pour la dernière). Les liaisons entre les neurones sont initialement dotées de poids aléatoires et le réseau va lui-même ajuster les poids synaptiques reliant les neurones entre eux, de façon à ce que les neurones de sortie donnent la bonne réponse. Le réseau est ensuite exposé à des images non apprises et non étiquetées qu'il doit reconnaître comme des visages humains. Quand il se trompe, on le lui signale, afin qu'il réajuste ses poids synaptiques, par rétropropagation de couche en couche, de la sortie vers l’entrée. Il minimise ceux qui l’ont induit en erreur, et maximise ceux qui conduisent à une bonne réponse. Dans le cas de Google, on peut avoir 1 000 000 d’images à l’entrée, et l’algorithme peut avoir entre 1 500 et 2 000 couches!
Nous distinguons trois types d’apprentissages de réseaux de neurones :
- l’apprentissage supervisé, c’est-à-dire des exemples d’échantillons de données déjà classés sont présentés à l’algorithme qui s’ajuste afin de classer les nouvelles données entrantes dans des classes similaires;
- l’apprentissage non supervisé, c’est-à-dire sans étiquetage à l’avance, le réseau de neurones devant donc faire des regroupements par lui-même, par exemple ce qui est similaire, ou encore des algorithmes de « clustering »;
- l’apprentissage par renforcement, qui est une forme d’apprentissage supervisé dans laquelle l’algorithme n’est pas informé de la classe de chaque échantillon d’apprentissage, mais de la justesse (récompense) ou de l’erreur (punition) de la classification, ce qui lui permet d’optimiser une récompense quantitative au cours du temps.
Apprentissage profond (Deep Learning) et apprentissage par renforcement
Soulignons tout d’abord que le Deep Learning permet à la machine d’améliorer elle-même sa capacité d’analyse des données pour accomplir une tâche. On y traite très souvent des données non structurées : des images, du son, du texte. Les algorithmes de Deep Learning nécessitent également un réseau de neurones doté de plusieurs couches, des données en quantités industrielles et de la puissance de calcul. C’est d’ailleurs pour ces raisons, qu’à partir de 2012, grâce à la puissance des ordinateurs et à la multitude des données, que l’IA a pu s’attaquer à des problèmes extrêmement complexes, tels que déchiffrer la parole humaine, traduire des documents, reconnaître des images, prédire le comportement des consommateurs, identifier des fraudes, analyser des prêts, aider des robots à voir et même à conduire une automobile. Données disponibles en grande quantité constituant le coeur de l’intelligence artificielle, apparition d’une puissance de calcul inégalée et implication de concepteurs talentueux sont toutes des variables qui ont été appliquées à de multiples champs d'intervention, d’où la mobilisation d’une somme de fonds faramineuse.
Le potentiel de la combinaison du Deep Learning et de l’apprentissage par renforcement est absolument énorme dans l’IA. De la même manière que nous pouvons tous contribuer à la connaissance mondiale en alimentant Wikipédia, nous allons tous participer à l’entraînement de l’IA en lui donnant de nouvelles tâches à exécuter, qu’elle sera ensuite en mesure de réaliser sans nous.