Vue d’ensemble
Nous l’avons déjà vu précédemment dans l’historique : le domaine de l’Intelligence Artificielle est né dans les années 1950 sous l’impulsion d’une poignée de pionniers. L’ Intelligence Artificielle peut être définie de manière succincte comme l’ensemble des efforts visant à automatiser les tâches intellectuelles normalement exécutées par les êtres humains.
L’ IA procède principalement de deux domaines distincts, appelés IA symbolique et IA connexionniste. Ces deux approches suivent des voies profondément différentes pour aboutir à la construction de systèmes automatisés intelligents. En pratique, l’IA connexionniste correspond aux techniques d’apprentissage machine, et c’est le terme que j’utiliserai dans le reste de cet article. Dans les techniques d’apprentissage machine, les techniques basées sur des réseaux neuronaux artificiels ont progressivement acuis une position dominante. Elles sont à la base de toutes les percées récentes, y compris les modèles de langage qui défraient actuellement la chronique. Pour des raisons qui apparaîtront ci-dessous, ces techniques sont souvent appelées apprentissage profond. La figure 1 illustre la situation respective de ces différentes approches.
Enfin, il existe quelques approches particulières qui ne peuvent être vraiment classées dans aucune des deux grandes catégories. On peut citer par exemple les filtres de Kalman, les réseaux bayesiens ou encore les modèles de Markov (cachés ou pas). Je n’en parlerai pas plus ici.

Les techniques de l’IA symbolique
Les partisans de l’approche symbolique basent leurs systèmes sur une formalisation de la connaissance et du raisonnement humains en les traduisant en un ensemble de symboles et de relations entre ces symboles. L’idée est séduisante, les symboles jouant un rôle vital dans la connaissance et le raisonnement humain; il suffit de réfléchir un instant à la structure de nos langues, avec leur vocabulaire et leurs règles syntaxiques pour s’en convaincre : nous utilisons des symboles abstraits pour représenter des catégories de concepts, qui se déclinent en des concepts plus simples jusqu’à descendre à des notions élémentaires. De la même manière,nos langages nous permettent d’exprimer toutes sortes de relations, qui couvrent tout le champ de l’expérience consciente humaine : relations humaines, catégorisation des objets, position et relation dans le temps et l’espace, liens de causalité, raisonnements abstraits….
L’idée de l’IA symbolique est de construire un monde abstrait idéalisé, contenant un nombre de concepts/symboles beaucoup plus réduit que dans le monde réel, et régi par des relations entre symboles et règles logiques d’action élémentaires. Ces symboles et ces règles sont ensuite intégrés dans un programme informatique qui va les manipuler et déduire de nouvelles relations par application répétée de ces règles logiques.
L’ algorithme de base de l’IA symbolique est celui de la recherche de haut en bas : l’algorithme va essayer différentes solutions, partant de la situation de départ et appliquant successivement toutes les combinaisons possibles de règles dans le but d’atteindre l’objectif recherché, ou, à défaut de s’en approcher. Au fur et à mesure de l’application récursive des règles, un « arbre » de règles se contruit. L’ordinateur parcourt inlassablement les différentes branches, à la recherche de la meilleure solution.
Je vais illustrer ceci à travers quelques exemples classiques de problèmes traités par l’IA symbolique :
- Navigation : c’est l’algorithme que vous activez lorsque vous voulez vous rendre d’un endroit à l’autre et demandez le chemin à votre véhicule. Le système possède un graphe de toutes les routes carrossables de la région. Partant du noeud où vous vous trouvez, il va parcourir le graphe des chemins de proche en proche. Après chaque trajet élémentaire, l’algorithme regarde le point d’aboutissement et vérifie s’il a déjà atteint le même point par un autre chemin. Il ne conserve alors que le chemin le plus optimal pour atteindre ce point (en termes de distance et/ou de temps) et élimine les autres. L’algorithme procède de la sorte répétitivement jusqu’ à atteindre la destination, puis continue pour évaluer toutes les manières d’atteindre la destination et ne garder que la plus optimale, qui est la solution recherchée.
- Jeu d’échecs : l’ordinateur connaît la configuration initiale des pièces sur l’échiquier ainsi que tous les mouvements possibles des pièces. Supposons pour fixer les idées que l’ordinateur joue avec les blancs. Une fonction d’évaluation est définie, qui retourne un score pour chaque configuration possible de l’échiquier. Au plus la configuration est favorable à l’ordinateur (=les blancs), au plus le score est élevé. Ce score inclut en général une composante matérielle (préservation des pièces) et aussi positionnelle (localisation des pièces). L’algorithme, appelé MINIMAX, va alors créer un arbre de tous les mouvement possibles pour chacun des joueurs jusqu’à un certain nombre de coups dans le futur. Il va alors progressivement remonter en ne conservant chaque fois que le mouvement le plus optimal considérant que les joueurs sont rationnels, à savoir choisissent systématiquement le mouvement qui maximise le score final – quand c’est à blanc de jouer- ou celui qui minimise le score final -quand c’est à noir de jouer-. Progressivement, l’algorithme remonte jusqu’au coup de départ et sélectionne le mouvement qui maximise le score pour le coup à jouer.
- Planification : le système reçoit une tâche à accomplir, mais cette tâche requiert la réalisation de différentes sous-tâches qui sont liées par différentes relations et contraintes (de hiérarchie, de séquence, de localisation physique, de consommation de resources…). L’algorithme va alors parcourir toutes les manières possibles d’ordonnancer les tâches en respectant les contraintes jusqu’à ce que l’objectif soit atteint. Ces algorithmes ont la particularité qu’ils vont souvent parcourir l’espace de configuration à la fois progressivement depuis le point de départ, mais aussi à rebours depuis l’objectif, et ce jusqu’à trouver un point de rencontre dans l’espace des configurations entre la recherche progressive et la recherche « à rebours ». De nombreux problèmes logistiques peuvent se traiter de la sorte, par exemple placement et déplacement de caisses dans un entrepôt, transport de frêt optimal considérant les contraintes de transport….
- Systèmes experts : la connaissance d’un expert est encodée sous forme de règles logiques et appliquée à un ensemble de données en entrée. Ces règles peuvent servir à établir des conclusions intermédiaires qui vont ensuite être exploitées pour tenter de tirer une conclusion définitive. De plus, le système permet à l’utiliateur de lui fournir des informations complémentaires lorsqu’il est bloqué, afin de faire progresser l’analyse. Par exemple, un programme pourra analyser un prélèvement sanguin et tirer des conclusions intermédiaires, qu’il soumet à un médecin; par exemple suggérer un examen médical complémentaire. Le médecin peut ensuite encoder le résultat du test complémentaire ce qui permettra au système expert de tirer de nouvelles conclusions, qu’il soumettra à nouveau, et ainsi de suite jusqu’à ce que l’utilisateur soit satisfait.
- Prouveurs de théorèmes : l’ordinateur connaît les axiomes des mathématiques ainsi qu’un certain nombre de théorèmes déjà prouvés qui constituent son point de départ. Le théorème à prouver constitue l’objectif. L’ ordinateur connaît aussi les règles de déduction de la logique formelle. Il va alors appliquer répétitivement et cumulativement toutes les combinaisons de règles formelles sur l’ ensemble de faits constituant le point de départ, jusqu’à atteindre le théorème à prouver. Cet approche est très séduisante car l’algorithme peut immédiatement restituer la chaîne logique suivie et donc expliquer son raisonnement. CQFD.
Une caractéristique de toutes ces techniques est que le monde abstrait est défini à la main de toutes pièces par le programmeur. Il n’y a pas à proprement parler d’apprentissage autonome par la machine, qui ne fait qu’appliquer les règles qui lui ont été édictées.
L’illusion de l’intelligence provient ici de l’extrême rapidité des ordinateurs. Là ou l’être humain va instinctivement élaguer l’arbre des possibles et focaliser son analyse sur un petit nombre de cas prometteurs, l’ ordinateur va parcourir très rapidement tous les cas possibles, même les moins plausibles, pour arriver à un résultat analogue.
Les techniques de l’apprentissage machine
Commençons tout de suite par une définition due à Arthur Samuel en 1959 : l’apprentissage machine est le domaine d’étude qui vise à donner aux ordinateurs la capacité d’apprendre sans avoir été explicitement programmés.
L’ idée de base de l’apprentissage machine est que l’utilisateur fournit à l’algorithme une série de données qui vont permettre à l’algorithme de créer son propre modèle à travers une phase d’apprentissage. Une fois l’apprentissage terminé et le modèle testé, il pourra être utilisé sur de nouvelles données pour effectuer des prédictions. Contrairement à la démarche déductive de l’IA symbolique, la démarche de l’apprentissage machine est donc par nature inductive : elle part de cas particuliers pour construire une généralisation à travers une phase préparatoire d’entraînement. L’algorithme construit progressivement une structure statistique au moyen des exemples d’entraînement; cette structure est gelée à la fin de l’entraînement et exploitée ensuite sur de nouveau exemples en production pour effectuer des prédictions.
L’apprentissage machine est utilisé dans de nombreuses applications car il permet aux machines d’interpréter leur environnement (au sens large du terme) même lorsque celui-ci est incertain, entaché d’erreurs ou tout simplement impossible à formaliser explicitement. Ce dernier cas est typique des problèmes perceptuels. En effet, comment définir une règle déductive permettant d’établir si une image contient un chat ou pas, uniquement à partir des points qui la constituent ? Cela semble impossible…
L’apprentissage machine a commencé à prendre l’avantage sur l’IA symbolique dans les années 1990 et est aujourd’hui et de loin l’approche dominante, profitant de la digitalisation accrue du monde depuis l’arrivée du World Wide Web pour nourrir des jeux de données numériques sans cesse plus volumineux. Si l’approche dominante aujourd’hui est l’apprentissage profond, basé sur les réseaux neuronaux, il est bon de parler un instant des autres approches qui peuvent s’avérer plus adéquates que les réseaux neuronaux dans certainc cas.
Les algorithmes d’apprentissage machine se découpent en plusieurs sous-familles, en fonction du type de données disponibles pendant la phase d’apprentissage.
Dans le cas de l’apprentissage supervisé, le programmeur fournit à l’algorithme un jeu de données d’apprentissage « étiqueté » c’est à dire comprenant à la fois les données d’entrée (appelées observations) et les données de sortie (appelées étiquettes). Dans ce cas, l’algorithme cherchera à apprendre comment prédire la bonne étiquette en fonction de l’observation fournie. Une contrainte de ces algorithmes est que les étiquettes doivent en général être définies à la main avant l’apprentissage, et qu’elles doivent être correctes. Ceci a un coût.
La régression et la classification sont deux techniques traditionnelles en apprentissage machine supervisé. La régression consiste à chercher à prédire une valeur numérique continue en fonction d’une observation, alors que la classification a pour but d’attribuer à chaque observation une catégorie donnée parmi un nombre fini de catégories. Dans le cas le plus simple, la classification binaire va prédire si une observation possède ou non une caractéristique intéressante (classification oui/non).
Dans le case de l’apprentissage non supervisé, le jeu de données d’entraînement ne contient que des données d’entrée mais aucune donnée de sortie. Le programme devra donc, pendant la phase d’apprentissage, découvrir la structure sous-jacente des données, pour autant qu’elle existe. L’apprentissage non supervisé est souvent moins performant que l’apprentissage supervisé car il ne possède pas les étiquettes pour orienter sa modélisation. Par contre, il est possible d’utiliser directement des données brutes (textes, images…), souvent disponibles en très grande quantité, sans devoir les étiqueter une à une au préalable.
Un algorithme classique d’apprentissage non supervisé est le partitionnement des données (clustering en Anglais) dans lequel les données en entrée sont regroupées arbitrairement par l’algorithme en un certain nombre de catégories plausibles au vu de la répartition des observations. Un intérêt de ce type d’algorithme est qu’il possède une certaine forme de créativité, et peut donc aider un chercheur à identifier des régularités ou des motifs jusu’alors indétectés.
Un autre exemple d’apprentissage non supervisé est la détection d’anomalie. Il consiste à détecter une observation aberrante par rapport aux données d’entraînement et qui survient rarement. La détection d’une transaction financière frauduleuse ou d’une pièce mécanique défectueuse lors d’un contrôle qualité en bout de chaîne de production sont deux exemples d’application de cet algorithme.
Enfin, il existe des situations intermédiaires. Dans l’apprentissage semi-supervisé, seule une partie des observations d’entrée est étiquetée. Dans l’apprentissage autosupervisé, on cherche à prédire certaines données d’entrée en fonction des autres. C’est une approche très intéressante sur lequel on reviendra par la suite car elle est largement utilisée dans les modèles de langage.
L’apprentissage profond
L’apprentissage profond reprend les mêmes techniques et approches que l’apprentissage machine. On y retrouve également l’apprentissage supervisé, non supervisé, semi-supervisé etc… La différence entre les deux provient du type de modèle utilisé.
Si l’ apprentissage machine se base sur des algorithmes statistiques traditionnels, l’apprentissage profond recourt aux réseaux de neurones artificiels multicouches pour arriver au même résultat. La différence est que la puissance de modélisation des neurones artificiels n’est limitée que par la taille du réseau et celui-ci peut être rendu arbitrairement complexe, pour autant que le programmeur dispose de la puissance de calcul nécessaire et d’un volume de données suffisant.
Cette capacité à traiter des problèmes de plus en plus complexes a propulsé l’apprentissage profond au début de la scène depuis le début de la décennie 2010; cette approche domine aujourd’hui complètement le secteur.
Vu la longueur que ce texte est en train de prendre, je traiterai de l’apprentissage profond dans un article séparé, car le sujet mérite largement un traitement détaillé.
Conclusion
Le défi ultime de l’IA est de créer un système capable à la fois de raisonner, de créer de nouvelles abstractions, de percevoir le monde dans toute sa complexité, et d’apprendre de manière autonome. Mais les systèmes actuels se montrent soit déficients dans leur capacité à raisonner, soit à apprendre.
En même temps, on ne peut s’empêcher d’être interpellé par la grande complémentarité des deux approches. Les méthodes d’apprentissage machine excellent dans leurs capacités d’ apprentissage et de modélisation de phénomènes complexes mais leurs capacités d’abstraction, de raisonnement et d’explication sont limitées et peu interprétables. L’IA symbolique offre à peu près l’inverse : une grande puissance d’abstraction et de raisonnement, facilement intérprétables, mais peu encline à traiter les grands volumes de données imparfaitement structurés ou à apprendre de manière autonome.
On ne peut s’empêcher de penser que l’approche idéale combinerait ces deux techniques. Ces approches, appelées hybrides ou neurosymboliques, font l’objet de recherches et de développements approcondis. Mais l’intégration entre deux approches fondamentalement différentes n’est pas simple. L’avenir nous dira ce qu’il en est…
Pour terminer, admirons un instant l’extraordinaire puissance de la conscience humaine, qui combine toutes ces capacités avec élégance et harmonie. En quelques années, et par l’entremise de ses cinq sens limités, un enfant se crée une représentation intérieure du monde d’une stupéfiante complexité, qu’il continuera à enrichir toute sa vie au fil de nouveaux apprentissages et de nouvelles expériences. Chaque conscience est un univers propre qui reflète l’univers extérieur.
Toutes les fois qu’un homme meurt, c’est un monde qui disparaît, le monde qu’il portait dans sa tête. – Arthur Schopenhauer
Laisser un commentaire