En apprentissage automatique, un réseau de neurones convolutifs ou réseau de neurones à convolution (en anglais CNN ou ConvNet pour ) est un type de réseau de neurones artificiels acycliques () inventé en 1980 par Kunihiko Fukushima, dans lequel le motif de connexion entre les neurones est inspiré par le cortex visuel des animaux. Les neurones de cette région du cerveau sont arrangés de sorte qu'ils correspondent à des régions qui se chevauchent lors du pavage du champ visuel.. Leur fonctionnement est inspiré par les processus biologiques.. Ils consistent en un empilage multicouche de perceptrons, dont le but est de prétraiter. de petites quantités d'informations. Les réseaux neuronaux convolutifs ont de larges applications dans la reconnaissance d'image et vidéo, les systèmes de recommandation. et le traitement du langage naturel..

Présentation Considérons l'analyse d'une image monochrome (en deux dimensions, largeur et hauteur) ou en couleur ().

Un réseau neuronal convolutif se compose de deux types de neurones artificiels, agencés en « couches », traitant successivement l'information : les neurones de traitement, qui traitent une portion limitée de l'image (appelée « champ réceptif ») au travers d'une fonction de convolution ; les neurones de mise en commun des sorties dits de . Un traitement correctif non linéaire et ponctuel peut être appliqué entre chaque couche pour améliorer la pertinence du résultat..

L'ensemble des sorties d'une couche de traitement permet de reconstituer une image intermédiaire, qui servira de base à la couche suivante.

Traitement convolutif Traitement de profondeur 1 et sans chevauchement (facilitant la compréhension) Dans le cadre de la reconnaissance d'image, cette dernière est « pavée », c'est-à-dire découpée en petites zones (appelées tuiles). Chaque tuile sera traitée individuellement par un neurone artificiel (qui effectue une opération de filtrage classique en associant un poids à chaque pixel de la tuile). Tous les neurones ont les mêmes paramètres de réglage. Le fait d'avoir le même traitement (mêmes paramètres), sur une petite surface de l'image, légèrement décalé pour chaque champ récepteur, s'appelle une convolution... Cette strate de neurones avec les mêmes paramètres est appelée « noyau de convolution ».

Les pixels d'une tuile sont analysés globalement. Dans le cas d'une image en couleur, un pixel contient 3 entrées (rouge, vert et bleu), qui seront traitées globalement par chaque neurone. Donc l'image peut être considérée comme un volume, et notée par exemple pour de largeur, 10 de hauteur et 3 de profondeur correspondant aux 3 canaux rouge, vert et bleu. De manière générale, on parlera de « volume d'entrée ».

Généralisation (profondeur et chevauchement) Dans les faits, la zone analysée est légèrement plus grande que la tuile et est appelée « champ récepteur ». Les champs récepteurs se chevauchent donc, afin d'obtenir une meilleure représentation de l'image originale ainsi qu'une meilleure cohérence du traitement au fil des couches de traitement.. Le chevauchement est défini par le pas (décalage entre deux champs récepteurs adjacents).

Un noyau de convolution va analyser une caractéristique de l'image d'entrée. Pour analyser plusieurs caractéristiques, on va empiler des strates de noyaux de convolution indépendants, chaque strate analysant une caractéristique de l'image. L'ensemble des strates ainsi empilées forme la « couche de traitement convolutif », qu'il faut voir en fait comme un volume (souvent appelé « volume de sortie »). Le nombre de strates de traitement s'appelle la profondeur de la couche de convolution (à ne pas confondre avec la profondeur d'un réseau de neurones convolutifs qui compte le nombre de couches de convolution).

Une couche de convolution permet de traiter un volume d'entrée pour fournir un volume de sortie. On peut également assimiler le volume de sortie à une image intermédiaire.

Pour formuler les choses différemment, dans un réseau de neurones convolutifs, chaque champ récepteur est traité par un perceptron monocouche. Et tous les perceptrons monocouche associés à l'ensemble des champs récepteurs sont paramétrés de manière identique.

Caractéristiques et avantages Un avantage majeur des réseaux convolutifs est l'utilisation d'un poids unique associé aux signaux entrant dans tous les neurones d'un même noyau de convolution. Cette méthode réduit l'empreinte mémoire, améliore les performances et permet une invariance du traitement par translation. C'est le principal avantage du réseau de neurones convolutifs par rapport au perceptron multicouche, qui, lui, considère chaque neurone indépendant et affecte donc un poids différent à chaque signal entrant.

Lorsque le volume d'entrée varie dans le temps (vidéo ou son), il devient intéressant de rajouter un paramètre le long de l'échelle de temps dans le paramétrage des neurones. On parlera dans ce cas de réseau neuronal à retard temporel (TDNN)..

Comparés à d'autres algorithmes de classification d'image, les réseaux de neurones convolutifs utilisent relativement peu de pré-traitement. Cela signifie que le réseau est responsable de faire évoluer tout seul ses propres filtres (apprentissage sans supervision), ce qui n'est pas le cas d'autres algorithmes plus traditionnels. L'absence de paramétrage initial et d'intervention humaine est un atout majeur des CNN.

Histoire La conception des réseaux de neurones convolutifs suit la découverte de mécanismes visuels dans les organismes vivants. Début 1968, des travaux. ont montré chez l'animal que le cortex visuel contient des arrangements complexes de cellules, responsables de la détection de la lumière dans les sous-régions du champ visuel qui se chevauchent, appelés champs réceptifs. Le document a identifié deux types de cellules de base : les cellules simples, qui répondent à des pics caractéristiques (grand contraste, forte intensité...) à l'intérieur de leur champ récepteur ; et les cellules complexes, qui ont des champs récepteurs plus grands et sont localement invariantes à la position exacte du motif. Ces cellules agissent comme des filtres locaux sur l'espace d'entrée.

Le néocognitron Le , introduit par Kunihiko Fukushima en 1980.. et ancêtre des réseaux de convolution, est le premier ANN qui nécessite que les unités situées à plusieurs positions du réseau aient des poids partagés, une caractéristique des CNN. Sa version précédente, le cognitron, en différait principalement par l'absence de cette contrainte, mais possédait toutefois lui aussi des couches de pooling.

En 1969, Fukushima a introduit la fonction d'activation du ReLU (unité linéaire rectifiée)... Elle n'a pas été utilisée dans son néocognitron puisque tous les poids n'étaient pas négatifs ; l'inhibition latérale a été utilisée à la place. Le redresseur est devenu la fonction d'activation la plus populaire pour les CNN et les apprentissage profond en général..

Le néocognitron a été modifié en 1988 pour les signaux temporels.. La même année, une conception différente des réseaux de neurones convolutifs a été proposée. pour l'application de la décomposition en signaux d'électromyographies unidimensionnelles. Ce système a été modifié en 1989 grâce à d'autres conceptions à base de convolution...

Dans une variante du néocognitron, le cresceptron, au lieu d'utiliser la moyenne spatiale de Fukushima avec inhibition et saturation, J. Weng ont introduit en 1993 une méthode, le , où une unité de sous-échantillonnage calcule le maximum des activations des unités de son patch.. Le regroupement maximal est souvent utilisé dans les CNN modernes..

Plusieurs algorithmes d'apprentissage supervisé et d'apprentissage non supervisé 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.

Réseaux de neurones convolutifs et processeurs graphiques À la suite de l'article de 2005 qui a établi l'intérêt des processeurs graphiques (GPU) pour l'apprentissage machine., plusieurs publications vont développer ce principe pour rendre les GPU très efficaces..... En 2012, Ciresan ont significativement amélioré la meilleure performance dans la littérature pour plusieurs bases de données d'images, y compris la base de données MNIST, la base de données noRb, le HWDB1, l'ensemble de données CIFAR10 ( RVB étiquetées), et l'ensemble de données ImageNet..

Différence entre réseaux de neurones convolutifs comparés et perceptron multicouche Bien qu'efficaces pour le traitement d'images, les perceptrons multicouches (MLP) ont des difficultés à gérer des images de grande taille, en raison de la croissance exponentielle du nombre de connexions avec la taille de l'image, du fait que chaque neurone est « totalement connecté » à chacun des neurones de la couche précédente et suivante. Les réseaux de neurones convolutifs, dont le principe est inspiré de celui du cortex visuel des vertébrés, limite au contraire le nombre de connexions entre un neurone et les neurones des couches adjacentes, ce qui diminue drastiquement le nombre de paramètres à apprendre.. Pour un réseau profond tel que AlexNet par exemple, plus de 90 % des paramètres à apprendre sont dus aux « complètement connectées » les plus profondes, et le reste concerne les (5) couches convolutives. thumb |352x352px| Une couche du CNN en .(vert = volume d'entrée, bleu = volume du champ récepteur, gris = couche de CNN, cercles = neurones artificiels indépendants) Par exemple, si on prend une image de taille (32 de large, 32 de haut, 3 canaux de couleur), un seul neurone entièrement connecté dans la première couche cachée du MLP aurait (32*32*3). Une image conduirait ainsi à traiter par neurone ce qui, multiplié par le nombre de neurones, devient énorme.

Les réseaux de neurones convolutifs visent à limiter le nombre d'entrées tout en conservant la forte corrélation « spatialement locale » des images naturelles. Par opposition aux MLP, les CNN ont les traits distinctifs suivants, chapitre 9. : Connectivité locale : grâce au champ récepteur qui limite le nombre d'entrées du neurone, tout en conservant l'architecture MLP (cf. point précédent), les réseaux de neurones convolutifs assurent ainsi que les « filtres » produisent la réponse la plus forte à un motif d'entrée spatialement localisé, ce qui conduit à une représentation parcimonieuse de l'entrée. Une telle représentation occupe moins d'espace en mémoire. De plus, le nombre de paramètres à estimer étant réduit, leur estimation (statistique) est plus robuste pour un volume de données fixé (comparé à un MLP). Poids partagés : dans les réseaux de neurones convolutifs, les paramètres de filtrage d'un neurone (pour un champ récepteur donné) sont identiques pour tous les autres neurones d'un même noyau (traitant tous les autres champs récepteurs de l'image). Ce paramétrage (vecteur de poids et biais) est défini dans une « carte de fonction ». Invariance à la translation : comme tous les neurones d'un même noyau (filtre) sont identiques, le motif détecté par ce noyau est indépendant de localisation spatiale dans l'image

Ensemble, ces propriétés permettent aux réseaux de neurones à convolution d'obtenir une meilleure robustesse dans l'estimation des paramètres sur des problèmes d'apprentissage puisque, pour une taille de corpus d'apprentissage fixée, la quantité de données par paramètres est plus grande. Le partage de poids permet aussi de réduire considérablement le nombre de paramètres libres à apprendre, et ainsi les besoins en mémoire pour le fonctionnement du réseau. La diminution de l'empreinte mémoire permet l'apprentissage de réseaux plus grands donc souvent plus puissants.

Blocs de construction Une architecture de réseau de neurones convolutifs est formée par un empilement de couches de traitement : la couche de convolution (CONV) qui traite les données d'un champ récepteur ;