Architecture CNN de base : explication des 5 couches du réseau neuronal convolutif [États-Unis]

Publié: 2023-04-16

Un CNN (Convolutional Neural Network) est un type de réseau neuronal d'apprentissage en profondeur qui utilise une combinaison de couches de convolution et de sous-échantillonnage pour apprendre des caractéristiques à partir de grands ensembles de données. Il est couramment utilisé pour les tâches de reconnaissance et de classification d'images. Les couches convolutionnelles appliquent des filtres aux données d'entrée et les couches de sous-échantillonnage réduisent la taille des données d'entrée. L'architecture Convolutional Neural Network vise à apprendre des caractéristiques à partir des données qui peuvent être utilisées pour classer ou détecter des objets dans l'entrée. Vous trouverez ci-dessous les 5 couches CNN expliquées .

Inscrivez-vous au cours d'apprentissage automatique des meilleures universités du monde. Gagnez des programmes Master, Executive PGP ou Advanced Certificate pour accélérer votre carrière.

Table des matières

5 couches d'un réseau neuronal convolutif

1. Couche convolutive :

Cette couche effectue l'opération de convolution sur les données d'entrée, qui extrait diverses caractéristiques des données.

Les couches convolutives dans une architecture de modèle CNN sont l'un des composants les plus vitaux des couches CNN . Ces couches sont chargées d'extraire les caractéristiques des données d'entrée et de former la base d'un traitement et d'un apprentissage ultérieurs.

Une couche convolutive consiste en un ensemble de filtres (également appelés noyaux) appliqués aux données d'entrée sous forme de fenêtre glissante. Chaque filtre extrait un ensemble spécifique de caractéristiques des données d'entrée en fonction des pondérations qui lui sont associées.

Le nombre de filtres utilisés dans la couche convolutive est l'un des hyperparamètres clés de l'architecture. Il est déterminé en fonction du type de données traitées ainsi que de la précision souhaitée du modèle. Généralement, plus de filtres se traduiront par plus de fonctionnalités extraites des données d'entrée, permettant aux architectures de réseau plus complexes de mieux comprendre les données.

L'opération de convolution consiste à multiplier chaque filtre par les données de la fenêtre glissante et à résumer les résultats. Cette opération est répétée pour tous les filtres, ce qui donne plusieurs cartes d'entités pour une seule couche convolutive. Ces cartes d'entités sont ensuite utilisées comme entrée pour les couches suivantes, permettant au réseau d'apprendre des entités plus complexes à partir des données.

Les couches convolutives sont à la base des architectures d'apprentissage en profondeur et sont utilisées dans diverses applications, telles que la reconnaissance d'images, le traitement du langage naturel et la reconnaissance vocale. En extrayant les caractéristiques les plus critiques des données d'entrée, les couches convolutionnelles permettent au réseau d'apprendre des modèles plus complexes et de faire de meilleures prédictions.

2. Couche de regroupement :

Cette couche effectue une opération de sous-échantillonnage sur les cartes d'entités, ce qui réduit la quantité de calculs nécessaires et contribue également à réduire le surajustement.

La couche de mutualisation est un élément essentiel de l' architecture de CNN . Il est généralement utilisé pour réduire la taille du volume d'entrée tout en extrayant des informations significatives des données. Les couches de regroupement sont généralement utilisées dans les dernières étapes d'un CNN, permettant au réseau de se concentrer sur des caractéristiques plus abstraites d'une image ou d'un autre type d'entrée. La couche de regroupement fonctionne en faisant glisser une fenêtre sur le volume d'entrée et en calculant une statistique récapitulative pour les valeurs dans la fenêtre.

Les statistiques courantes incluent la prise du maximum, de la moyenne ou de la somme des valeurs dans la fenêtre. Cela réduit la taille du volume d'entrée tout en préservant les informations importantes sur les données.

La couche de regroupement est également généralement utilisée pour introduire une invariance spatiale, ce qui signifie que le réseau produira la même sortie quel que soit l'emplacement de l'entrée dans l'image. Cela permet au réseau d'hériter de caractéristiques plus générales sur l'image plutôt que de simplement mémoriser son emplacement exact.

3. Couche d'activation :

Cette couche ajoute de la non-linéarité au modèle en appliquant une fonction d'activation non linéaire telle que ReLU ou tanh.

Une couche d'activation dans un CNN est une couche qui sert de transformation non linéaire sur la sortie de la couche convolutive. C'est un composant principal du réseau, lui permettant d'apprendre des relations complexes entre les données d'entrée et de sortie.

La couche d'activation peut être considérée comme une fonction qui prend la sortie de la couche convolutive et la mappe à un ensemble de valeurs différent. Cela permet au réseau d'apprendre des modèles plus complexes dans les données et de mieux généraliser.

Les fonctions d'activation courantes utilisées dans les CNN incluent ReLu (unité linéaire rectifiée), sigmoïde et tanh. Chaque fonction d'activation a un objectif différent et peut être utilisée dans différents scénarios.

ReLu est la fonction d'activation la plus couramment utilisée dans la plupart des réseaux convolutifs. Il s'agit d'une transformation non linéaire qui génère 0 pour toutes les valeurs négatives et la même valeur que l'entrée pour toutes les valeurs positives. Cela permet au réseau d'intégrer des modèles plus complexes dans les données.

Sigmoïde est une autre fonction d'activation couramment utilisée, qui génère des valeurs comprises entre 0 et 1 pour une entrée donnée. Cela aide le réseau à comprendre les relations complexes entre les données d'entrée et de sortie, mais est plus coûteux en calcul que ReLu.

Tanh est la fonction d'activation la moins couramment utilisée, qui génère des valeurs comprises entre -1 et 1 pour une entrée donnée.

La couche d'activation est un composant essentiel du CNN, car elle empêche la linéarité et améliore la non-linéarité dans la sortie. Il est essentiel de choisir la bonne fonction d'activation pour le réseau, car chaque fonction d'activation a un objectif différent et peut être utilisée dans différents scénarios. La sélection d'une fonction d'activation appropriée peut conduire à de meilleures performances de la structure CNN .

4. Couche entièrement connectée :

Cette couche connecte chaque neurone d'une couche à chaque neurone de la couche suivante, ce qui donne un réseau entièrement connecté.

Une couche entièrement connectée dans un CNN est une couche de neurones connectés à chaque neurone de la couche précédente du réseau. Cela contraste avec les couches convolutionnelles, où les neurones ne sont connectés qu'à un sous-ensemble de neurones de la couche précédente en fonction d'un modèle spécifique.

En connectant chaque neurone d'une couche à chaque neurone de la couche suivante, la couche entièrement connectée permet aux informations de la couche précédente d'être partagées sur l'ensemble du réseau, offrant ainsi la possibilité d'une compréhension plus complète des données.

Les couches entièrement connectées dans CNN sont généralement utilisées vers la fin d'une architecture de modèle CNN , après les couches convolutives et les couches de regroupement, car elles aident à identifier les modèles et les corrélations que les couches convolutives n'ont peut-être pas reconnues.

De plus, des couches entièrement connectées sont utilisées pour générer une frontière de décision non linéaire qui peut être utilisée pour la classification. En conclusion, les couches entièrement connectées font partie intégrante de tout CNN et fournissent un outil puissant pour identifier les modèles et les corrélations dans les données.

5. Couche de sortie :

Il s'agit de la dernière couche du réseau, qui produit les étiquettes ou les valeurs de sortie.

La couche de sortie d'un CNN est la dernière couche du réseau et est responsable de la production de la sortie. C'est la couche qui prend les caractéristiques extraites des couches précédentes et les combine d'une manière qui lui permet de produire la sortie souhaitée.

Une couche entièrement connectée est généralement utilisée lorsque la sortie est une valeur unique, comme un problème de classification ou de régression. Une seule couche de neurones est généralement utilisée lorsque le résultat est un vecteur, tel qu'une distribution de probabilité.

Une fonction d'activation softmax est utilisée lorsque la sortie est une distribution de probabilité, telle qu'une distribution de probabilité sur des classes. La couche de sortie d'un CNN est également chargée d'effectuer les calculs nécessaires pour obtenir la sortie souhaitée. Cela comprend la réalisation des transformations linéaires ou non linéaires nécessaires des entrées pour recevoir la sortie requise.

Enfin, la couche de sortie d'un CNN peut également être utilisée pour effectuer des techniques de régularisation, telles que l'abandon ou la normalisation par lots, afin d'améliorer les performances du réseau.

Conclusion

L' architecture CNN est un outil puissant pour les tâches de traitement d'images et de vidéos. Il s'agit d'une combinaison de couches convolutives, de couches de regroupement et de couches entièrement connectées. Il permet d'extraire des caractéristiques d'images, de vidéos et d'autres sources de données et peut être utilisé pour diverses tâches, telles que la reconnaissance d'objets, la classification d'images et la reconnaissance faciale. Dans l'ensemble, ce type d'architecture est très efficace lorsqu'il est appliqué à des fonctions et à des ensembles de données appropriés.

Acquérir un ensemble de compétences compétent en ML et DL avec upGrad

Avec le programme de certificat avancé d'upGrad en apprentissage automatique et en apprentissage en profondeur proposé par l'IIIT-B, vous pouvez acquérir des compétences en apprentissage en machine et en apprentissage en profondeur. Le programme couvre les principes fondamentaux de ML et DL, y compris des sujets tels que l'apprentissage supervisé et non supervisé, la régression linéaire et logistique, les réseaux de neurones convolutionnels, l'apprentissage par renforcement et le traitement du langage naturel. Vous apprendrez également à créer et à déployer des modèles ML et DL en Python et TensorFlow et à acquérir une expérience pratique en travaillant sur des projets réels.

Ce cours comprend également des avantages tels que:

  • Mentorat et conseils d'experts de l'industrie
  • Aide au placement pour vous aider à trouver le bon emploi
  • Un certificat avancé de l'IIIT Bangalore

Vous pouvez également consulter noscours gratuitsproposés par upGrad en gestion, science des données, apprentissage automatique, marketing numérique et technologie.Tous ces cours ont des ressources d'apprentissage de premier ordre, des conférences hebdomadaires en direct, des missions dans l'industrie et un certificat de fin de cours - le tout gratuitement !

Quelles sont les bibliothèques en Python qui peuvent être utilisées pour un CNN ?

Les bibliothèques en Python qui peuvent être utilisées pour un CNN incluent TensorFlow, Keras, PyTorch, Caffe, Theano, Scikit-learn, MxNet, CNTK, OpenCV et SciPy. Ces bibliothèques peuvent être utilisées pour obtenir des modules pré-construits pour créer des applications et implémenter facilement des algorithmes CNN.

Combien y a-t-il de dimensions dans les couches CNN ?

Les réseaux de neurones convolutifs contiennent des neurones disposés en 3 dimensions : largeur, hauteur et profondeur. Cette structure tridimensionnelle de neurones est présente dans la couche de convolution, qui fonctionne tout au long du processus informatique avec l'entrée donnée pour fournir la sortie résultante.

Puis-je développer un CNN en R ?

Oui, les CNN peuvent être développés en utilisant à la fois Python et R. Avec R fournissant des bibliothèques exceptionnellement détaillées, la création d'un réseau de neurones à convolution avec R est assez facile.