Le Deep Learning, c’est quoi et ça sert à quoi?

Par Vincent Coulombe, 12 septembre 2022

Grand responsable de l’explosion de la popularité de l’intelligence artificielle, le Deep Learning demeure toutefois encore une créature mystérieuse pour bien des professionnels. C’est pourquoi je vous propose de plonger, ou du moins de se mouiller l’orteil, dans cet univers fascinant qu’est celui de notre ami le Deep Learning. Mais avant, laissez-moi vous introduire ses grands frères : algorithmes et Machine Learning.

 
Figure 1 : Intelligence artificielle vs Machine Learning vs Deep Learning [1]

Algorithme

Algorithme, l’aîné de notre famille, est simplement une séquence d’instructions générant une sortie en fonction d’une entrée. Bref, ce n’est rien de plus qu’une recette. Je vous laisse d’ailleurs ma recette de dessert préférée en référence [2] vous m’en donnerez des nouvelles!

Machine Learning

Machine Learning, son cadet, définit l’ensemble des techniques permettant à un programme informatique de faire le même job qu’un algorithme sans avoir à être programmé explicitement.

C’est comme si on avait un cuisinier à qui on donnait des ingrédients et qu’au lieu de lui donner une recette, on le laissait se pratiquer des millions de fois jusqu’à ce qu’il soit capable de nous pondre un dessert à notre goût.

Là, vous vous demandez sûrement pourquoi se donner tout ce trouble? Pourquoi ne pas simplement lui donner une recette à notre pauvre cuisinier? Eh bien, dans 90 % des cas c’est exactement ce qu’on fait. On programme un algorithme pour exécuter une tâche. Toutefois, il existe BEAUCOUP de desserts (tâches) délicieux pour lesquels on n’a pas encore trouvé de recette. Par exemple, si je désire créer un programme informatique capable de trouver où sont les défauts sur une pièce, je suis bien mieux d’apprendre sur des milliers d’images de bonnes et de mauvaises pièces que d’essayer  d’imaginer puis de lister l’apparence de toutes les combinaisons des défauts possibles et imaginables.

Le Deep Learning

Deep Learning, le benjamin de notre famille, n’est ni plus ni moins qu’une technique de Machine Learning extrêmement performante! Surtout dans le contexte où nous avons beaucoup d’exemples à lui montrer.

Figure 2 : Le Deep Learning brille lorsqu’on a beaucoup d’exemples (de données) à lui montrer [3]

D’ailleurs, on utilise le terme Deep Learning pour qualifier des réseaux de neurones profonds. C’est-à-dire des réseaux de neurones à plusieurs couches cachées (hidden layers). Mais qu’est-ce qu’un réseau de neurones vous me direz? Eh bien ce n’est ni plus ni moins qu’une série de nœuds (neurones) arrangés en couches (layers) reliés par des flèches (poids ou weights). Le seul job du réseau est de transformer l’information, entrée dans l’Input Layer, lors de son passage entre les couches.

Le tout afin de ressortir une prédiction de l’autre côté. Il est ensuite possible de comparer la prédiction du réseau à la vérité afin de mesurer à quel point le réseau s’est trompé. On appelle cette mesure la Loss Function. Le réseau doit ensuite mettre à jour ses poids en fonction de cette erreur afin de minimiser ses chances de la refaire. Le tout à l’aide de l’algorithme de la Back Propagation qui repose sur la technique de la descente du gradient.

Par exemple, la Figure 3 illustre le calcul d’une Loss Function potentielle d’un réseau qui essaie d’apprendre à prédire correctement le chiffre 3. Ici, la différence entre la vérité (Actual Values) et la prédiction du modèle est punie au carré.

Figure 3 : Un réseau de neurones qui apprend à classer le nombre 3. [4]

L’utilité du Deep Learning

Étant qualifié d’approximateur universel, il est théorisé que les techniques du Deep Learning pourraient apprendre n’importe quoi. Celles-ci sont donc largement utilisées pour des tâches poussées comme :

  • Natural Language Processing
    • Résumer des textes
    • Traduire des textes
    • Analyser le sentiment des textes
    • Classifier des textes
    • Répondre à des questions
  • Computer Vision
    • Classifier des images
    • Détecter la présence d’objets sur des images
    • Compter le nombre d’objets sur des images
  • Reinforcement Learning
    • Apprendre une tâche à un robot
    • Systèmes de recommandations
    • Véhicules autonomes

Ces tâches, plus souvent qu’autrement, sont effectuées à la chaîne afin d’offrir un service qu’on appelle End-to-end (E2E) Neural Network. Par exemple, dans leur article « End to End Learning for Self-Driving Cars » Mariusz Bojarski et al proposent un système capable de contrôler un véhicule autonome. Ce système est donc en mesure d’apprendre à extraire la bonne information fournie par les caméras intégrées au véhicule et de prendre la bonne décision en fonction de cet intrant afin de garder le contrôle de la voiture.

Cela dit, le NLP, le Computer Vision et le Reinforcement Learning sont tous des sujets qui me passionnent et je compte les approfondir dans mes prochains blogues, autant via des textes plus haut niveau comme celui-ci que par des tutoriels plus poussés sur la façon de les entraîner.

Références

  1. https://blog.digimind.com/fr/insight-driven-marketing/intelligence-artificielle-social-media-listening-applications-concretes
  2. https://www.recipetineats.com/easy-chocolate-brownies/
  3. https://www.merkle.com/blog/dispelling-myths-deep-learning-vs-machine-learning
  4. https://towardsdatascience.com/an-introduction-to-gradient-descent-and-backpropagation-in-machine-learning-algorithms-a14727be70e9