Deep Learning

 

Deep Learning

3 choses à savoir

Le Deep Learning est une méthode de Machine Learning qui consiste à enseigner à des ordinateurs ce dont les humains sont naturellement capables : apprendre par l’exemple. Il s’agit d’une technologie essentielle au fonctionnement des voitures autonomes, car elle leur permet, par exemple, de reconnaître un panneau stop ou de différencier un piéton d’un lampadaire. C’est également sur ce principe que se basent les systèmes de commande vocale des appareils grand public, tels que les téléphones, les tablettes, les téléviseurs ou les haut-parleurs mains libres. Ces derniers temps, le Deep Learning attire beaucoup l’attention, et pour cause : il obtient des résultats auparavant irréalisables.

Le Deep Learning apprend à un modèle informatique comment réaliser des tâches de classification directement à partir d’images, de textes ou d’audio. Les modèles de Deep Learning peuvent atteindre un niveau de précision exceptionnel, parfois supérieur aux performances humaines. L’entraînement des modèles s’effectue via un vaste ensemble de données labellisées et d’architectures de réseaux de neurones qui contiennent de nombreuses couches.

Pourquoi le Deep Learning est important

Comment le Deep Learning obtient-il des résultats si impressionnants ?

Grâce à un seul principe : la précision. Les niveaux de précision de reconnaissance du Deep Learning n’ont jamais été aussi élevés. Les produits électroniques grand public peuvent ainsi répondre aux attentes client, ce qui est vital pour les applications où prime la sécurité, comme c’est le cas pour les véhicules autonomes. Des progrès récents ont amélioré le Deep Learning à tel point qu’il surpasse désormais les capacités humaines dans la réalisation de certaines tâches, telles que la classification d’objets dans des images.

Alors que les premières théories concernant le Deep Learning remontent aux années 1980, ce n’est que récemment qu’il est devenu exploitable. En voici les raisons :

  1. Le Deep Learning nécessite un vaste jeu de données labellisées. Le développement de voitures autonomes s’appuie par exemple sur des millions d’images et des milliers d’heures de vidéo.
  2. Le Deep Learning exige une puissance de calcul considérable. Les GPU haute performance sont dotés d’une architecture parallèle, qui est efficace pour le Deep Learning. Lorsque l’on y associe des clusters ou du cloud computing, il devient possible pour les équipes de développement de réduire la durée d’entraînement de réseaux de Deep Learning, de plusieurs semaines à quelques heures ou moins.
Panel Navigation

Exemples d’application de Deep Learning

Des applications de Deep Learning sont utilisées dans divers secteurs, de la conduite automatisée aux dispositifs médicaux.

Conduite automatisée : Les chercheurs du secteur automobile ont recours au Deep Learning pour détecter automatiquement des objets tels que les panneaux stop et les feux de circulation. Le Deep Learning est également utilisé pour détecter les piétons, évitant ainsi nombre d’accidents.

Aérospatiale et défense : Le Deep Learning sert à identifier des objets à partir de satellites utilisés pour localiser des zones d’intérêt et identifier quels secteurs sont sûrs ou dangereux pour les troupes au sol.

Recherche médicale : À l’aide du Deep Learning, les chercheurs en cancérologie peuvent dépister automatiquement les cellules cancéreuses. Des équipes de l’Université de Californie à Los Angeles (UCLA) ont conçu un microscope qui génère un ensemble de données de grande dimension afin d’entraîner une application de Deep Learning à identifier avec précision des cellules cancéreuses.

Automatisation industrielle : Le Deep Learning participe à l’amélioration de la sécurité des employés travaillant à proximité d’équipements lourds, en détectant automatiquement les situations dans lesquelles la distance de sécurité qui sépare le personnel ou les objets des machines est insuffisante.

Électronique : Le Deep Learning est utilisé pour la reconnaissance audio et vocale. Par exemple, les appareils d’assistance à domicile qui répondent à votre voix et connaissent vos préférences fonctionnent grâce à des applications de Deep Learning.

Panel Navigation

Fonctionnement du Deep Learning

La plupart des méthodes de Deep Learning utilisent des architectures de réseaux de neurones, ce qui explique pourquoi il est souvent question de réseaux de neurones profonds pour désigner des modèles de Deep Learning.

Le terme « profond » se rapporte généralement au nombre de couches cachées du réseau de neurones. Les réseaux de neurones classiques (4:37) ne comportent que 2 à 3 couches cachées, tandis que les réseaux profonds peuvent en compter jusqu’à 150.

L’entraînement des modèles s’effectue à l’aide de vastes ensembles de données labellisées et d’architectures de réseaux de neurones qui apprennent des caractéristiques directement depuis les données, sans avoir à effectuer une extraction manuelle.

Figure 1 : Les réseaux de neurones sont organisés en couches constituées d’un ensemble de nœuds interconnectés. Les réseaux peuvent être composés de plusieurs dizaines, voire plusieurs centaines de couches cachées.

Figure 1 : Les réseaux de neurones sont organisés en couches constituées d’un ensemble de nœuds interconnectés. Les réseaux peuvent être composés de plusieurs dizaines, voire plusieurs centaines de couches cachées.

Un des types de réseaux de neurones profonds le plus répandu est le réseau de neurones à convolution (CNN ou ConvNet). Un CNN convolue les caractéristiques apprises avec les données d’entrée, et utilise des couches à convolution 2D. Cette architecture est donc parfaitement adaptée au traitement des données 2D telles que les images.

Les réseaux de neurones à convolution éliminent la nécessité d’effectuer une extraction de caractéristiques manuelle, ce qui vous libère de la tâche d’identification des caractéristiques utilisées pour classer des images. Un réseau de neurones à convolution extrait des caractéristiques directement depuis des images. Les caractéristiques utilisées ne sont pas préentraînées : le réseau les apprend lui-même en s’entraînant sur des images. Cette extraction automatisée des caractéristiques permet aux modèles de Deep Learning d’atteindre un taux de précision particulièrement élevé pour les tâches de vision par ordinateur telles que la classification d’objets.

Figure 2 : Exemple de réseau composé de nombreuses couches à convolution. Des filtres sont appliqués à chaque image utilisée pour l’entraînement à différentes résolutions, et la sortie de chaque image convoluée est utilisée comme entrée pour la couche suivante.

Figure 2 : Exemple de réseau composé de nombreuses couches à convolution. Des filtres sont appliqués à chaque image utilisée pour l’entraînement à différentes résolutions, et la sortie de chaque image convoluée est utilisée comme entrée pour la couche suivante.

Les réseaux de neurones à convolution s’appuient sur plusieurs dizaines, voire plusieurs centaines de couches cachées pour apprendre à identifier les caractéristiques d’une image. La complexité des caractéristiques apprises augmente avec le nombre de couches cachées du réseau. La première couche cachée peut par exemple apprendre à détecter les contours de l’image, tandis que la dernière apprend à détecter des formes plus complexes spécialement adaptées à la forme de l’objet que l’on vise à reconnaître.

Qu’est-ce qui différencie le Machine Learning du Deep Learning ?

Le Deep Learning est une branche particulière du Machine Learning. Un processus de Machine Learning commence par l’extraction manuelle de caractéristiques pertinentes à partir d’images. En s’appuyant sur ces caractéristiques, un modèle qui catégorise les objets de l’image est ensuite créé. Dans un processus de Deep Learning, l’extraction de caractéristiques pertinentes à partir d’images est automatique. En outre, le Deep Learning effectue un apprentissage « de bout en bout » : à partir de données brutes, un réseau se voit assigner des tâches à accomplir (une classification, par exemple) et apprend comment les automatiser.

Une autre différence majeure est le fait que les algorithmes de Deep Learning évoluent avec les données, tandis que le Shallow Learning (apprentissage peu profond) converge. Le Shallow Learning désigne les méthodes de Machine Learning dont la progression s’arrête à partir d’un certain niveau de performance après l’alimentation du réseau en exemples supplémentaires et en données d’apprentissage.

Un des avantages majeurs des réseaux de Deep Learning réside dans leur capacité à continuer à s’améliorer en même temps que le volume de vos données augmente.

Figure 3 : Comparaison de méthodes de catégorisation de véhicules de Machine Learning (gauche) et de Deep Learning (droite).

Pour classer des images avec le Machine Learning, les choix de caractéristiques et de classificateur doivent être effectués manuellement. Avec le Deep Learning, l’extraction de caractéristiques et le processus de modélisation sont automatiques.

Choisir entre le Machine Learning et le Deep Learning

Le Machine Learning met diverses méthodes et modèles à votre disposition, que vous pouvez choisir en fonction de votre application, de la quantité de données que vous traitez et du type de problème que vous voulez résoudre. Pour réussir une application de Deep Learning, vous avez besoin d’un volume de données très important (des milliers d’images) pour entraîner le modèle, en plus d’un ou de plusieurs GPU (processeur graphique) pour traiter les données rapidement.

Lorsque vous devez faire un choix entre le Machine Learning ou le Deep Learning, posez-vous la question de savoir si vous pouvez utiliser un GPU haute performance et si vous disposez d’un grand volume de données labellisées. Si vous n’avez aucun de ces éléments en votre possession, il est probablement plus judicieux d’utiliser le Machine Learning plutôt que le Deep Learning. D’ordinaire, le Deep Learning est plus complexe, et nécessite un minimum de quelques milliers d’images pour obtenir des résultats fiables. Si vous pouvez utiliser un GPU haute performance, le modèle analysera toutes ces images plus rapidement.

Panel Navigation

Créer et entraîner des modèles de Deep Learning

Voici les trois méthodes d’utilisation du Deep Learning les plus répandues pour la classification d’objets :

L’entraînement à partir de zéro

Pour entraîner un réseau profond à partir de zéro, vous devez réunir un volume de données labellisées très important et concevoir une architecture de réseau qui apprendra les caractéristiques et le modèle. C’est une méthode adaptée aux nouvelles applications, ou à celles qui obtiendront de nombreuses catégories de résultats. Ce n’est pas une approche très répandue car, en raison du grand volume de données et du rythme d’apprentissage, l’entraînement des réseaux peut facilement s’étaler sur plusieurs jours, voire sur plusieurs semaines.

Transfer Learning (Apprentissage par transfert)

La plupart des applications de Deep Learning utilisent la méthode d’apprentissage par transfert, ou Transfer Learning, qui consiste à mettre au point un modèle préentraîné. Le processus commence avec un réseau existant, tel qu’AlexNet ou GoogLeNet, qu’il faut enrichir avec de nouvelles données contenant des classes auparavant inconnues du réseau. Une fois quelques ajustements effectués au réseau, vous pouvez effectuer une nouvelle tâche, telle que la catégorisation de chiens ou de chats uniquement, plutôt que de 1 000 objets différents. Cette technique présente également l’avantage de nécessiter un volume de données beaucoup plus faible (il faut traiter des milliers d’images, plutôt que des millions), faisant du calcul une affaire d’heures ou de minutes.

L’apprentissage par transfert nécessite une interface permettant d’accéder au contenu interne du réseau préexistant, pour y apporter des ajustements très précis et le perfectionner pour sa nouvelle tâche. MATLAB® propose des outils et des fonctions conçus pour vous assister dans l’utilisation de l’apprentissage par transfert.

Extraction de caractéristiques

Une approche de Deep Learning moins fréquente et plus spécialisée consiste à utiliser le réseau en tant qu’extracteur de caractéristiques. Puisque toutes les couches sont chargées d’apprendre certaines caractéristiques à partir d’images, nous pouvons récupérer ces caractéristiques depuis le réseau à n’importe quel moment du processus d’entraînement. Il est ensuite possible d’utiliser ces caractéristiques en tant que données d’entrée pour un modèle de Machine Learning tel que des machines à vecteurs de support (SVM).

Accélération de modèles de Deep Learning à l’aide de GPU

L’entraînement d’un modèle de Deep Learning peut prendre beaucoup de temps, de quelques jours à quelques semaines. L’accélération GPU permet de sensiblement réduire la durée de ce processus. Associer MATLAB à un GPU contribue à réduire la durée nécessaire pour entraîner un réseau et, dans le cadre d’un problème de classification d’images, cela peut réduire la durée de l’entraînement de quelques jours à quelques heures. Lorsque vous entraînez des modèles de Deep Learning, MATLAB utilise les GPU à sa disposition (le cas échéant) sans que vous ayez besoin de savoir concrètement comment programmer un GPU.

Figure 4 : Commandes de la Deep Learning Toolbox permettant d’entraîner votre propre réseau de neurones à convolution à partir de zéro ou d’utiliser un modèle préentraîné pour l’apprentissage par transfert.

Applications de Deep Learning

Il est possible d’utiliser des modèles préentraînés de réseaux de neurones pour appliquer le Deep Learning à vos problèmes via l’apprentissage par transfert ou l’extraction de caractéristiques. Pour les utilisateurs MATLAB, parmi les modèles disponibles figurent AlexNet, VGG-16 et VGG-19, ainsi que des modèles Caffe (par exemple issus de Caffe Model Zoo) importés à l’aide d’importCaffeNetwork.

117044_wl_Rutgers_fig1_wl.jpg

Utilisation d’AlexNet pour reconnaître des objets à l’aide de votre webcam

Identifiez les objets qui vous entourent à l’aide de MATLAB, d’une simple webcam et d’un réseau de neurones profond.

Detecting Low-Speed Car Crashes

Exemple : Détection d’objets à l’aide du Deep Learning

Outre la reconnaissance d’objets, qui identifie un objet particulier dans une image ou une vidéo, le Deep Learning peut également servir à la détection d’objets. La détection d’objets consiste à identifier et localiser un objet dans une scène et permet de localiser plusieurs objets dans l’image.

Le Deep Learning avec MATLAB

MATLAB simplifie le Deep Learning. En plus d’outils et de fonctions permettant de gérer de grands volumes de données, MATLAB propose des boîtes à outils spécialisées pour vous aider à développer des algorithmes de Machine Learning, de réseaux de neurones, de vision par ordinateur et de conduite automatisée.

En seulement quelques lignes de code, MATLAB vous permet d’utiliser le Deep Learning, sans pour autant que vous en soyez un spécialiste. Lancez-vous rapidement, créez et visualisez des modèles, et déployez-en sur des serveurs et sur des dispositifs embarqués.

Les équipes qui utilisent MATLAB pour le Deep Learning sont performantes, car cette solution leur permet de :

  1. Créer et visualiser des modèles en seulement quelques lignes de code.
  2. MATLAB vous permet de créer des modèles de Deep Learning en utilisant un minimum de code. Grâce à MATLAB, vous pouvez rapidement importer des modèles préentraînés ainsi que visualiser et déboguer des résultats intermédiaires tout en ajustant les paramètres d’apprentissage.

  3. Se servir du Deep Learning sans pour autant en être un spécialiste.
  4. À l’aide de MATLAB, vous pouvez apprendre et acquérir une expertise dans le domaine du Deep Learning. Pour la plupart, nous n’avons jamais suivi de formation sur le Deep Learning. Il faut apprendre sur le tas. Avec MATLAB, cet apprentissage est à la fois pratique et accessible. MATLAB permet en outre aux spécialistes du domaine d’utiliser le Deep Learning, plutôt que de confier cette tâche à des data scientists qui ne connaissent peut-être pas votre secteur d’activité ou votre application.

  5. Automatiser l’annotation de la vérité terrain sur des images et des vidéos.
  6. Avec MATLAB, les utilisateurs peuvent labéliser des objets dans des images de façon interactive et automatiser la labélisation de la vérité terrain dans des vidéos afin d’entraîner et de tester des modèles de Deep Learning. Cette approche interactive et automatisée permet d’obtenir de meilleurs résultats, plus rapidement.

  7. Intégrer le Deep Learning dans un processus unique.
  8. MATLAB peut regrouper plusieurs domaines en un processus unique. Grâce à MATLAB, il vous est possible de mener votre réflexion et votre programmation dans un environnement unique. Des outils et des fonctions sont mis à votre disposition pour le Deep Learning, ainsi que pour un éventail de domaines qui se rattachent aux algorithmes de Deep Learning, tels que le traitement du signal, la vision par ordinateur et l’analyse de données.

MATLAB vous permet d’intégrer des résultats à vos applications existantes. Il automatise le déploiement de vos modèles de Deep Learning sur des systèmes d’entreprise, des clusters, le cloud et des dispositifs embarqués.

En savoir plus sur le Deep Learning avec des exemples de code.

Pour plus d’informations sur l’entraînement et l’utilisation de modèles de Deep Learning, consultez les sections consacrées aux solutions MATLAB, Computer Vision Toolbox™, Statistics and Machine Learning Toolbox™, Deep Learning Toolbox™, et Automated Driving Toolbox™.