• Deep Learning
  • Data Science & IA
coversite_stories-Empower-DeepLearning.jpg

Quand et pourquoi avoir recours au Deep Learning ?

Le Deep Learning est un sujet d’intérêt majeur pour les ingénieurs et les data scientists… mais pas seulement : pour les décideurs, c’est un moyen de créer une solution d’intelligence artificielle promesse de valeur. Mais qu’est-ce que le Deep Learning ? Quel est son rôle exact dans l’IA ? Quelles sont les différences entre Deep Learning et Machine Learning ? Pour quels cas d’usage l’utiliser ?

Intelligence Artificielle et Machine Learning se nourrissent des données

Reconnaissance de formes, classification d’images, détection de mouvements spécifiques, conduite assistée, reconnaissance de visage, comptages (usagers …), analyse de sentiments, classement de documents, détection de spam, détection d’anomalie, détection de fraude, reconnaissance de voix, traduction automatique, recommandation de contenus, analyse de similarité (documents, sons … ), reconnaissance d’entités, aide au diagnostic… Les usages de l’IA sont nombreux, et cette liste est loin d’être exhaustive !

Pour bâtir de telles solutions, des règles sont en partie ou en totalité apprises et inférées à partir des données d’expériences passées : c’est le rôle du Machine Learning. Ces règles sont synthétisées dans un livrable, un « modèle » entraîné, adapté au contexte de données et à une problématique. Celui-ci est entraîné en se basant sur les connaissances présentes dans les données.

schema – 1_0.jpg

Illustration : apprentissage profond vs classique pour la classification d’images

 

Le principe est ainsi de collecter un maximum de données, de définir un cadre et un périmètre sur ces données, de labelliser une variable d’intérêt et enfin, par apprentissage, de matérialiser dans ce modèle les liens et les relations entre les données. L’application de ce modèle à de nouvelles données permettra alors de façon automatisée de prédire, prévoir, alerter, recommander, expliquer, déclencher…

Comment fonctionne le Deep Learning ? 

Le Deep Learning ou « apprentissage profond » correspond naturellement à cette description, car le Deep Learning… c’est du Machine Learning ! Un modèle de Deep Learning peut se voir comme un assemblage de différentes couches de traitement que les données vont traverser. Le praticien doit choisir ou créer la bonne topologie de réseau adapté à son cas d’usage.

Par exemple, dans le cas de la classification d’images, plusieurs étapes de traitement des données vont être appliquées successivement à la donnée d’entrée qui est l’image pixélisée :

  • des couches dites « convolutionnelles » identifient des transformations pertinentes sur les pixels,
  • des couches de « pooling » agrègent et condensent ces transformations,
  • des couches de « dropout » préviennent le surapprentissage, c’est-à-dire la tendance du modèle à être trop proche des données présentées lors de l’apprentissage. 

À la fin du réseau, plusieurs couches dites « fully connected » permettent de prédire à quelle catégorie appartient l’image.

Tous les paramètres de ces couches sont entraînés de manière itérative, avec pour objectif de minimiser les erreurs de prédiction, c’est cela le principe de l’apprentissage.

Quelles sont les différences entre Deep Learning et Machine Learning ?

  • Davantage de flexibilité : les architectures profondes (« deep ») sont très flexibles et permettent de modéliser des données qui peuvent être très différentes alors qu’un modèle traditionnel de Machine Learning sera plus restreint dans son domaine d’application.
  • Plus d’automatisation : en Deep Learning, le processus d’apprentissage englobe le pipeline complet, de l’extraction de variables explicatives jusqu’au modèle prédictif. Par exemple, dans le réseau de classification évoqué plus haut, les couches amont sont très spécialisées et peuvent reconnaître des motifs précis comme des traits ou des contours (extraction de features) et les couches en aval effectuent la classification proprement dite. À l’inverse, dans un pipeline de Machine Learning classique, ces deux opérations sont séparées et la partie extraction est bien souvent le fruit d’une inférence manuelle par un analyste sur la base d’intuitions et de savoir-faire.
  • Une complexité supérieure : le nombre de paramètres estimés dans un réseau de neurones profond se compte facilement en dizaines de millions.
  • Une certaine opacité : cette complexité et cet assemblage profond confèrent au Deep Learning un caractère « boîte noire » bien plus important que pour les méthodes traditionnelles (celles basées sur les arbres de décision par exemple). D’ailleurs, un axe majeur de développement actuel de la science des données est d’expliquer l’IA afin de prévenir ses biais, donner un meilleur contrôle et faciliter l’adoption par les équipes métier.
  • Enfin, c'est une différence majeure, la possibilité de pratique du "transfer learning" : il est possible d’utiliser un modèle de Deep Learning déjà entrainé sur des données génériques – par exemple sur l’ensemble du corpus de Wikipédia pour des données textuelles ou une sélection de quelques millions d’images – pour l’utiliser sur de nouvelles données, avec un faible temps de calcul et donc à moindre coût (on parle alors de « fine-tuning » : les paramètres ne sont pas à réentraîner de zéro, seulement à ajuster).

Quand utiliser le Deep Learning ?

De manière générale, le Deep Learning répond mieux à des problématiques opérationnelles où le modèle est en production pour être appliqué à de nouveaux flux de données. Les modèles de Deep Learning se prêtent en effet bien à l’auto-apprentissage, par exemple pour améliorer de façon continue l’utilisation d’un service numérique.

Pour apprendre, un modèle peut avoir besoin de dizaines de milliers de cas labellisés : le Deep Learning est donc pertinent lorsque l’on dispose d’un volume important de données étiquetées. Toutefois, dans certains cas assez précis et dans lesquels les données sont assez homogènes (comme des textes ou images), quelques Illustrations : apprentissage profond vs classique pour la classification d’images milliers de cas suffisent à trouver un modèle donnant de bons classements.

Il est aussi particulièrement adapté aux données non structurées (images, vidéo, sons, signaux, textes) desquelles il est plus difficile d’extraire manuellement des variables discriminantes. Sur des analyses d’images de véhicules par exemple, le modèle est capable de comprendre SEUL ce qui permet de distinguer un camion d’un utilitaire ou d’une voiture : le nombre de roues, la hauteur, la longueur, la largeur, le nombre de vitres, etc.

Cette propriété peut également se retourner contre le praticien car le Deep Learning peut fortement refléter dans les décisions du modèle les biais présents dans les données : si toutes les images de camions sont prises dans un parking, ce sera cet environnement qui contribuera à la décision de classer une image en camion plutôt que les caractéristiques du camion lui-même qui seront ignorées par le processus d’extraction.

À l’inverse, utiliser le Deep Learning à partir de données déjà structurées est souvent non pertinent car on ne pourra tirer beaucoup du processus d’extraction des variables. En outre, l’aspect « boîte noire » du Deep Learning sera un frein à la compréhension des facteurs contributeurs au modèle et le rendra mal adapté à des cas d’usages dont la vocation est justement d’apporter des explications et des éclairages.

En résumé, le Deep Learning est un réel levier pour créer des modèles performants, sur des données volumineuses et complexes (non structurées), mais il doit être utilisé à bon escient, pour ne pas ajouter de la complexité et de l’opacité sur des problématiques où d’autres méthodologies répondront de manière plus efficace.

Comment se mettre au Deep Learning ?

Les développeurs peuvent s’appuyer sur les nombreux tutoriels et MOOC (« Massive open online course ») à disposition. Au niveau langage informatique, Python offre un cadre complet pour apprendre et mettre en œuvre le Deep Learning grâce à ses fonctionnalités de traitement d’images, du signal et du texte, ainsi que ses librairies spécialisées, telles que « keras, tensorflow, pytorch ou spacy ».


Demain, les usages du Deep Learning vont continuer à s’étendre dans de nombreuses activités : santé, médecine, défense, sécurité, industrie, …cet essor s’accompagnera d’une exigence de transparence, transparence demandée pour s’assurer de l’absence de biais dans les décisions prises par les algorithmes.

Aujourd’hui, l’actualité nous rattrape … et le Deep Learning peut contribuer à la réponse de l’industrie numérique face à la pandémie. Citons l’essor de la téléconsultation et de l’hospitalisation à domicile, les applications utilisées par le patient pourraient contenir une aide au diagnostic basée sur l’enregistrement de ses propres données. Une étude en cours, menée par l’université de Cambridge vise notamment à construire une aide au diagnostic basée sur un apprentissage automatique d’échantillons d’enregistrement de toux.


Article écrit par :

PORTRAIT EPSILON Damien Garrouste

Damien Garrouste

Senior Manager Data Science