Réseau de neurones convolutifs - Convolutional neural network

En apprentissage profond , un réseau de neurones convolutifs ( CNN ou ConvNet ) est une classe de réseaux de neurones artificiels , le plus souvent appliqué pour analyser l'imagerie visuelle. Ils sont également connus sous le nom de réseaux de neurones artificiels invariants par décalage ou invariants dans l' espace ( SIANN ), basés sur l'architecture à poids partagé des noyaux de convolution ou des filtres qui glissent le long des caractéristiques d'entrée et fournissent des réponses équivariantes de traduction connues sous le nom de cartes de caractéristiques. Contre-intuitivement, la plupart des réseaux de neurones convolutifs sont seulement équivariants , par opposition à invariants , à la traduction. Ils ont des applications dans la reconnaissance d'images et de vidéos , les systèmes de recommandation , la classification d'images , la segmentation d'images , l'analyse d'images médicales , le traitement du langage naturel , les interfaces cerveau-ordinateur et les séries temporelles financières .

Les CNN sont des versions régularisées des perceptrons multicouches . Les perceptrons multicouches signifient généralement des réseaux entièrement connectés, c'est-à-dire que chaque neurone d'une couche est connecté à tous les neurones de la couche suivante . La « connectivité totale » de ces réseaux les rend sujets au surapprentissage des données. Les moyens typiques de régularisation, ou de prévention du surentraînement, comprennent : la pénalisation des paramètres pendant l'entraînement (comme la perte de poids) ou la réduction de la connectivité (connexions ignorées, abandon, etc.) Les CNN adoptent une approche différente de la régularisation : ils tirent parti du modèle hiérarchique dans les données et assembler des motifs de complexité croissante en utilisant des motifs plus petits et plus simples gravés dans leurs filtres. Par conséquent, sur une échelle de connectivité et de complexité, les CNN se situent à l'extrême inférieur.

Les réseaux convolutifs ont été inspirés par des processus biologiques dans la mesure où le modèle de connectivité entre les neurones ressemble à l'organisation du cortex visuel animal . Les neurones corticaux individuels ne répondent aux stimuli que dans une région restreinte du champ visuel connue sous le nom de champ récepteur . Les champs récepteurs des différents neurones se chevauchent partiellement de sorte qu'ils couvrent tout le champ visuel.

Les CNN utilisent relativement peu de prétraitement par rapport aux autres algorithmes de classification d'images . Cela signifie que le réseau apprend à optimiser les filtres (ou noyaux) grâce à un apprentissage automatisé, alors que dans les algorithmes traditionnels, ces filtres sont conçus à la main . Cette indépendance par rapport aux connaissances préalables et à l'intervention humaine dans l'extraction de caractéristiques est un avantage majeur.

Définition

Le nom "réseau de neurones convolutifs" indique que le réseau utilise une opération mathématique appelée convolution . Les réseaux convolutifs sont un type spécialisé de réseaux de neurones qui utilisent la convolution à la place de la multiplication matricielle générale dans au moins une de leurs couches.

Architecture

Comparaison de la convolution, du pooling et des couches denses LeNet et AlexNet

Un réseau de neurones convolutifs se compose d'une couche d'entrée, de couches cachées et d'une couche de sortie. Dans tout réseau de neurones feed-forward, toutes les couches intermédiaires sont dites cachées car leurs entrées et sorties sont masquées par la fonction d'activation et la convolution finale . Dans un réseau de neurones convolutifs, les couches cachées comprennent des couches qui effectuent des convolutions. Cela inclut généralement une couche qui effectue un produit scalaire du noyau de convolution avec la matrice d'entrée de la couche. Ce produit est généralement le produit interne Frobenius et sa fonction d'activation est généralement ReLU . Au fur et à mesure que le noyau de convolution glisse le long de la matrice d'entrée pour la couche, l'opération de convolution génère une carte de caractéristiques, qui à son tour contribue à l'entrée de la couche suivante. Viennent ensuite d'autres couches telles que les couches de regroupement, les couches entièrement connectées et les couches de normalisation.

Couches convolutives

Dans un CNN, l'entrée est un tenseur de forme : (nombre d'entrées) x (hauteur d'entrée) x (largeur d'entrée) x ( canaux d' entrée ). Après avoir traversé une couche convolutive, l'image devient abstraite en une carte de caractéristiques, également appelée carte d'activation, de forme : (nombre d'entrées) x (hauteur de la carte de caractéristiques) x (largeur de la carte de caractéristiques) x ( canaux de la carte de caractéristiques ).

Les couches convolutives convoluent l'entrée et transmettent son résultat à la couche suivante. Ceci est similaire à la réponse d'un neurone du cortex visuel à un stimulus spécifique. Chaque neurone convolutif traite les données uniquement pour son champ récepteur . Bien que des réseaux de neurones à action directe entièrement connectés puissent être utilisés pour apprendre des caractéristiques et classer des données, cette architecture est généralement peu pratique pour des entrées plus importantes telles que des images haute résolution. Cela nécessiterait un nombre très élevé de neurones, même dans une architecture peu profonde, en raison de la grande taille d'entrée des images, où chaque pixel est une caractéristique d'entrée pertinente. Par exemple, une couche entièrement connectée pour une (petite) image de taille 100 x 100 a 10 000 poids pour chaque neurone de la deuxième couche. Au lieu de cela, la convolution réduit le nombre de paramètres libres, permettant au réseau d'être plus profond. Par exemple, quelle que soit la taille de l'image, l'utilisation d'une région de tuilage 5 x 5, chacune avec les mêmes poids partagés, ne nécessite que 25 paramètres d'apprentissage. L'utilisation de poids régularisés sur moins de paramètres évite les problèmes de gradients de disparition et d'explosion de gradients rencontrés lors de la rétropropagation dans les réseaux de neurones traditionnels. De plus, les réseaux de neurones convolutifs sont idéaux pour les données avec une topologie en forme de grille (telles que des images) car les relations spatiales entre des entités distinctes sont prises en compte lors de la convolution et/ou de la mise en commun.

Mise en commun des couches

Les réseaux convolutifs peuvent inclure des couches de mise en commun locales et/ou globales ainsi que des couches convolutives traditionnelles. Les couches de mise en commun réduisent les dimensions des données en combinant les sorties des clusters de neurones d'une couche en un seul neurone de la couche suivante. Le pooling local combine de petits clusters, des tailles de tuilage telles que 2 x 2 sont couramment utilisées. Le pooling global agit sur tous les neurones de la feature map. Il existe deux types courants de mise en commun dans l'utilisation courante : max et moyenne. Le regroupement maximal utilise la valeur maximale de chaque groupe local de neurones dans la carte des caractéristiques, tandis que le regroupement moyen prend la valeur moyenne.

Couches entièrement connectées

Des couches entièrement connectées connectent chaque neurone d'une couche à chaque neurone d'une autre couche . C'est la même chose qu'un réseau neuronal perceptron multicouche traditionnel (MLP). La matrice aplatie traverse une couche entièrement connectée pour classer les images.

Champ receptif

Dans les réseaux de neurones, chaque neurone reçoit des entrées d'un certain nombre d'emplacements de la couche précédente. Dans une couche convolutive, chaque neurone ne reçoit des entrées que d'une zone restreinte de la couche précédente appelée champ récepteur du neurone . Typiquement, la zone est un carré (par exemple 5 par 5 neurones). Alors que, dans une couche entièrement connectée, le champ récepteur est la totalité de la couche précédente . Ainsi, dans chaque couche convolutive, chaque neurone reçoit l'entrée d'une zone d'entrée plus grande que les couches précédentes. Cela est dû à l'application répétée de la convolution, qui prend en compte la valeur d'un pixel, ainsi que ses pixels environnants. Lors de l'utilisation de couches dilatées , le nombre de pixels dans le champ récepteur reste constant, mais le champ est de moins en moins peuplé à mesure que ses dimensions augmentent en combinant l'effet de plusieurs couches.

Poids

Chaque neurone d'un réseau de neurones calcule une valeur de sortie en appliquant une fonction spécifique aux valeurs d'entrée reçues du champ récepteur dans la couche précédente. La fonction appliquée aux valeurs d'entrée est déterminée par un vecteur de poids et un biais (généralement des nombres réels). L'apprentissage consiste à ajuster itérativement ces biais et poids.

Le vecteur de poids et le biais sont appelés filtres et représentent des caractéristiques particulières de l'entrée (par exemple, une forme particulière). Une caractéristique distinctive des CNN est que de nombreux neurones peuvent partager le même filtre. Cela réduit l' empreinte mémoire car un seul biais et un seul vecteur de poids sont utilisés dans tous les champs récepteurs qui partagent ce filtre, par opposition à chaque champ récepteur ayant son propre biais et sa propre pondération vectorielle.

Histoire

Les CNN sont souvent comparés à la façon dont le cerveau réalise le traitement de la vision dans les organismes vivants .

Champs récepteurs dans le cortex visuel

Les travaux de Hubel et Wiesel dans les années 1950 et 1960 ont montré que le cortex visuel du chat contient des neurones qui répondent individuellement à de petites régions du champ visuel . À condition que les yeux ne bougent pas, la région de l'espace visuel dans laquelle les stimuli visuels affectent le déclenchement d'un seul neurone est connue sous le nom de champ récepteur . Les cellules voisines ont des champs récepteurs similaires et qui se chevauchent. La taille et l'emplacement du champ récepteur varient systématiquement à travers le cortex pour former une carte complète de l'espace visuel. Le cortex dans chaque hémisphère représente le champ visuel controlatéral .

Leur article de 1968 a identifié deux types de cellules visuelles de base dans le cerveau :

  • cellules simples , dont la sortie est maximisée par des bords droits ayant des orientations particulières dans leur champ récepteur
  • cellules complexes , qui ont des champs récepteurs plus grands , dont la sortie est insensible à la position exacte des bords dans le champ.

Hubel et Wiesel ont également proposé un modèle en cascade de ces deux types de cellules à utiliser dans les tâches de reconnaissance de formes.

Neocognitron, origine de l'architecture CNN

Le « neocognitron » a été introduit par Kunihiko Fukushima en 1980. Il s'inspire des travaux susmentionnés de Hubel et Wiesel. Le néocognitron a introduit les deux types de couches de base dans les CNN : les couches convolutives et les couches de sous-échantillonnage. Une couche convolutive contient des unités dont les champs récepteurs couvrent une parcelle de la couche précédente. Le vecteur de poids (l'ensemble des paramètres adaptatifs) d'une telle unité est souvent appelé un filtre. Les unités peuvent partager des filtres. Les couches de sous-échantillonnage contiennent des unités dont les champs récepteurs couvrent des parcelles de couches convolutives précédentes. Une telle unité calcule typiquement la moyenne des activations des unités de son patch. Ce sous-échantillonnage permet de classer correctement les objets dans les scènes visuelles même lorsque les objets sont déplacés.

Dans une variante du néocognitron appelée cresceptron, au lieu d'utiliser la moyenne spatiale de Fukushima, J. Weng et al. introduit une méthode appelée max-pooling où une unité de sous-échantillonnage calcule le maximum des activations des unités dans son patch. La mise en commun maximale est souvent utilisée dans les CNN modernes.

Plusieurs algorithmes d'apprentissage supervisés et non supervisés ont été proposés au fil des décennies pour entraîner les poids d'un néocognitron. Aujourd'hui, cependant, l'architecture CNN est généralement entraînée par rétropropagation .

Le néocognitron est le premier CNN qui exige que les unités situées à plusieurs positions du réseau aient des poids partagés.

Les réseaux de neurones convolutifs ont été présentés au Neural Information Processing Workshop en 1987, analysant automatiquement les signaux variant dans le temps en remplaçant la multiplication apprise par la convolution dans le temps, et démontrés pour la reconnaissance vocale.

Réseaux de neurones à retardement

Le réseau de neurones à retardement (TDNN) a été introduit en 1987 par Alex Waibel et al. et a été l'un des premiers réseaux convolutifs, car il a atteint l'invariance de décalage. Il l'a fait en utilisant le partage du poids en combinaison avec l' entraînement à la rétropropagation . Ainsi, tout en utilisant également une structure pyramidale comme dans le néocognitron, il a effectué une optimisation globale des poids au lieu d'une optimisation locale.

Les TDNN sont des réseaux convolutifs qui partagent des poids le long de la dimension temporelle. Ils permettent de traiter les signaux vocaux de manière invariante dans le temps. En 1990, Hampshire et Waibel ont introduit une variante qui effectue une convolution bidimensionnelle. Étant donné que ces TDNN opéraient sur des spectrogrammes, le système de reconnaissance de phonèmes résultant était invariant à la fois aux changements de temps et de fréquence. Cela a inspiré l' invariance de traduction dans le traitement d'images avec les CNN. Le pavage des sorties des neurones peut couvrir des étapes chronométrées.

Les TDNN atteignent désormais les meilleures performances en matière de reconnaissance vocale à longue distance.

Mise en commun maximale

En 1990 Yamaguchi et al. introduit le concept de max pooling, qui est une opération de filtrage fixe qui calcule et propage la valeur maximale d'une région donnée. Ils l'ont fait en combinant des TDNN avec une mise en commun maximale afin de réaliser un système de reconnaissance de mots isolés indépendant du locuteur. Dans leur système, ils utilisaient plusieurs TDNN par mot, un pour chaque syllabe . Les résultats de chaque TDNN sur le signal d'entrée ont été combinés à l'aide d'un regroupement maximal et les sorties des couches de regroupement ont ensuite été transmises aux réseaux effectuant la classification réelle des mots.

Reconnaissance d'images avec des CNN entraînés par descente de gradient

Un système pour reconnaître les numéros de code postal écrits à la main impliquait des convolutions dans lesquelles les coefficients du noyau avaient été laborieusement conçus à la main.

Yann LeCun et al. (1989) ont utilisé la rétro-propagation pour apprendre les coefficients du noyau de convolution directement à partir d'images de nombres écrits à la main. L'apprentissage était donc entièrement automatique, mieux exécuté que la conception manuelle des coefficients et adapté à un plus large éventail de problèmes de reconnaissance d'images et de types d'images.

Cette approche est devenue un fondement de la vision par ordinateur moderne .

LeNet-5

LeNet-5, un réseau convolutif pionnier à 7 niveaux par LeCun et al. en 1998, qui classe les chiffres, a été appliquée par plusieurs banques pour reconnaître les chiffres manuscrits sur les chèques ( anglais britannique : chèques ) numérisés en images 32x32 pixels. La capacité de traiter des images à plus haute résolution nécessite des couches plus grandes et plus nombreuses de réseaux de neurones convolutifs, de sorte que cette technique est limitée par la disponibilité des ressources informatiques.

Réseau de neurones Shift-invariant

De même, un réseau de neurones invariant au décalage a été proposé par W. Zhang et al. pour la reconnaissance de caractères d'image en 1988. L'architecture et l'algorithme d'apprentissage ont été modifiés en 1991 et appliqués au traitement d'images médicales et à la détection automatique du cancer du sein dans les mammographies .

Une conception différente basée sur la convolution a été proposée en 1988 pour une application à la décomposition de signaux convolués d' électromyographie unidimensionnelle via la déconvolution. Cette conception a été modifiée en 1989 pour d'autres conceptions basées sur la déconvolution.

Pyramide d'abstraction neuronale

Pyramide d'abstraction neuronale
Pyramide d'abstraction neuronale

L'architecture feed-forward des réseaux de neurones convolutifs a été étendue dans la pyramide d'abstraction neuronale par des connexions latérales et de rétroaction. Le réseau convolutif récurrent qui en résulte permet l'incorporation flexible d'informations contextuelles pour résoudre de manière itérative les ambiguïtés locales. Contrairement aux modèles précédents, des sorties de type image à la résolution la plus élevée ont été générées, par exemple, pour les tâches de segmentation sémantique, de reconstruction d'image et de localisation d'objets.

Implémentations GPU

Bien que les CNN aient été inventés dans les années 1980, leur percée dans les années 2000 a nécessité des implémentations rapides sur les unités de traitement graphique (GPU).

En 2004, KS Oh et K. Jung ont montré que les réseaux de neurones standard peuvent être considérablement accélérés sur les GPU. Leur implémentation était 20 fois plus rapide qu'une implémentation équivalente sur CPU . En 2005, un autre article soulignait également la valeur du GPGPU pour l'apprentissage automatique .

La première implémentation GPU d'un CNN a été décrite en 2006 par K. Chellapilla et al. Leur implémentation était 4 fois plus rapide qu'une implémentation équivalente sur CPU. Des travaux ultérieurs ont également utilisé des GPU, initialement pour d'autres types de réseaux de neurones (différents des CNN), en particulier des réseaux de neurones non supervisés.

En 2010, Dan Ciresan et al. à l' IDSIA a montré que même les réseaux de neurones standard profonds avec de nombreuses couches peuvent être rapidement entraînés sur GPU par apprentissage supervisé via l'ancienne méthode connue sous le nom de rétropropagation . Leur réseau a surpassé les précédentes méthodes d'apprentissage automatique sur le benchmark des chiffres manuscrits du MNIST . En 2011, ils ont étendu cette approche GPU aux CNN, atteignant un facteur d'accélération de 60, avec des résultats impressionnants. En 2011, ils ont utilisé de tels CNN sur GPU pour gagner un concours de reconnaissance d'images où ils ont réalisé pour la première fois des performances surhumaines. Entre le 15 mai 2011 et le 30 septembre 2012, leurs CNN ont remporté pas moins de quatre concours d'images. En 2012, ils ont également considérablement amélioré les meilleures performances de la littérature pour plusieurs bases de données d' images , notamment la base de données MNIST , la base de données NORB, le jeu de données HWDB1.0 (caractères chinois) et le jeu de données CIFAR10 (jeu de données de 60000 images RVB étiquetées 32x32 ) .

Par la suite, un CNN similaire basé sur GPU par Alex Krizhevsky et al. a remporté le ImageNet Large Scale Visual Recognition Challenge 2012. Un CNN très profond avec plus de 100 couches de Microsoft a remporté le concours ImageNet 2015.

Implémentations Intel Xeon Phi

Par rapport à la formation des CNN à l'aide de GPU , peu d'attention a été accordée au coprocesseur Intel Xeon Phi . Un développement notable est une méthode de parallélisation pour la formation de réseaux de neurones convolutifs sur Intel Xeon Phi, nommée Controlled Hogwild avec ordre arbitraire de synchronisation (CHAOS). CHAOS exploite à la fois le parallélisme au niveau des threads et SIMD qui est disponible sur l'Intel Xeon Phi.

Caractéristiques distinctives

Dans le passé, les modèles traditionnels de perceptron multicouche (MLP) étaient utilisés pour la reconnaissance d'images. Cependant, la connectivité complète entre les nœuds a provoqué la malédiction de la dimensionnalité et était insoluble sur le plan du calcul avec des images à plus haute résolution. Une image de 1 000 × 1 000 pixels avec des canaux de couleur RVB a 3 millions de poids, ce qui est trop élevé pour pouvoir être traité efficacement à grande échelle avec une connectivité complète.

Couches CNN disposées en 3 dimensions

Par exemple, dans CIFAR-10 , les images ne sont que de taille 32 × 32 × 3 (32 de large, 32 de haut, 3 canaux de couleur), donc un seul neurone entièrement connecté dans la première couche cachée d'un réseau de neurones régulier aurait 32 * 32*3 = 3 072 poids. Une image 200×200, cependant, conduirait à des neurones qui ont 200*200*3 = 120 000 poids.

De plus, une telle architecture de réseau ne prend pas en compte la structure spatiale des données, traitant les pixels d'entrée éloignés les uns des autres de la même manière que les pixels proches les uns des autres. Cela ignore la localité de référence dans les données avec une topologie en grille (comme des images), à la fois du point de vue informatique et sémantique. Ainsi, la connectivité complète des neurones est un gaspillage à des fins telles que la reconnaissance d'images qui sont dominées par des modèles d'entrée spatialement locaux .

Les réseaux de neurones convolutifs sont des variantes des perceptrons multicouches, conçus pour émuler le comportement d'un cortex visuel . Ces modèles atténuent les défis posés par l'architecture MLP en exploitant la forte corrélation spatiale locale présente dans les images naturelles. Contrairement aux MLP, les CNN présentent les caractéristiques distinctives suivantes :

  • Volumes 3D de neurones. Les couches d'un CNN ont des neurones disposés en 3 dimensions : largeur, hauteur et profondeur. Où chaque neurone à l'intérieur d'une couche convolutive n'est connecté qu'à une petite région de la couche qui la précède, appelée champ récepteur. Des types distincts de couches, à la fois localement et complètement connectées, sont empilés pour former une architecture CNN.
  • Connectivité locale : suivant le concept de champs récepteurs, les CNN exploitent la localité spatiale en imposant un modèle de connectivité locale entre les neurones des couches adjacentes. L'architecture garantit ainsi que les " filtres " appris produisent la réponse la plus forte à un modèle d'entrée spatialement local. L'empilement de nombreuses couches de ce type conduit à des filtres non linéaires qui deviennent de plus en plus globaux (c.
  • Poids partagés : dans les CNN, chaque filtre est répliqué sur l'ensemble du champ visuel. Ces unités répliquées partagent le même paramétrage (vecteur de poids et biais) et forment une carte de caractéristiques. Cela signifie que tous les neurones d'une couche convolutive donnée répondent à la même caractéristique dans leur champ de réponse spécifique. La réplication des unités de cette manière permet à la carte d'activation résultante d'être équivariante sous les décalages des emplacements des caractéristiques d'entrée dans le champ visuel, c'est-à-dire qu'elles accordent une équivalence de translation - étant donné que la couche a une foulée de un.
  • Regroupement : dans les couches de regroupement d'un CNN, les cartes de caractéristiques sont divisées en sous-régions rectangulaires et les caractéristiques de chaque rectangle sont sous-échantillonnées indépendamment à une valeur unique, généralement en prenant leur valeur moyenne ou maximale. En plus de réduire les tailles des cartes de caractéristiques, l'opération de mise en commun accorde un degré d' invariance de traduction locale aux caractéristiques qui y sont contenues, permettant au CNN d'être plus robuste aux variations de leurs positions.

Ensemble, ces propriétés permettent aux CNN de mieux généraliser les problèmes de vision . Le partage de poids réduit considérablement le nombre de paramètres libres appris, réduisant ainsi les besoins en mémoire pour faire fonctionner le réseau et permettant la formation de réseaux plus grands et plus puissants.

Blocs de construction

Une architecture CNN est formée d'un empilement de couches distinctes qui transforment le volume d'entrée en un volume de sortie (par exemple, contenant les scores de classe) grâce à une fonction différentiable. Quelques types distincts de couches sont couramment utilisés. Ceux-ci sont discutés plus en détail ci-dessous.

Neurones d'une couche convolutive (bleu), connectés à leur champ récepteur (rouge)

Couche convolutive

La couche convolutive est la pierre angulaire d'un CNN. Les paramètres de la couche consistent en un ensemble de filtres (ou noyaux ) pouvant être appris , qui ont un petit champ récepteur, mais s'étendent sur toute la profondeur du volume d'entrée. Pendant le passage avant, chaque filtre subit une convolution sur la largeur et la hauteur du volume d'entrée, calculant le produit scalaire entre les entrées du filtre et l'entrée, produisant une carte d'activation bidimensionnelle de ce filtre. En conséquence, le réseau apprend des filtres qui s'activent lorsqu'il détecte un type spécifique d' entité à une certaine position spatiale dans l'entrée.

L'empilement des cartes d'activation pour tous les filtres le long de la dimension de profondeur forme le volume de sortie complet de la couche de convolution. Chaque entrée dans le volume de sortie peut donc également être interprétée comme une sortie d'un neurone qui regarde une petite région dans l'entrée et partage des paramètres avec des neurones dans la même carte d'activation.

Connectivité locale

Architecture CNN typique

Lorsqu'il s'agit d'entrées de grande dimension telles que des images, il est peu pratique de connecter des neurones à tous les neurones du volume précédent car une telle architecture de réseau ne prend pas en compte la structure spatiale des données. Les réseaux convolutifs exploitent la corrélation spatialement locale en appliquant un modèle de connectivité locale éparse entre les neurones des couches adjacentes : chaque neurone n'est connecté qu'à une petite région du volume d'entrée.

L'étendue de cette connectivité est un hyperparamètre appelé champ récepteur du neurone. Les connexions sont locales dans l'espace (en largeur et en hauteur), mais s'étendent toujours sur toute la profondeur du volume d'entrée. Une telle architecture garantit que les filtres appris produisent la réponse la plus forte à un modèle d'entrée spatialement local.

Aménagement d'espace

Trois hyperparamètres contrôlent la taille du volume de sortie de la couche convolutive : la profondeur, la foulée et la taille du remplissage.

  • La profondeur du volume de sortie contrôle le nombre de neurones dans une couche qui se connectent à la même région du volume d'entrée. Ces neurones apprennent à s'activer pour différentes caractéristiques de l'entrée. Par exemple, si la première couche convolutive prend l'image brute en entrée, alors différents neurones le long de la dimension de profondeur peuvent s'activer en présence de divers bords orientés ou de taches de couleur.
  • La foulée contrôle la façon dont les colonnes de profondeur autour de la largeur et de la hauteur sont allouées. Si la foulée est de 1, alors nous déplaçons les filtres d'un pixel à la fois. Cela conduit à des champs récepteurs qui se chevauchent fortemententre les colonnes et à des volumes de sortie importants. Pour tout entier,une foulée S signifie que le filtre est translaté S unités à la fois par sortie. En pratique,c'est rare. Une plus grande foulée signifie un chevauchement plus petit des champs récepteurs et des dimensions spatiales plus petites du volume de sortie.
  • Parfois, il est pratique de remplir l'entrée avec des zéros (ou d'autres valeurs, telles que la moyenne de la région) à la frontière du volume d'entrée. La taille de ce rembourrage est un troisième hyperparamètre. Le remplissage permet de contrôler la taille spatiale du volume de sortie. En particulier, il est parfois souhaitable de préserver exactement la taille spatiale du volume d'entrée, ceci est communément appelé "même" remplissage.

La taille spatiale du volume de sortie est fonction de la taille du volume d'entrée , de la taille du champ de noyau des neurones de la couche convolutive, de la foulée et de la quantité de remplissage de zéro sur la frontière. Le nombre de neurones qui « rentrent » dans un volume donné est alors :

Si ce nombre n'est pas un entier , alors les foulées sont incorrectes et les neurones ne peuvent pas être disposés en mosaïque pour s'adapter au volume d'entrée de manière symétrique . En général, le fait de définir un padding à zéro au moment de la foulée garantit que le volume d'entrée et le volume de sortie auront la même taille spatialement. Cependant, il n'est pas toujours totalement nécessaire d'utiliser tous les neurones de la couche précédente. Par exemple, un concepteur de réseau neuronal peut décider de n'utiliser qu'une partie du remplissage.

Partage des paramètres

Un schéma de partage de paramètres est utilisé dans les couches convolutives pour contrôler le nombre de paramètres libres. Il repose sur l'hypothèse que si une entité patch est utile pour calculer à une certaine position spatiale, alors il devrait également être utile de calculer à d'autres positions. Désignant une seule tranche de profondeur bidimensionnelle en tant que tranche de profondeur , les neurones de chaque tranche de profondeur sont contraints d'utiliser les mêmes poids et biais.

Étant donné que tous les neurones d'une même tranche de profondeur partagent les mêmes paramètres, le passage avant dans chaque tranche de profondeur de la couche convolutive peut être calculé comme une convolution des poids des neurones avec le volume d'entrée. Par conséquent, il est courant de désigner les ensembles de poids comme un filtre (ou un noyau ), qui est convolué avec l'entrée. Le résultat de cette convolution est une carte d'activation , et l'ensemble de cartes d'activation pour chaque filtre différent est empilé le long de la dimension de profondeur pour produire le volume de sortie. Le partage de paramètres contribue à l' invariance de traduction de l'architecture CNN.

Parfois, l'hypothèse de partage des paramètres peut ne pas avoir de sens. C'est particulièrement le cas lorsque les images d'entrée d'un CNN ont une structure centrée spécifique ; pour lesquels nous nous attendons à ce que des caractéristiques complètement différentes soient apprises sur différents emplacements spatiaux. Un exemple pratique est lorsque les entrées sont des visages qui ont été centrés dans l'image : nous pourrions nous attendre à ce que différentes caractéristiques spécifiques aux yeux ou aux cheveux soient apprises dans différentes parties de l'image. Dans ce cas, il est courant d'assouplir le schéma de partage des paramètres et d'appeler simplement la couche une "couche connectée localement".

Couche de mise en commun

Mise en commun max avec un filtre 2x2 et foulée = 2

Un autre concept important des CNN est la mise en commun, qui est une forme de sous -échantillonnage non linéaire . Il existe plusieurs fonctions non linéaires pour implémenter la mise en commun, où la mise en commun maximale est la plus courante. Il partitionne l'image d'entrée en un ensemble de rectangles et, pour chacune de ces sous-régions, génère le maximum.

Intuitivement, l'emplacement exact d'une entité est moins important que son emplacement approximatif par rapport à d'autres caractéristiques. C'est l'idée derrière l'utilisation du pooling dans les réseaux de neurones convolutifs. La couche de pooling permet de réduire progressivement la taille spatiale de la représentation, de réduire le nombre de paramètres, l' empreinte mémoire et la quantité de calcul dans le réseau, et donc de contrôler également le surapprentissage . C'est ce qu'on appelle le sous-échantillonnage. Il est courant d'insérer périodiquement une couche de pooling entre des couches convolutives successives (chacune généralement suivie d'une fonction d'activation, telle qu'une couche ReLU ) dans une architecture CNN. Bien que les couches de mise en commun contribuent à l'invariance de traduction locale, elles ne fournissent pas d'invariance de traduction globale dans un CNN, à moins qu'une forme de mise en commun globale ne soit utilisée. La couche de mise en commun fonctionne généralement indépendamment sur chaque profondeur, ou tranche, de l'entrée et la redimensionne spatialement. Une forme très courante de mise en commun maximale est une couche avec des filtres de taille 2 × 2, appliqués avec une foulée de 2, qui sous-échantillonne chaque tranche de profondeur de l'entrée par 2 le long de la largeur et de la hauteur, en éliminant 75 % des activations :

Dans ce cas, chaque opération max est supérieure à 4 nombres. La dimension de profondeur reste inchangée (c'est également vrai pour d'autres formes de mise en commun).

En plus du pooling maximal, les unités de pooling peuvent utiliser d'autres fonctions, telles que le pooling moyen ou le pooling 2 -norm . La mise en commun moyenne était souvent utilisée dans le passé, mais est récemment tombée en désuétude par rapport à la mise en commun maximale, qui fonctionne généralement mieux dans la pratique.

En raison des effets de la réduction spatiale rapide de la taille de la représentation, il existe une tendance récente à utiliser des filtres plus petits ou à éliminer complètement les couches de mise en commun.

RoI pooling à la taille 2x2. Dans cet exemple, la proposition de région (un paramètre d'entrée) a une taille de 7x5.

Le pooling " Region of Interest " (également connu sous le nom de pooling RoI) est une variante du pooling max, dans lequel la taille de sortie est fixe et le rectangle d'entrée est un paramètre.

La mise en commun est un composant important des réseaux de neurones convolutifs pour la détection d'objets basée sur l'architecture Fast R-CNN.

Couche ReLU

ReLU est l'abréviation d' unité linéaire rectifiée , qui applique la fonction d'activation non saturante . Il supprime efficacement les valeurs négatives d'une carte d'activation en les mettant à zéro. Il introduit des non-linéarités dans la fonction de décision et dans le réseau global sans affecter les champs récepteurs des couches de convolution.

D'autres fonctions peuvent également être utilisées pour augmenter la non-linéarité, par exemple la tangente hyperbolique saturante , , et la fonction sigmoïde . ReLU est souvent préféré à d'autres fonctions car il entraîne le réseau de neurones plusieurs fois plus rapidement sans pénaliser significativement la précision de la généralisation .

Couche entièrement connectée

Après plusieurs couches convolutives et max pooling, la classification finale se fait via des couches entièrement connectées. Les neurones d'une couche entièrement connectée ont des connexions à toutes les activations de la couche précédente, comme on le voit dans les réseaux de neurones artificiels réguliers (non convolutifs) . Leurs activations peuvent ainsi être calculées comme une transformation affine , avec multiplication matricielle suivie d'un décalage de biais ( addition vectorielle d'un terme de biais appris ou fixe).

Couche de perte

La « couche de perte », ou « fonction de perte », précise comment l' apprentissage pénalise l'écart entre la sortie prédite du réseau et les véritables étiquettes de données (lors de l'apprentissage supervisé). Différentes fonctions de perte peuvent être utilisées, en fonction de la tâche spécifique.

La fonction de perte Softmax est utilisée pour prédire une seule classe de K classes mutuellement exclusives. La perte d' entropie croisée sigmoïde est utilisée pour prédire K valeurs de probabilité indépendantes dans . La perte euclidienne est utilisée pour régresser vers des étiquettes à valeur réelle .

Hyperparamètres

Les hyperparamètres sont divers paramètres utilisés pour contrôler le processus d'apprentissage. Les CNN utilisent plus d' hyperparamètres qu'un perceptron multicouche standard (MLP).

Taille du noyau

Le noyau est le nombre de pixels traités ensemble. Il est généralement exprimé sous forme de dimensions du noyau, par exemple 2x2 ou 3x3.

Rembourrage

Le remplissage est l'ajout (généralement) de pixels de valeur 0 sur les bords d'une image. Ceci est fait pour que les pixels de bordure ne soient pas sous-évalués (perdus) de la sortie car ils ne participeraient normalement qu'à une seule instance de champ récepteur. Le remplissage est généralement défini sur la dimension du noyau -1. Ainsi, un noyau 3x3 recevrait un pad de 2 pixels sur tous les côtés de l'image.

Foulée

La foulée est le nombre de pixels que la fenêtre d'analyse déplace à chaque itération. Une foulée de 2 signifie que chaque noyau est décalé de 2 pixels par rapport à son prédécesseur.

Nombre de filtres

Étant donné que la taille de la carte d'entités diminue avec la profondeur, les couches proches de la couche en entrée ont tendance à avoir moins de filtres tandis que les couches supérieures peuvent en avoir plus. Pour égaliser le calcul à chaque couche, le produit des valeurs de caractéristiques v a avec la position du pixel est maintenu à peu près constant d'une couche à l'autre. Préserver plus d'informations sur l'entrée nécessiterait de maintenir le nombre total d'activations (nombre de cartes de caractéristiques multiplié par le nombre de positions de pixels) non décroissant d'une couche à l'autre.

Le nombre de cartes de caractéristiques contrôle directement la capacité et dépend du nombre d'exemples disponibles et de la complexité de la tâche.

Taille du filtre

Les tailles de filtres courantes trouvées dans la littérature varient considérablement et sont généralement choisies en fonction de l'ensemble de données.

Le défi consiste à trouver le bon niveau de granularité afin de créer des abstractions à la bonne échelle, compte tenu d'un ensemble de données particulier, et sans surajustement .

Type et taille de mise en commun

La mise en commun maximale est généralement utilisée, souvent avec une dimension 2x2. Cela implique que l'entrée est considérablement sous- échantillonnée , ce qui réduit les coûts de traitement.

De grands volumes d'entrée peuvent justifier une mise en commun 4×4 dans les couches inférieures. Une plus grande mise en commun réduit la dimension du signal et peut entraîner une perte d'informations inacceptable . Souvent, les fenêtres de mise en commun qui ne se chevauchent pas sont les plus performantes.

Dilatation

La dilatation consiste à ignorer les pixels dans un noyau. Cela réduit potentiellement le traitement/la mémoire sans perte de signal significative. Une dilatation de 2 sur un noyau 3x3 étend le noyau à 7x7, tout en traitant toujours 9 pixels (également espacés). En conséquence, la dilatation de 4 étend le noyau à 15x15.

Équivariance de traduction

Il est communément admis que les CNN sont invariants aux décalages de l'entrée. Cependant, les couches de convolution ou de regroupement au sein d'un CNN qui n'ont pas une foulée supérieure à un sont équivariantes , par opposition à invariantes , aux traductions de l'entrée. Les couches avec une foulée supérieure à un ignorent le théorème d'échantillonnage de Nyquist-Shannon et entraînent un aliasing du signal d'entrée, ce qui brise la propriété d'équivariance (également appelée covariance). De plus, si un CNN utilise des couches entièrement connectées, l' équivariance de la traduction n'implique pas l' invariance de la traduction , car les couches entièrement connectées ne sont pas invariantes aux décalages de l'entrée. Une solution pour une invariance de traduction complète consiste à éviter tout sous-échantillonnage dans l'ensemble du réseau et à appliquer une mise en commun globale moyenne à la dernière couche. De plus, plusieurs autres solutions partielles ont été proposées, telles que l' anti-aliasing , les réseaux de transformateurs spatiaux, l'augmentation de données , le sous-échantillonnage combiné à la mise en commun et les réseaux de neurones à capsule .

Évaluation

La précision du modèle final basée sur une sous-partie de l'ensemble de données à part au départ, souvent appelée ensemble de test. D'autres fois, des méthodes telles que la validation croisée k- fold sont appliquées. D'autres stratégies incluent l'utilisation de la prédiction conforme .

Méthodes de régularisation

La régularisation est un processus d'introduction d'informations supplémentaires pour résoudre un problème mal posé ou pour éviter le surapprentissage . Les CNN utilisent différents types de régularisation.

Empirique

Abandonner

Parce qu'une couche entièrement connectée occupe la plupart des paramètres, elle est sujette au surapprentissage. Une méthode pour réduire le surapprentissage est le décrochage . À chaque étape d'apprentissage, les nœuds individuels sont soit « retirés » du réseau (ignorés) avec probabilité, soit conservés avec probabilité , de sorte qu'un réseau réduit est laissé ; les bords entrants et sortants vers un nœud abandonné sont également supprimés. Seul le réseau réduit est entraîné sur les données à ce stade. Les nœuds supprimés sont ensuite réinsérés dans le réseau avec leurs poids d'origine.

Dans les étapes de formation, est généralement de 0,5 ; pour les nœuds d'entrée, il est généralement beaucoup plus élevé car les informations sont directement perdues lorsque les nœuds d'entrée sont ignorés.

Au moment du test après la fin de la formation, nous aimerions idéalement trouver un échantillon moyen de tous les réseaux possibles abandonnés ; malheureusement, cela n'est pas faisable pour les grandes valeurs de . Cependant, nous pouvons trouver une approximation en utilisant le réseau complet avec la sortie de chaque nœud pondérée par un facteur de , de sorte que la valeur attendue de la sortie de n'importe quel nœud est la même que dans les étapes d'apprentissage. C'est la plus grande contribution de la méthode de décrochage : bien qu'elle génère efficacement des réseaux de neurones et, en tant que telle, permette une combinaison de modèles, au moment du test, un seul réseau doit être testé.

En évitant d'entraîner tous les nœuds sur toutes les données d'entraînement, l'abandon diminue le surapprentissage. La méthode améliore également considérablement la vitesse d'entraînement. Cela rend la combinaison de modèles pratique, même pour les réseaux de neurones profonds . La technique semble réduire les interactions de nœuds, les amenant à apprendre des fonctionnalités plus robustes qui se généralisent mieux à de nouvelles données.

DropConnect

DropConnect est la généralisation de l'abandon dans laquelle chaque connexion, plutôt que chaque unité de sortie, peut être abandonnée avec probabilité . Chaque unité reçoit ainsi une entrée d'un sous-ensemble aléatoire d'unités de la couche précédente.

DropConnect est similaire à dropout car il introduit une parcimonie dynamique dans le modèle, mais diffère en ce que la parcimonie est sur les poids, plutôt que sur les vecteurs de sortie d'une couche. En d'autres termes, la couche entièrement connectée avec DropConnect devient une couche faiblement connectée dans laquelle les connexions sont choisies au hasard lors de la phase d'apprentissage.

Mise en commun stochastique

Un inconvénient majeur de Dropout est qu'il n'a pas les mêmes avantages pour les couches convolutives, où les neurones ne sont pas entièrement connectés.

Dans la mise en commun stochastique, les opérations de mise en commun déterministes classiques sont remplacées par une procédure stochastique, où l'activation au sein de chaque région de mise en commun est choisie au hasard selon une distribution multinomiale , donnée par les activités au sein de la région de mise en commun. Cette approche est exempte d'hyperparamètres et peut être combinée avec d'autres approches de régularisation, telles que l'abandon et l'augmentation des données .

Une autre vue de la mise en commun stochastique est qu'elle est équivalente à la mise en commun maximale standard mais avec de nombreuses copies d'une image d'entrée, chacune ayant de petites déformations locales . Ceci est similaire aux déformations élastiques explicites des images d'entrée, qui offrent d'excellentes performances sur l' ensemble de données MNIST . L'utilisation de la mise en commun stochastique dans un modèle multicouche donne un nombre exponentiel de déformations puisque les sélections dans les couches supérieures sont indépendantes de celles ci-dessous.

Données artificielles

Étant donné que le degré de surapprentissage du modèle est déterminé à la fois par sa puissance et par la quantité d'entraînement qu'il reçoit, fournir un réseau convolutif avec plus d'exemples d'entraînement peut réduire le surapprentissage. Étant donné que ces réseaux sont généralement entraînés avec toutes les données disponibles, une approche consiste soit à générer de nouvelles données à partir de zéro (si possible), soit à perturber les données existantes pour en créer de nouvelles. Par exemple, les images d'entrée peuvent être recadrées, pivotées ou redimensionnées pour créer de nouveaux exemples avec les mêmes étiquettes que l'ensemble d'apprentissage d'origine.

Explicite

Arrêt précoce

L'une des méthodes les plus simples pour empêcher le surapprentissage d'un réseau consiste simplement à arrêter la formation avant que le surapprentissage n'ait eu l'occasion de se produire. Il vient avec l'inconvénient que le processus d'apprentissage est interrompu.

Nombre de paramètres

Un autre moyen simple d'éviter le surapprentissage consiste à limiter le nombre de paramètres, généralement en limitant le nombre d'unités cachées dans chaque couche ou en limitant la profondeur du réseau. Pour les réseaux convolutifs, la taille du filtre affecte également le nombre de paramètres. La limitation du nombre de paramètres restreint directement le pouvoir prédictif du réseau, ce qui réduit la complexité de la fonction qu'il peut effectuer sur les données, et limite ainsi la quantité de surapprentissage. Cela équivaut à une « norme zéro ».

Perte de poids

Une forme simple de régularisation ajoutée est la décroissance du poids, qui ajoute simplement une erreur supplémentaire, proportionnelle à la somme des poids ( norme L1 ) ou à la grandeur au carré ( norme L2 ) du vecteur de poids, à l'erreur à chaque nœud. Le niveau de complexité acceptable du modèle peut être réduit en augmentant la constante de proportionnalité (hyperparamètre 'alpha'), augmentant ainsi la pénalité pour les vecteurs de poids importants.

La régularisation L2 est la forme de régularisation la plus courante. Il peut être mis en œuvre en pénalisant la grandeur au carré de tous les paramètres directement dans l'objectif. La régularisation L2 a l'interprétation intuitive de vecteurs de poids de pointe fortement pénalisants et préférant les vecteurs de poids diffus. En raison des interactions multiplicatives entre les poids et les entrées, cela a la propriété utile d'encourager le réseau à utiliser un peu toutes ses entrées plutôt que certaines de ses entrées beaucoup.

La régularisation L1 est également courante. Cela rend les vecteurs de poids clairsemés pendant l'optimisation. En d'autres termes, les neurones avec régularisation L1 finissent par n'utiliser qu'un sous-ensemble clairsemé de leurs entrées les plus importantes et deviennent presque invariants par rapport aux entrées bruyantes. L1 avec régularisation L2 peuvent être combinés; c'est ce qu'on appelle la régularisation du réseau élastique .

Contraintes de norme max

Une autre forme de régularisation consiste à appliquer une limite supérieure absolue à l'amplitude du vecteur de poids pour chaque neurone et à utiliser la descente de gradient projetée pour appliquer la contrainte. En pratique, cela correspond à effectuer la mise à jour des paramètres normalement, puis à appliquer la contrainte en fixant le vecteur de poids de chaque neurone pour satisfaire . Les valeurs typiques de sont de l'ordre de 3 à 4. Certains articles rapportent des améliorations lors de l'utilisation de cette forme de régularisation.

Cadres de coordonnées hiérarchiques

La mise en commun perd les relations spatiales précises entre les parties de haut niveau (telles que le nez et la bouche dans une image de visage). Ces relations sont nécessaires à la reconnaissance de l'identité. Le chevauchement des pools de sorte que chaque fonctionnalité apparaisse dans plusieurs pools permet de conserver les informations. La traduction seule ne peut pas extrapoler la compréhension des relations géométriques à un point de vue radicalement nouveau, tel qu'une orientation ou une échelle différente. D'un autre côté, les gens savent très bien extrapoler ; après avoir vu une nouvelle forme une fois qu'ils peuvent la reconnaître d'un point de vue différent.

Une manière courante et antérieure de traiter ce problème consiste à former le réseau sur des données transformées dans différentes orientations, échelles, éclairages, etc. afin que le réseau puisse faire face à ces variations. Cela demande beaucoup de calculs pour les grands ensembles de données. L'alternative est d'utiliser une hiérarchie de cadres de coordonnées et d'utiliser un groupe de neurones pour représenter une conjonction de la forme de la caractéristique et de sa pose par rapport à la rétine . La pose relative à la rétine est la relation entre le cadre de coordonnées de la rétine et le cadre de coordonnées des caractéristiques intrinsèques.

Ainsi, une façon de représenter quelque chose est d'y intégrer le cadre de coordonnées. Cela permet de reconnaître de grandes caractéristiques en utilisant la cohérence des poses de leurs parties (par exemple, les poses du nez et de la bouche font une prédiction cohérente de la pose de l'ensemble du visage). Cette approche garantit que l'entité de niveau supérieur (par exemple le visage) est présente lorsque le niveau inférieur (par exemple le nez et la bouche) s'accorde sur sa prédiction de la pose. Les vecteurs d'activité neuronale qui représentent la pose ("vecteurs de pose") permettent des transformations spatiales modélisées sous forme d'opérations linéaires qui permettent au réseau d'apprendre plus facilement la hiérarchie des entités visuelles et de se généraliser à travers les points de vue. Ceci est similaire à la façon dont le système visuel humain impose des cadres de coordonnées afin de représenter des formes.

Applications

Reconnaissance d'images

Les CNN sont souvent utilisés dans les systèmes de reconnaissance d'images . En 2012, un taux d'erreur de 0,23 % sur la base de données MNIST a été signalé. Un autre article sur l'utilisation de CNN pour la classification d'images a signalé que le processus d'apprentissage était « étonnamment rapide » ; dans le même article, les meilleurs résultats publiés en 2011 ont été obtenus dans la base de données MNIST et la base de données NORB. Par la suite, un CNN similaire appelé AlexNet a remporté le ImageNet Large Scale Visual Recognition Challenge 2012.

Appliqués à la reconnaissance faciale , les CNN ont permis de réduire considérablement le taux d'erreur. Un autre article fait état d'un taux de reconnaissance de 97,6% sur "5 600 images fixes de plus de 10 sujets". Les CNN ont été utilisés pour évaluer la qualité vidéo de manière objective après une formation manuelle ; le système résultant avait une erreur quadratique moyenne très faible .

Le défi de reconnaissance visuelle à grande échelle ImageNet est une référence en matière de classification et de détection d'objets, avec des millions d'images et des centaines de classes d'objets. Lors de l'ILSVRC 2014, un défi de reconnaissance visuelle à grande échelle, presque toutes les équipes de haut niveau ont utilisé CNN comme cadre de base. Le gagnant GoogLeNet (la fondation de DeepDream ) a augmenté la précision moyenne moyenne de la détection d'objets à 0,439329 et réduit l'erreur de classification à 0,06656, le meilleur résultat à ce jour. Son réseau appliquait plus de 30 couches. Cette performance des réseaux de neurones convolutifs sur les tests ImageNet était proche de celle des humains. Les meilleurs algorithmes ont encore du mal avec des objets petits ou fins, comme une petite fourmi sur une tige de fleur ou une personne tenant une plume à la main. Ils ont également des problèmes avec les images déformées avec des filtres, un phénomène de plus en plus courant avec les appareils photo numériques modernes. En revanche, ce genre d'images dérange rarement les humains. Les humains, cependant, ont tendance à avoir des problèmes avec d'autres problèmes. Par exemple, ils ne sont pas doués pour classer les objets en catégories fines telles que la race particulière de chien ou l'espèce d'oiseau, alors que les réseaux de neurones convolutifs s'en occupent.

En 2015, un CNN à plusieurs couches a démontré sa capacité à repérer les visages sous un large éventail d'angles, y compris à l'envers, même partiellement occlus, avec des performances compétitives. Le réseau a été formé sur une base de données de 200 000 images comprenant des visages sous divers angles et orientations et 20 millions d'images supplémentaires sans visage. Ils ont utilisé des lots de 128 images sur 50 000 itérations.

Analyse vidéo

Par rapport aux domaines de données d'images, il y a relativement peu de travail sur l'application des CNN à la classification vidéo. La vidéo est plus complexe que les images car elle a une autre dimension (temporelle). Cependant, certaines extensions des CNN dans le domaine vidéo ont été explorées. Une approche consiste à traiter l'espace et le temps comme des dimensions équivalentes de l'entrée et à effectuer des convolutions à la fois dans le temps et dans l'espace. Une autre façon consiste à fusionner les caractéristiques de deux réseaux de neurones convolutifs, un pour le flux spatial et un pour le flux temporel. Les unités récurrentes de mémoire à long court terme (LSTM) sont généralement incorporées après le CNN pour tenir compte des dépendances inter-images ou inter-clips. Des schémas d' apprentissage non supervisé pour l'apprentissage de caractéristiques spatio-temporelles ont été introduits, basés sur des machines de Boltzmann restreintes à portes convolutives et une analyse de sous-espace indépendante.

Traitement du langage naturel

Les CNN ont également été explorés pour le traitement du langage naturel . Les modèles CNN sont efficaces pour divers problèmes de PNL et ont obtenu d'excellents résultats dans l'analyse sémantique , la récupération de requêtes de recherche, la modélisation de phrases, la classification, la prédiction et d'autres tâches traditionnelles de PNL. Par rapport aux méthodes traditionnelles de traitement du langage telles que les réseaux de neurones récurrents , les CNN peuvent représenter différentes réalités contextuelles du langage qui ne reposent pas sur une hypothèse de série-séquence, tandis que les RNN sont mieux adaptés lorsqu'une modélisation classique de séries chronologiques est requise.

Détection d'une anomalie

Un CNN avec convolutions 1-D a été utilisé sur des séries temporelles dans le domaine fréquentiel (résidus spectral) par un modèle non supervisé pour détecter des anomalies dans le domaine temporel.

Découverte de médicament

Les CNN ont été utilisés dans la découverte de médicaments . Prédire l'interaction entre les molécules et les protéines biologiques permet d'identifier des traitements potentiels. En 2015, Atomwise a introduit AtomNet, le premier réseau de neurones d'apprentissage en profondeur pour la conception rationnelle de médicaments basés sur la structure . Le système s'entraîne directement sur des représentations tridimensionnelles des interactions chimiques. Semblable à la façon dont les réseaux de reconnaissance d'images apprennent à composer des caractéristiques plus petites et spatialement proches en structures complexes plus grandes, AtomNet découvre des caractéristiques chimiques, telles que l' aromaticité , les carbones sp 3 et les liaisons hydrogène . Par la suite, AtomNet a été utilisé pour prédire de nouvelles biomolécules candidates pour de multiples cibles de maladies, notamment des traitements contre le virus Ebola et la sclérose en plaques .

Évaluation des risques pour la santé et découverte des biomarqueurs du vieillissement

Les CNN peuvent être naturellement adaptés pour analyser une collection suffisamment importante de données de séries chronologiques représentant des flux d'activité physique humaine d'une semaine augmentés par les riches données cliniques (y compris le registre des décès, tel que fourni par exemple par l' étude NHANES ). Un simple CNN a été combiné avec le modèle de risques proportionnels de Cox-Gompertz et utilisé pour produire un exemple de preuve de concept de biomarqueurs numériques du vieillissement sous la forme d'un prédicteur de mortalité toutes causes confondues.

Jeu de Dames

Les CNN ont été utilisés dans le jeu de dames . De 1999 à 2001, Fogel et Chellapilla ont publié des articles montrant comment un réseau de neurones convolutifs pouvait apprendre à jouer aux dames en utilisant la co-évolution. Le processus d'apprentissage n'a pas utilisé de jeux professionnels humains antérieurs, mais s'est plutôt concentré sur un ensemble minimal d'informations contenues dans le damier : l'emplacement et le type de pièces, et la différence de nombre de pièces entre les deux côtés. Au final, le programme ( Blondie24 ) a été testé sur 165 matchs contre des joueurs et s'est classé parmi les 0,4% les plus élevés. Il a également remporté une victoire contre le programme Chinook à son niveau de jeu « expert ».

Aller

Les CNN ont été utilisés dans l' ordinateur Go . En décembre 2014, Clark et Storkey ont publié un article montrant qu'un CNN formé par apprentissage supervisé à partir d'une base de données de jeux professionnels humains pourrait surpasser GNU Go et gagner quelques jeux contre Monte Carlo Tree Search Fuego 1.1 en une fraction du temps qu'il a fallu à Fuego pour jouer. Plus tard, il a été annoncé qu'un grand réseau de neurones convolutifs à 12 couches avait correctement prédit le mouvement professionnel dans 55% des positions, ce qui équivaut à la précision d'un joueur humain de 6 dan . Lorsque le réseau convolutif entraîné a été utilisé directement pour jouer à des jeux de Go, sans aucune recherche, il a battu le programme de recherche traditionnel GNU Go dans 97% des jeux et a égalé les performances du programme de recherche arborescente de Monte Carlo Fuego simulant dix mille lectures (environ un million de positions) par coup.

Quelques CNN pour choisir les mouvements à essayer ("réseau politique") et évaluer les positions ("réseau de valeur") conduisant le MCTS ont été utilisés par AlphaGo , le premier à battre le meilleur joueur humain de l'époque.

Prévision de séries chronologiques

Les réseaux de neurones récurrents sont généralement considérés comme les meilleures architectures de réseaux de neurones pour la prévision de séries chronologiques (et la modélisation de séquences en général), mais des études récentes montrent que les réseaux convolutifs peuvent fonctionner de manière comparable, voire meilleure. Les convolutions dilatées pourraient permettre aux réseaux de neurones convolutifs unidimensionnels d'apprendre efficacement les dépendances des séries temporelles. Les convolutions peuvent être implémentées plus efficacement que les solutions basées sur RNN, et elles ne souffrent pas de gradients de disparition (ou d'explosion). Les réseaux convolutifs peuvent fournir des performances de prévision améliorées lorsqu'il existe plusieurs séries temporelles similaires à partir desquelles apprendre. Les CNN peuvent également être appliqués à d'autres tâches dans l'analyse des séries chronologiques (par exemple, la classification des séries chronologiques ou la prévision quantile).

Patrimoine culturel et jeux de données 3D

Alors que les découvertes archéologiques telles que les tablettes d'argile avec écriture cunéiforme sont de plus en plus acquises à l'aide de scanners 3D, les premiers ensembles de données de référence deviennent disponibles, comme HeiCuBeDa, fournissant près de 2 000 ensembles de données 2D et 3D normalisés préparés avec le framework logiciel GigaMesh . Ainsi, les mesures basées sur la courbure sont utilisées en conjonction avec les réseaux neuronaux géométriques (GNN), par exemple pour la classification par période de ces tablettes d'argile faisant partie des documents les plus anciens de l'histoire humaine.

Réglage fin

Pour de nombreuses applications, les données d'apprentissage sont moins disponibles. Les réseaux de neurones convolutifs nécessitent généralement une grande quantité de données d'apprentissage afin d'éviter le surapprentissage . Une technique courante consiste à entraîner le réseau sur un ensemble de données plus important à partir d'un domaine connexe. Une fois que les paramètres du réseau ont convergé, une étape d'apprentissage supplémentaire est effectuée à l'aide des données du domaine pour affiner les poids du réseau, c'est ce qu'on appelle l' apprentissage par transfert . De plus, cette technique permet aux architectures de réseau convolutives d'être appliquées avec succès à des problèmes avec de petits ensembles d'apprentissage.

Explications humaines interprétables

L'entraînement et la prédiction de bout en bout sont une pratique courante en vision par ordinateur . Cependant, des explications interprétables par l'homme sont nécessaires pour les systèmes critiques tels que les voitures autonomes . Avec les progrès récents de la saillance visuelle , de l' attention spatiale et temporelle , les régions spatiales/instants temporels les plus critiques pourraient être visualisés pour justifier les prédictions de CNN.

Architectures associées

Réseaux Q profonds

Un deep Q-network (DQN) est un type de modèle d'apprentissage en profondeur qui combine un réseau de neurones profonds avec Q-learning , une forme d' apprentissage par renforcement . Contrairement aux agents d'apprentissage par renforcement antérieurs, les DQN qui utilisent les CNN peuvent apprendre directement à partir d'entrées sensorielles de grande dimension via l'apprentissage par renforcement.

Les résultats préliminaires ont été présentés en 2014, avec un document d'accompagnement en février 2015. La recherche a décrit une application au jeu Atari 2600 . D'autres modèles d'apprentissage par renforcement profond l'ont précédé.

Réseaux de croyances profondes

Les réseaux de croyances profondes convolutives (CDBN) ont une structure très similaire aux réseaux de neurones convolutifs et sont entraînés de la même manière que les réseaux de croyances profondes. Par conséquent, ils exploitent la structure 2D des images, comme le font les CNN, et utilisent la pré-formation comme les réseaux de croyances profondes . Ils fournissent une structure générique qui peut être utilisée dans de nombreuses tâches de traitement d'images et de signaux. Des résultats de référence sur des ensembles de données d'images standard comme l'ICRA ont été obtenus à l'aide de CDBN.

Bibliothèques notables

  • Caffe : Une bibliothèque pour les réseaux de neurones convolutifs. Créé par le Berkeley Vision and Learning Center (BVLC). Il prend en charge à la fois le CPU et le GPU. Développé en C++ et doté de wrappers Python et MATLAB .
  • Deeplearning4j : Apprentissage profond en Java et Scala sur Spark multi-GPU . Une bibliothèque d'apprentissage en profondeur à usage général pour la pile de production JVM s'exécutant sur un moteur de calcul scientifique C++. Permet la création de calques personnalisés. S'intègre à Hadoop et Kafka.
  • Dlib : Une boîte à outils pour créer des applications d'apprentissage automatique et d'analyse de données dans le monde réel en C++.
  • Microsoft Cognitive Toolkit : Une boîte à outils d'apprentissage en profondeur écrite par Microsoft avec plusieurs fonctionnalités uniques améliorant l'évolutivité sur plusieurs nœuds. Il prend en charge des interfaces à part entière pour la formation en C++ et Python et avec une prise en charge supplémentaire de l'inférence de modèle en C# et Java.
  • TensorFlow : bibliothèque de type Theano sous licence Apache 2.0 avec prise en charge du processeur, du processeur graphique, de l' unité de traitement du tenseur (TPU) propriétaire de Google et des appareils mobiles.
  • Theano : La bibliothèque d'apprentissage en profondeur de référence pour Python avec une API largement compatible avec la célèbre bibliothèque NumPy . Permet à l'utilisateur d'écrire des expressions mathématiques symboliques, puis génère automatiquement leurs dérivés, évitant ainsi à l'utilisateur d'avoir à coder des dégradés ou une rétropropagation. Ces expressions symboliques sont automatiquement compilées en code CUDA pour une implémentation rapide sur le GPU .
  • Torch : un cadre de calcul scientifique avec une large prise en charge des algorithmes d'apprentissage automatique, écrit en C et Lua . L'auteur principal est Ronan Collobert, et il est maintenant utilisé sur Facebook AI Research et Twitter.

API notables

Voir également

Remarques

Les références

Liens externes