Quels sont les inconvénients des CNN ?

Les CNN présentent des inconvénients tels qu'un temps de formation long, la nécessité de disposer de grands ensembles de données étiquetées et une susceptibilité au surapprentissage. La complexité du réseau peut également affecter les performances. Cependant, les CNN restent un outil largement utilisé et efficace en vision par ordinateur, notamment pour la détection et la segmentation d'objets, malgré les limites des tâches nécessitant des connaissances contextuelles comme le traitement du langage naturel.

Les réseaux neuronaux convolutionnels présentent plusieurs inconvénients qui peuvent rendre leur utilisation difficile dans certaines applications d'apprentissage automatique. Par exemple, la formation des CNN peut prendre un certain temps, en particulier pour les grands ensembles de données, car les CNN sont coûteux en termes de calcul. De plus, la création de l'architecture CNN peut être difficile et nécessite une compréhension approfondie des idées fondamentales des réseaux neuronaux artificiels.

Un autre inconvénient est que les CNN ont besoin de beaucoup de données étiquetées pour s'entraîner efficacement. Cela peut constituer une contrainte sérieuse dans les circonstances où peu de données sont disponibles. Les CNN ne sont pas non plus toujours efficaces dans les tâches qui nécessitent davantage de connaissances contextuelles, comme le traitement du langage naturel, même s'ils sont assez performants dans les tâches de reconnaissance d'images.

Le nombre et le type de couches utilisées dans la conception de CNN peuvent affecter les performances. Par exemple, l'ajout de couches supplémentaires peut améliorer la précision, mais augmenter en même temps la complexité du réseau et les coûts de calcul. Les architectures CNN d'apprentissage profond sont également vulnérables au surajustement, qui se produit lorsqu'un réseau devient trop spécialisé dans les données d'entraînement et fonctionne mal sur de nouvelles données non entraînées.

Malgré ces inconvénients, les CNN restent un outil largement utilisé et très efficace pour les algorithmes d’apprentissage profond et d’apprentissage automatique dans le domaine des réseaux de neurones artificiels, notamment la segmentation, la détection d’objets et la reconnaissance d’images. Cela dit, les CNN resteront un acteur clé de la vision par ordinateur.

Quels sont les avantages des CNN ?

Les CNN sont privilégiés dans les tâches de vision par ordinateur en raison de leurs avantages, notamment l'invariance de traduction, le partage des paramètres, les représentations hiérarchiques, la résilience aux changements et la formation de bout en bout.

Les réseaux neuronaux convolutionnels présentent plusieurs avantages, ce qui en fait un choix intéressant pour diverses tâches de vision par ordinateur. L'un de leurs principaux avantages est l'invariance de translation, une caractéristique des CNN qui leur permet de reconnaître des objets dans une image quelle que soit leur position. Des couches convolutionnelles sont utilisées pour y parvenir en appliquant des filtres à l'image d'entrée complète afin que le réseau puisse apprendre des caractéristiques invariantes de translation.

L'utilisation du partage de paramètres, dans lequel le même ensemble de paramètres est partagé entre toutes les zones de l'image d'entrée, est un autre avantage des CNN. En conséquence, le réseau a moins de paramètres et peut mieux généraliser les nouvelles données, ce qui est crucial lorsque l'on travaille avec des ensembles de données volumineux.

Les CNN peuvent également apprendre des représentations hiérarchiques de l'image d'entrée, les couches supérieures apprenant des caractéristiques plus complexes comme les pièces et les formes des objets, tandis que les couches inférieures apprennent des éléments plus simples comme les bords et les textures. Pour les tâches difficiles comme la détection et la segmentation d'objets, ce modèle hiérarchique permet au réseau d'apprendre des caractéristiques à de nombreux niveaux d'abstraction.

Les réseaux neuronaux convolutionnels sont adaptés aux applications du monde réel car ils résistent aux changements d'éclairage, de couleur et aux minuscules distorsions de l'image d'entrée. Enfin, les réseaux neuronaux convolutionnels peuvent être formés de bout en bout, ce qui permet à la descente de gradient d'optimiser simultanément tous les paramètres du réseau pour des performances et une convergence plus rapide. La descente de gradient est un algorithme d'optimisation utilisé pour ajuster de manière itérative les paramètres du modèle en minimisant la fonction de perte dans le sens du gradient négatif.

Quels sont les types de réseaux de neurones convolutifs ?

Il existe plusieurs types de réseaux neuronaux convolutifs, notamment les CNN traditionnels, les réseaux neuronaux récurrents, les réseaux entièrement convolutifs et les réseaux de transformateurs spatiaux, entre autres.

CNN traditionnels

Les CNN traditionnels, également appelés CNN « vanilla », se composent d’une série de couches convolutionnelles et de regroupement, suivies d’une ou plusieurs couches entièrement connectées. Comme mentionné précédemment, chaque couche convolutionnelle de ce réseau exécute une série de convolutions avec une collection de filtres enseignables pour extraire des caractéristiques de l’image d’entrée.

L’architecture Lenet-5, l’un des premiers CNN efficaces pour la reconnaissance des chiffres manuscrits, illustre un CNN conventionnel. Il comporte deux ensembles de couches convolutionnelles et de pooling suivant deux couches entièrement connectées. L’efficacité des CNN dans l’identification d’images a été prouvée par l’architecture Lenet-5, ce qui a également permis leur utilisation plus largement répandue dans les tâches de vision par ordinateur.

Réseaux neuronaux récurrents

Les réseaux neuronaux récurrents (RNN) sont un type de réseau neuronal capable de traiter des données séquentielles en gardant une trace du contexte des entrées précédentes. Les réseaux neuronaux récurrents peuvent gérer des entrées de longueurs variables et produire des sorties en fonction des entrées précédentes, contrairement aux réseaux neuronaux à propagation directe classiques, qui ne traitent les données d'entrée que dans un ordre fixe.

Par exemple, les RNN peuvent être utilisés dans des activités de PNL telles que la génération de texte ou la traduction de langues. Un réseau neuronal récurrent peut être formé sur des paires de phrases dans deux langues différentes pour apprendre à traduire entre les deux.

Le RNN traite les phrases une par une, en produisant une phrase de sortie en fonction de la phrase d'entrée et de la sortie précédente à chaque étape. Le RNN peut produire des traductions correctes même pour des textes complexes car il garde une trace des entrées et des sorties passées.

Réseaux entièrement convolutifs

Les réseaux entièrement convolutifs (FCN) sont un type d'architecture de réseau neuronal couramment utilisé dans les tâches de vision par ordinateur telles que la segmentation d'images, la détection d'objets et la classification d'images. Les FCN peuvent être formés de bout en bout à l'aide de la rétropropagation pour catégoriser ou segmenter les images.

La rétropropagation est un algorithme d'apprentissage qui calcule les gradients de la fonction de perte par rapport aux pondérations d'un réseau neuronal. La capacité d'un modèle d'apprentissage automatique à prédire la sortie anticipée pour une entrée donnée est mesurée par une fonction de perte.

Les réseaux neuronaux convolutionnels sont uniquement basés sur des couches convolutionnelles, car ils ne possèdent aucune couche entièrement connectée, ce qui les rend plus adaptables et plus efficaces en termes de calcul que les réseaux neuronaux convolutionnels classiques. Un réseau qui accepte une image d'entrée et renvoie l'emplacement et la classification des objets dans l'image est un exemple de réseau neuronal convolutionnel.

Réseau de transformateurs spatiaux

Un réseau de transformateurs spatiaux (STN) est utilisé dans les tâches de vision par ordinateur pour améliorer l'invariance spatiale des caractéristiques apprises par le réseau. La capacité d'un réseau neuronal à reconnaître des motifs ou des objets dans une image indépendamment de leur emplacement géographique, de leur orientation ou de leur échelle est connue sous le nom d'invariance spatiale.

Un réseau qui applique une transformation spatiale apprise à une image d’entrée avant de la traiter davantage est un exemple de réseau STN. La transformation peut être utilisée pour aligner des objets dans l’image, corriger la distorsion de perspective ou effectuer d’autres modifications spatiales pour améliorer les performances du réseau sur une tâche spécifique.

Une transformation fait référence à toute opération qui modifie une image d'une manière ou d'une autre, comme la rotation, la mise à l'échelle ou le recadrage. L'alignement fait référence au processus consistant à garantir que les objets d'une image sont centrés, orientés ou positionnés de manière cohérente et significative.

Lorsque les objets d'une image apparaissent de travers ou déformés en raison de l'angle ou de la distance à laquelle l'image a été prise, une distorsion de perspective se produit. L'application de plusieurs transformations mathématiques à l'image, telles que les transformations affines, peut être utilisée pour corriger la distorsion de perspective. Les transformations affines préservent les lignes parallèles et les rapports de distances entre les points pour corriger la distorsion de perspective ou d'autres changements spatiaux dans une image.

Les changements spatiaux désignent toute modification de la structure spatiale d'une image, comme le retournement, la rotation ou la translation de l'image. Ces modifications peuvent augmenter les données d'entraînement ou répondre à des défis spécifiques de la tâche, tels que l'éclairage, le contraste ou les variations d'arrière-plan.

Comment fonctionnent les réseaux de neurones convolutifs ?

Les réseaux neuronaux convolutifs fonctionnent en extrayant des caractéristiques des données d'entrée via des couches convolutives et en apprenant à classer les données d'entrée via des couches entièrement connectées.

Les étapes impliquées dans le fonctionnement des réseaux neuronaux convolutifs sont les suivantes :

  • Couche d'entrée : la couche d'entrée (la première couche d'un CNN) prend des données brutes en entrée, comme une image ou une vidéo, et les envoie à la couche suivante pour traitement.

  • Couche convolutionnelle : l'extraction des caractéristiques a lieu dans la couche convolutionnelle. Cette couche applique une collection de filtres ou de noyaux pour extraire des caractéristiques telles que des arêtes, des coins et des formes à partir des données d'entrée.

  • Couche ReLU : pour assurer la non-linéarité de la sortie et améliorer les performances du réseau, une fonction d'activation d'unité linéaire rectifiée (ReLU) est fréquemment implémentée après chaque couche convolutionnelle. ReLU génère directement l'entrée si elle est positive et génère zéro si elle est négative.

  • Couche de regroupement : les cartes de caractéristiques de la couche convolutionnelle sont formées avec une couche de regroupement, ce qui réduit leur dimensionnalité. Le regroupement maximal est une technique couramment utilisée où la valeur maximale de chaque patch de la carte de caractéristiques est prise comme sortie.

  • Couche entièrement connectée : la couche entièrement connectée prend la sortie aplatie de la couche de regroupement et applique un ensemble de pondérations pour produire la sortie finale, qui peut être utilisée pour des tâches de classification ou de prédiction.

Voici une illustration de la manière dont CNN classerait les photos de chats et de chiens :

  • Étape 1 : la couche d'entrée reçoit des images à 3 canaux (RVB) d'un chien ou d'un chat et d'autres données d'image brutes. Un format à 3 canaux (RVB) est un format standard utilisé pour représenter des images couleur dans les réseaux neuronaux, chaque pixel étant représenté par trois valeurs représentant l'intensité des canaux de couleur rouge, vert et bleu.

  • Étape 2 : la couche convolutionnelle applique une série de filtres à l’image d’entrée pour extraire des caractéristiques telles que les bords, les coins et les formes.

  • Étape 3 : la sortie de la couche convolutionnelle devient non linéaire en raison de la couche ReLU.

  • Étape 4 : En prenant la valeur maximale dans chaque patch de carte de caractéristiques, la couche de regroupement réduit la dimensionnalité des cartes de caractéristiques créées par la couche convolutionnelle.

  • Étape 5 : De nombreuses couches convolutives et de regroupement sont empilées pour extraire des caractéristiques progressivement complexes de l’image d’entrée.

  • Étape 6 : La couche d'aplatissement convertit la sortie de la couche précédente en un vecteur unidimensionnel ou 1D (une séquence de nombres disposés sur une seule ligne ou colonne, chacun représentant une caractéristique). Ensuite, une couche entièrement connectée reçoit la sortie aplatie de la dernière couche de regroupement et applique un ensemble de pondérations pour produire la sortie finale, identifiant si l'image est celle d'un chat ou d'un chien.

Le CNN est formé à l'aide d'un ensemble d'images étiquetées, les pondérations des filtres et des couches entièrement connectées étant ajustées pendant la formation pour minimiser l'erreur entre les étiquettes prédites et réelles. Une fois formé, le réseau neuronal convolutionnel peut classer avec précision de nouvelles images inédites de chats et de chiens.

Que sont les réseaux de neurones convolutifs dans l’apprentissage profond ?

Les réseaux neuronaux convolutifs sont utilisés dans les tâches de vision par ordinateur, qui utilisent des couches convolutives pour extraire des caractéristiques des données d'entrée.

Les réseaux de neurones convolutifs (CNN) sont une classe de réseaux neuronaux profonds couramment utilisés dans les tâches de vision par ordinateur telles que la reconnaissance d'images et de vidéos, la détection d'objets et la segmentation d'images.

Les réseaux neuronaux sont des modèles d'apprentissage automatique constitués de nœuds interconnectés qui traitent les informations pour prendre des décisions, tandis que les réseaux neuronaux profonds comportent plusieurs couches cachées qui leur permettent d'apprendre des représentations complexes pour diverses tâches. Ils imitent tous deux la structure et le fonctionnement du cerveau humain. La vision par ordinateur est un domaine de l'intelligence artificielle (IA) qui vise à permettre aux machines d'interpréter et de comprendre les données visuelles du monde.

Bien que la reconnaissance d'images et de vidéos implique la classification ou la reconnaissance d'objets, de scènes ou d'actions dans des photos ou des vidéos, la détection d'objets implique la localisation de certains éléments à l'intérieur d'une image ou d'une vidéo. La segmentation d'image consiste à diviser une image en segments ou régions significatifs pour une analyse ou une manipulation ultérieure.

Les CNN utilisent plusieurs couches convolutionnelles pour extraire automatiquement des caractéristiques des données d'entrée. Les données d'entrée sont soumises à des filtres par les couches convolutionnelles, les cartes de caractéristiques produites étant transmises à d'autres couches de traitement. Les couches convolutionnelles sont les éléments de base des CNN qui effectuent l'opération de filtrage et d'extraction de caractéristiques sur les données d'entrée.

Le filtrage est le processus de convolution d'une image avec un filtre pour extraire des caractéristiques, tandis que l'extraction de caractéristiques est le processus d'identification de modèles ou de caractéristiques pertinents à partir des images convoluées.

Les couches de regroupement, qui sous-échantillonnent la sortie des couches convolutionnelles pour réduire le coût de calcul et augmenter la capacité du réseau à généraliser à de nouvelles entrées, sont fréquemment incluses dans les CNN en plus des couches convolutionnelles. Les couches typiques supplémentaires incluent les couches de normalisation, qui aident à réduire le surajustement et à améliorer les performances du réseau, et les couches entièrement connectées, qui sont utilisées pour les tâches de classification ou de prédiction.

De nombreuses applications, telles que la reconnaissance faciale, les voitures autonomes, l'analyse d'images médicales et le traitement du langage naturel (NLP), ont largement recours aux CNN. Ils ont également été utilisés pour obtenir des résultats de pointe dans les tâches de classification d'images, comme le défi ImageNet.