Pas le temps de lire ? L’article est disponible en podcast

Machine Learning, Shallow Learning, Deep Learning, vous avez certainement entendu ces buzzwords relatifs au traitement de données. Mais c’est quoi? Ne cherchez plus, nous vous expliquons tout. Certaines parties de cet article sont un peu techniques, mais vous n’avez pas besoin de comprendre tous les détails pour vous familiariser avec ces concepts.

L’Intelligence Artificielle

L’Intelligence Artificielle (IA) est définie comme “L’ensemble de théories et de techniques mises en œuvre en vue de réaliser des machines capables de simuler l’intelligence humaine” (déf. Larousse). En réalité, l’IA fait référence à une forme particulière d’intelligence liée à l’étymologie du mot “intelligence”, à savoir la capacité de faire des choix en fonction d’un contexte. Pour une approche plus philosophique de l’Intelligence Artificielle et de ses limitations, n’hésitez pas à lire notre billet sur le dataïsme.

Il existe plusieurs formes d’Intelligence Artificielle, plus ou moins complexes et adaptées à différentes problématiques. Les modèles les plus simples d’Intelligence Artificielle sont de type algorithmique : on crée des règles qui définissent action de la machine dans un contexte précis, par exemple “arrivé à 10 cm d’un mur, faire un virage à gauche à 90° ”. Avec ce type d’intelligence artificielle, on peut faire en sorte qu’une voiture suive les lignes blanches de la route. Par contre, une telle voiture ne saura pas comment réagir s’il n’y a plus de lignes blanches ou s’il y a des déformations de la chaussée.
C’est la principale limitation des IA algorithmiques : la machine ne sait pas répondre si elle se retrouve dans une situation à laquelle elle n’a jamais été confrontée.

Pour développer des machines qui sont capables de répondre à des situations inédites, on va faire appel à une autre forme d’Intelligence Artificielle, le Machine Learning (Apprentissage Machine).

Machine Learning

Le Machine Learning consiste à créer des règles mathématiques qui seront utilisées par la machine pour s’entraîner à prendre une décision en fonction d’un contexte. Par extension, le Machine Learning désigne les techniques qui permettent d’entraîner les Intelligences Artificielles. Grâce à cet apprentissage, la machine pourra prendre une décision même dans les situations qu’elles n’a jamais rencontrées.

Il existe deux formes de Machine Learning : le Shallow Learning et le Deep Learning. La différence entre les deux méthodes d’apprentissage tient dans le fait que dans le Shallow Learning, la décision sera prise en fonction de critères précis, qui sont connus par la personne qui a créé l’Intelligence Artificielle. Dans le Deep Learning, on injecte des informations à la machine sans lui spécifier quels éléments elle doit prendre en compte, et c’est l’Intelligence Artificielle qui, par l’expérience, donnera une réponse. La force du Deep Learning est à double tranchant : la machine peut découvrir des motifs insoupçonnés pour répondre à une problématique, mais il n’est pas possible de savoir comment ses choix sont opérés.
Pour faire une analogie, prenons l’exemple d’un agent immobilier qui veut estimer le prix d’une maison. Il peut faire un calcul en tenant compte de la superficie du bâtiment, du nombre de chambres, la surface du terrain, la proximité d’un centre urbain, et ainsi de suite, et arriver ainsi à son estimation. Ou alors il peut faire appel à son instinct, son expérience. Il saura que telle maison vaut plus que telle autre, mais ne saura pas forcément expliquer rationnellement son évaluation. Dans le premier cas, on a affaire à une intelligence de type Shallow Learning, alors que dans le deuxième cas, on est dans le cas d’une intelligence de type Deep Learning.

Un exemple concret de Deep Learning est la nouvelle génération de voitures autonomes. Comment se passe la phase d’apprentissage de ces voitures? Des capteurs sont placés sur une grande quantité de véhicules qui sont conduits par des humains. Des millions de kilomètres de conduite sont ainsi enregistrés. Au final, la machine va reproduire la conduite d’un humain, sans qu’une règle lui ait été imposée, et on ne sait pas de quels paramètres elle tient compte pour prendre ses décisions de conduite.

Nous allons voir maintenant comment ces deux formes de Machine Learning fonctionnent.

Shallow Learning

Comme déjà expliqué, ce qui caractérise le Shallow Learning est qu’on indique à la machine les paramètres qu’elle doit considérer pour prendre une décision. On utilise directement des caractéristiques que l’on connaît, des variables concrètes et mesurables, pour entraîner l’Intelligence Artificielle.

Pour expliquer le fonctionnement du Shallow Learning, prenons un exemple : on veut entraîner une IA à prévoir le nombre de gens qui portent des gants en fonction de la température. On part du principe que plus il fait froid, plus le nombre de personne portant des gants est important. Le Shallow Learning, dans ce cas, consiste à comprendre la nature de relation entre la température et le nombre de gens qui portent des gants. Si on suppose que la relation est linéaire (c’est-à-dire que s’il fait X fois plus froid, il y aura X fois plus de gens qui porteront des gants), on peut écrire :
nombre de gens qui portent des gants = X * température

Dans ce cas, le modèle est “nombre de gens qui portent des gants = X * température” et l’apprentissage de l’IA consiste à trouver la valeur X.
Peut-être que la relation n’est pas linéaire, mais d’une autre nature. La personne qui paramètre le Shallow Learning devra donc déterminer la nature de la relation entre le nombre de gens qui portent des gants et la température. La machine va essayer de s’approcher au maximum de la réalité mais ne pourra sans doute pas trouver la fonction exacte. C’est ce qu’on appelle l’incertitude. En effet, les modèles mathématiques ne sont pas fiables à 100%, c’est pour ça que la météo se trompe parfois. Par contre, l’avantage du Machine Learning par rapport à l’intuition humaine, c’est qu’on connaît le degré d’incertitude. Quand on va l’interroger, l’IA va nous dire : “lorsqu’il fait 2°C, 120 personnes (plus ou moins 10) vont porter des gants”.

Deep Learning et réseaux de neurones

Le Deep Learning fait appel aux Réseaux de Neurones Artificiels (ANN pour Artificial Neural Network), un type d’Intelligence Artificielle qui a émergé dans les années 1980, avec des recherches fondatrices comme celles de Yann LeCun.
Les réseaux de neurones artificiels sont inspirés par le système nerveux biologique : une multitude de neurones reçoivent des informations d’un côté (inputs) et les traduisent en une réponse (output) de l’autre côté, qui permet de prendre une décision (par exemple “je touche une plaque (input) et je sens qu’elle est brûlante (output), donc je retire ma main (réponse)”).

Dans un réseau de neurones artificiels, les données à notre disposition constituent les premiers inputs (entrées). Dans chaque couche de neurones artificiels, chaque neurone reçoit chaque entrée avec un certain poids, et combine ces données avec une certaine fonction mathématique (addition, soustraction, multiplication, etc.). Cette fonction est appelée “fonction de combinaison”. La valeur renvoyée est alors filtrée par une fonction d’activation. Cette fonction détermine le seuil pour lequel le neurone est activé et renvoie le cas échéant une valeur (si le neurone n’est pas activé, il ne renvoie pas de valeur). S’il y a plusieurs couches de neurones, chaque couche reçoit des entrées depuis la couche de neurones précédente, et le processus est le même. Les neurones d’une même couche ne sont jamais connectés entre eux.

En Deep Learning, bien que les paramètres pris en compte par la machine pour sa prise de décision restent obscurs, c’est quand même la personne qui crée l’IA qui lui indique comment elle doit apprendre, en paramétrant le poids des liens ainsi que les fonctions de combinaison et d’activation. En réalité, l’humain dit à l’IA quels paramètres elle doit regarder, mais ne lui explicite pas comment elle doit les regarder.

Pour entraîner le réseau de neurones, on initialise des poids aléatoires pour chaque lien, et on lui soumet un exemple du jeu d’entraînement. Le réseau calcule et compare sa valeur de sortie au résultat attendu. Il répercute l’erreur en arrière pour ajuster le poids des liens, c’est la rétropropagation. Le nombre de liens augmente de façon exponentielle par rapport au nombre de neurones : plus le réseau possède de couches, plus l’algorithme de rétropropagation d’erreur a besoin d’étapes pour optimiser les poids.
Par contre, le réseau de neurones détecte tout seul les caractéristiques dont il a besoin pour répondre à la question.

C’est ce qui rend le Deep Learning très performant pour reconnaître des images : si on veut lui faire reconnaître des photos d’animaux, on n’a pas besoin de lui expliquer les caractéristiques de chaque animal. D’ailleurs, vous sauriez expliquer les différences caractéristiques entre un chien et un chat ? Probablement pas : vous avez juste vu beaucoup de chats et beaucoup de chiens et vous savez les reconnaître, même si vous ne savez pas pourquoi ils sont différents. Pour une IA de Deep Learning, c’est pareil: on l’entraîne avec une certaine quantité d’images (pour lesquelles on lui indique s’il s’agit de chiens ou de chats) et elle va apprendre toute seule les caractéristiques qui lui permettent de distinguer ces animaux. C’est en se basant sur ces caractéristiques auto-apprises qu’elle va pouvoir déterminer quel est l’animal sur une nouvelle photo qu’on lui montrera par la suite.

L’utilisation des ANN a fortement augmenté depuis 2010, grâce à l’augmentation de la puissance de calcul des ordinateurs modernes. Des ordinateurs de bureau peuvent désormais faire tourner des ANN simples.

En résumé

Nous avons vu 4 concepts-clé dans le Big Data et l’analyse de données :

  • Intelligence Artificielle : système informatique logiciel qui permet de prendre une décision en fonction d’un contexte. L’Intelligence Artificielle algorithmique ne permet pas à une machine de répondre à une situation nouvelle.
  • Machine Learning : désigne les techniques qui permettent d’entraîner les IA à prendre une décision dans un contexte donné, même dans une situation inédite.
    • Shallow Learning : c’est une famille de techniques de Machine Learning dans lesquelles on connaît à priori les variables que l’IA doit utiliser directement pour faire sa prédiction.
    • Deep learning : c’est une famille de techniques de Machine Learning qui fait appel aux réseaux de neurones artificiels et dans lesquelles l’IA découvre elle-même les caractéristiques importantes pour solutionner le problème auquel elle est confrontée. Ces caractéristiques n’ont souvent pas de représentation explicite.