Un réseau neuronal convolutif (CNN ou « ConvNets ») est une architecture réseau pour le Deep Learning qui apprend directement à partir des données, ce qui évite d'extraire manuellement les caractéristiques.
Les réseaux neuronaux convolutifs sont particulièrement utiles pour trouver des patterns dans des images afin de reconnaître des objets, des visages et des scènes. Ils peuvent également être très efficaces pour classer des données autres que des images, telles que des contenus audio, des séries temporelles et des signaux.
Les applications qui font appel à la reconnaissance d'objets et à la Computer Vision, telles que les véhicules autonomes et les applications de reconnaissance faciale, reposent fortement sur les réseaux neuronaux convolutifs.
L'utilisation de réseaux neuronaux convolutifs pour le Deep Learning est devenue populaire grâce à trois facteurs importants :
Les réseaux neuronaux convolutifs offrent une architecture optimale pour découvrir et apprendre les principales caractéristiques des images et des séries temporelles. Les réseaux neuronaux convolutifs sont une technologie majeure, notamment dans les applications suivantes :
Un réseau neuronal convolutif peut comporter des dizaines ou des centaines de couches, chacune apprenant à détecter différentes caractéristiques d'une image. Des filtres sont appliqués à chaque image d'apprentissage à différentes résolutions, et la sortie de chaque image convoluée est utilisée comme entrée de la couche suivante. Les filtres peuvent porter sur des caractéristiques très simples, telles que la luminosité et les contours, et croitre en complexité sur des caractéristiques qui définissent l'objet de manière unique.
À l'instar des autres réseaux neuronaux, un réseau neuronal convolutif est composé d'une couche d'entrée, d'une couche de sortie et de nombreuses couches intermédiaires cachées.
Ces couches effectuent des opérations qui modifient les données dans le but d'apprendre des caractéristiques spécifiques aux données. Les trois couches les plus courantes sont : la couche de convolution, la couche d'activation ou ReLu et la couche de pooling.
Ces opérations sont répétées sur des dizaines ou des centaines de couches, chaque couche apprenant à identifier différentes caractéristiques.
Exemple d'un réseau composé de nombreuses couches convolutives. Des filtres sont appliqués à chaque image d'apprentissage à différentes résolutions, et la sortie de chaque image convoluée est utilisée comme entrée de la couche suivante.
Comme tout réseau neuronal classique, un réseau neuronal convolutif possède des neurones avec des pondérations et des biais. Le modèle apprend ces valeurs au cours du processus d'apprentissage, et les met continuellement à jour à chaque nouvel exemple d'apprentissage. Toutefois, dans le cas des réseaux neuronaux convolutifs, les pondérations et les valeurs de biais sont identiques pour tous les neurones cachés d'une couche donnée.
Concrètement, cela signifie que l'ensemble des neurones cachés détectent la même caractéristique (par exemple, un contour ou un blob) dans différentes régions de l'image. Ainsi, le réseau devient tolérant à la translation d'objets dans une image. Par exemple, un réseau entraîné à reconnaître des voitures sera en mesure d'identifier un véhicule, quel que soit son emplacement dans l'image.
Suite à l'apprentissage des caractéristiques dans de nombreuses couches, l'architecture d'un réseau neuronal convolutif passe à la classification.
L'avant-dernière couche, entièrement connectée, génère un vecteur de K dimensions, où K est le nombre de classes que le réseau sera capable de prédire. Ce vecteur contient les probabilités d'appartenance d'une image à chacune des classes.
La dernière couche de l'architecture du réseau neuronal convolutif utilise une couche de classification telle que softmax pour générer la sortie de la classification.
MATLAB® avec Deep Learning Toolbox™ vous permet de concevoir, d'entraîner et de déployer des réseaux neuronaux convolutifs.
MATLAB propose un large choix de modèles préentraînés issus de la communauté du Deep Learning, que vous pouvez utiliser pour apprendre et identifier les caractéristiques d'un nouveau jeu de données. Cette méthode, nommée apprentissage par transfert, est un moyen utile d'exploiter le Deep Learning sans avoir à partir de zéro. Des modèles comme GoogLeNet, AlexNet et Inception offrent un point de départ pour découvrir le Deep Learning, en tirant parti d'architectures éprouvées conçues par des experts.
Avec Deep Network Designer, vous pouvez importer des modèles préentraînés ou concevoir de nouveaux modèles à partir de zéro.
Application Deep Network Designer pour concevoir, visualiser et modifier des réseaux de Deep Learning interactivement.
Vous pouvez également entraîner des réseaux directement dans l'application et surveiller l'apprentissage avec les tracés des métriques de précision, de perte et de validation.
La mise au point d'un réseau préentraîné avec l'apprentissage par transfert est une méthode généralement beaucoup plus rapide et plus facile que l'apprentissage à partir de zéro. Il s'agit de la méthode qui nécessite la quantité de données et de ressources de calcul la plus faible. L'apprentissage par transfert utilise les connaissances d'un type de problème pour résoudre des problèmes similaires. Vous commencez avec un réseau préentraîné et vous l'utilisez pour apprendre une nouvelle tâche. L'un des avantages de l'apprentissage par transfert réside dans le fait que le réseau préentraîné a déjà appris un vaste ensemble de caractéristiques. Ces caractéristiques peuvent être appliquées à une large gamme d'autres tâches similaires. Par exemple, vous pouvez utiliser un réseau entraîné sur des millions d'images et l'entraîner à nouveau pour une nouvelle classification d'objets avec seulement quelques centaines d'images.
Un réseau neuronal convolutif est entraîné sur des centaines, des milliers, voire des millions d'images. Lorsque vous travaillez avec de grandes quantités de données et des architectures de réseaux complexes, les GPU peuvent accélérer considérablement le temps de traitement nécessaire pour entraîner un modèle.
Le GPU NVIDIA® accélère les tâches intensives en calcul telles que le Deep Learning.
La détection d'objets désigne le processus de localisation et de classification des objets dans les images et les vidéos. Computer Vision Toolbox™ offre des modèles d'apprentissage pour créer des détecteurs d'objets basés sur le Deep Learning à l'aide de YOLO et de Faster R-CNN.
Détection de mots-clés avec le Deep Learning
Cet exemple illustre comment entraîner un détecteur d'objets avec le Deep Learning et un algorithme de région utilisant des réseaux neuronaux convolutifs (R-CNN)
La reconnaissance vocale est utilisée dans la détection de mots-clés, qui consiste à reconnaître des mots ou phrases spécifiques et à les utiliser comme directives. Elle est, par exemple, utilisée pour activer des dispositifs et allumer des lumières.
Détection de mots-clés avec le Deep Learning
Cet exemple montre comment utiliser MATLAB pour identifier et détecter la présence de commandes vocales dans les contenus audio et comment ces commandes peuvent être exploitées dans le domaine des technologies d'assistance vocale.
Les réseaux neuronaux convolutifs sont utilisés dans la segmentation sémantique pour associer chaque pixel d'une image à une étiquette de classe correspondante. La segmentation sémantique intervient dans de nombreuses applications telles que la conduite autonome, les contrôles industriels, la classification de terrains et l'imagerie médicale. Les réseaux neuronaux convolutifs constituent la base de la construction d'un réseau de segmentation sémantique.
Segmentation sémantique avec le Deep Learning
Cet exemple montre comment utiliser MATLAB pour concevoir un réseau de segmentation sémantique, qui identifiera chaque pixel de l'image avec une étiquette correspondante.
MATLAB propose des outils et des fonctionnalités pour tout ce qui a trait au Deep Learning. Utilisez les réseaux neuronaux convolutifs pour enrichir vos workflows dans le domaine du traitement du signal, de la Computer Vision ou des communications et des radars.
Les produits qui supportent l'utilisation de réseaux neuronaux convolutifs pour l'analyse d'images incluent MATLAB, Computer Vision Toolbox™, Statistics and Machine Learning Toolbox™ et Deep Learning Toolbox.
Les réseaux neuronaux convolutifs nécessitent Deep Learning Toolbox. L'apprentissage et la prédiction sont supportés sur les GPU compatibles CUDA® dotés d'une capacité de calcul 3.0 ou supérieure. L'utilisation d'un GPU est fortement conseillée et nécessite Parallel Computing Toolbox™.