Deep Learning (Apprentissage profond)

Le Deep Learning avec MATLAB

Le Deep Learning est une branche du Machine Learning, ou apprentissage automatique, qui utilise plusieurs couches de traitement non linéaires pour apprendre des représentations de fonctions utiles directement à partir de données. Les modèles de Deep Learning peuvent atteindre un très haut niveau de précision dans le cadre de la classification d'objets, parfois supérieur aux performances humaines. L'entraînement des modèles s'effectue sur un vaste jeu de données labellisées et sur des architectures de réseaux de neurones contenant de nombreuses couches.

Le Deep Learning peut s'appliquer à de nombreux problèmes :

  • Classification d'images
  • Reconnaissance vocale
  • Traitement du langage naturel

Entraînement d'un modèle de Deep Learning

La précision du modèle de Deep Learning dépend en grande partie du volume de données utilisées pour entraîner le modèle. Les modèles les plus précis peuvent nécessiter des milliers, voire des millions, d'échantillons dont l'entraînement peut s'avérer chronophage. Une fois qu'un modèle de Deep Learning est entraîné, il peut être utilisé dans le cadre d'applications en temps réel, par exemple la détection de piétons dans les systèmes ADAS (Advanced Driver Assistance System, système d'aide à la conduite).

Utilisation des réseaux de neurones à convolution pour la classification d'images

Les réseaux de neurones à convolution, ou CNN, sont des architectures de Deep Learning très répandues. Les réseaux de neurones sont organisés en couches constituées d'un ensemble de nœuds interconnectés. Un tel réseau de neurones convolue les fonctions apprises avec les données d'entrée, et utilise des couches à convolution 2D. Cette architecture est donc parfaitement adaptée au traitement de données 2D, telles que les images.

Flux de traitement des données via un réseau de neurones à convolution entraîné pour effectuer une tâche de classification d'images. 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 premiers filtres peuvent être des fonctions très simples, comme la luminosité et les arêtes, et passer à des formes plus complexes à mesure que les couches évoluent.

Apprentissage par transfert

L'entraînement d'un réseau de neurones à convolution, ou CNN, nécessite un très grand volume de données car il doit apprendre des millions de pondérations (pour un problème de classification d'images classique). Plutôt que d'entraîner un réseau de neurones à convolution à partir de zéro, il est courant d'utiliser un modèle préentraîné pour extraire automatiquement des caractéristiques à partir d'un nouveau jeu de données. Cette méthode, appelée apprentissage par transfert, est une solution pratique pour appliquer le Deep Learning sans nécessiter un très grand jeu de données ni un entraînement très long.

Création d'un réseau de neurones à convolution à partir de zéro et utilisation d'un modèle préentraîné : comparaison en termes de complexité et de précision.

Accélération matérielle à 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 d'améliorer ce processus de façon significative. Les GPU contribuent à 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, ils peuvent réduire la durée de l'entraînement de quelques jours à seulement quelques heures.

Commandes de la Neural Network 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.

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 System Toolbox™, Statistics and Machine Learning Toolbox™ et Neural Network Toolbox™.

See also: Machine Learning, détection d'objets, reconnaissance d'objets, extraction de caractéristiques, reconnaissance d'images, reconnaissance de formes

Le Deep Learning avec MATLAB