Qu’est-ce que le Deep Learning ?

Le Deep Learning est une sous-partie du Machine Learning. Ce dernier consiste à créer des modèles à partir d’un ensemble de données. Nous parlons ainsi d’apprentissage, que nous séparons en deux grandes parties :
  • L’apprentissage supervisé : nous connaissons des valeurs de sortie attendues et nous entraînons le modèle à être le plus précis par rapport à ces valeurs. Ces valeurs peuvent être numériques auquel cas on parle de prédiction, ou des classes dans le cadre de la classification ;
  • – L’apprentissage non supervisé : nous disposons de données non labellisées à partir desquelles nous voulons, par exemple, créer différents groupes.
Dans le cas du Deep Learning, les modèles utilisés sont des réseaux de neurones inspirés des synapses du cerveau. Les réseaux sont séparés en plusieurs couches dans lesquelles chaque neurone réalise une opération simple sur les données qu’il reçoit et transmet le résultat à un ou plusieurs neurones de la couche suivante. Dans un réseau il y a toujours une couche d’entrée (input layer) qui reçoit les données brutes et une couche de sortie (output layer) qui donne le résultat du modèle. Entre les deux, il peut y avoir un grand nombre de couches cachées (hidden layers) traitant les données :  
Schéma des réseaux de neurones, modèles utilisés dans le cas du Deep Learning.
« Dans le cas du Deep Learning, les modèles utilisés sont des réseaux de neurones inspirés des synapses du cerveau. »
Ce genre de modèle est très avantageux car ils sont très performants lorsque nous leur fournissons un grand volume de données, avec notamment de très bonnes performances dans des sujets de reconnaissance d’images ou de traitement de texte.

 

Cas d’usage du Deep Learning

Historiquement, le Deep Learning a connu ses premiers grands résultats dans le domaine du traitement d’images, avec l’exemple du jeu de données MNIST (une base de données de chiffres écrits à la main) pour lequel les meilleurs modèles reconnaissent le chiffre écrit dans plus de 99.9% des cas Dans la lignée de cet usage lié à l’image, nous trouvons aujourd’hui des modèles de Deep Learning dans différents domaines tels que les voitures autonomes (le modèle sert à reconnaître par exemple les feux ou panneaux-stops) ou l’ingénierie médicale (aide à la réalisation de diagnostic, par exemple, sur des images d’IRM). Nous trouvons également de plus en plus d’applications dans le domaine du traitement automatique de langage ou de texte. Les exemples les plus connus étant les Chatbots présents sur de nombreux sites marchands ou les assistants vocaux qui doivent comprendre les actions qui leur sont demandées.

 

Le Deep Learning avec Python

Le langage de programmation le plus utilisé pour le Deep Learning est Python et ses nombreuses librairies Open Source autour du sujet :
  • Tensorflow est une librairie de Machine Learning développée par Google qui est très utilisée. Cette librairie permet de créer des modèles optimisés et de les déployer de façon robuste en production ;
  • – Keras est une autre librairie, spécialisée pour le Deep Learning et qui s’appuie sur Tensorflow. Elle permet de créer très rapidement des modèles de Deep Learning plus simplement qu’en utilisant directement Tensorflow ;
  • La librairie Pytorch est également un autre choix possible pour faire du Deep Learning. Elle est moins simple d’utilisation que Keras, mais meilleure en matière de calcul et permet de travailler sur de plus gros jeux de données.

 

Exemple : la classification de pneus de voiture

Un cas d’usage simple du Deep Learning est la classification d’images : dans cet exemple, nous allons nous intéresser à un modèle qui peut définir, à partir d’une photo d’un pneu, si celui-ci est à plat ou non. Pour créer ce modèle, un jeu de données d’entraînement suffit, c’est-à-dire une liste d’images de pneus crevés ou non avec la labellisation associée. À partir de ces images, nous pouvons entraîner un modèle qui sera capable de définir, pour une nouvelle image, l’état d’un pneu. Voici un exemple de ce que donne le modèle (le code et les données sont disponibles en annexes) :

 

Exemple du modèle permettant de définir l'état d'un pneu à partir d'images.  

Conclusion

Le Deep Learning permet la mise en place de modèles très performants, notamment pour classifier des images. Ces modèles peuvent être créés très rapidement grâce aux librairies disponibles sur Python. C’est aussi un domaine en évolution constante. Par exemple, avec l’arrivée de nouveaux cas d’usage ainsi que de nombreux articles scientifiques proposant de nouvelles approches, en particulier les modèles de types transformers.

 

Annexes

  • Code permettant la classification : LIEN
  • Lien pour accéder aux données : LIEN
Article rédigé par Maxime, agicien Data Scientist.  Autre article rédigé par Maxime :
  • Zoom sur la Data Science : comprendre la science des données : LIEN