Quelle est la différence entre un réseau neuronal convolutif et un réseau neuronal régulier?

18

J'ai beaucoup vu ces termes autour de ce site, en particulier dans les balises et - .

Je sais qu'un réseau neuronal est un système basé vaguement sur le cerveau humain. Mais quelle est la différence entre un réseau neuronal convolutif et un réseau neuronal régulier? L'un est-il juste beaucoup plus compliqué et, ahem, alambiqué que l'autre?

Mithical
la source

Réponses:

23

TLDR: Le réseau de neurones à convolution est une sous-classe de réseaux de neurones qui ont au moins une couche de convolution. Ils sont parfaits pour capturer des informations locales (par exemple des pixels voisins dans une image ou des mots environnants dans un texte) ainsi que pour réduire la complexité du modèle (formation plus rapide, nécessite moins d'échantillons, réduit le risque de sur-ajustement).

Voir le tableau suivant qui décrit les différentes architectures de neurones-réseaux , y compris en profondeur-conventionnel des réseaux de neurones: visualisation.


Les réseaux de neurones (NN) , ou plus précisément les réseaux de neurones artificiels (ANN) , est une classe d'algorithmes d'apprentissage automatique qui a récemment reçu beaucoup d'attention (encore une fois!) En raison de la disponibilité des Big Data et des installations informatiques rapides (la plupart du Deep Learning Les algorithmes sont essentiellement des variations différentes de ANN).

La classe d'ANN couvre plusieurs architectures, y compris les réseaux de neurones convolutionnels ( CNN ), les réseaux de neurones récurrents ( RNN ), par exemple LSTM et GRU , les encodeurs automatiques et les réseaux de croyances profondes . Par conséquent, CNN n'est qu'un type d'ANN.

D'une manière générale, un ANN est une collection d'unités connectées et réglables (alias nœuds, neurones et neurones artificiels) qui peuvent transmettre un signal (généralement un nombre réel) d'une unité à une autre. Le nombre (de couches) d'unités, leurs types et la façon dont ils sont connectés les uns aux autres est appelé architecture de réseau.

Un CNN, en particulier, possède une ou plusieurs couches d' unités de convolution . Une unité de convolution reçoit son entrée de plusieurs unités de la couche précédente qui créent ensemble une proximité. Par conséquent, les unités d'entrée (qui forment un petit quartier) partagent leurs poids.

Les unités de convolution (ainsi que les unités de mise en commun) sont particulièrement avantageuses car:

  • Ils réduisent le nombre d'unités dans le réseau (car ce sont des mappages plusieurs à un ). Cela signifie qu'il y a moins de paramètres à apprendre, ce qui réduit les risques de surapprentissage car le modèle serait moins complexe qu'un réseau entièrement connecté.
  • Ils tiennent compte du contexte / des informations partagées dans les petits quartiers. Cet avenir est très important dans de nombreuses applications telles que le traitement / extraction d'image, vidéo, texte et de la parole, car les entrées voisines (par exemple pixels, cadres, mots, etc.) véhiculent généralement des informations connexes.

Lisez ce qui suit pour plus d'informations sur les CNN (profonds):

  1. Classification ImageNet avec des réseaux de neurones à convolution profonde
  2. Approfondir les convolutions

ps ANN n'est pas "un système basé vaguement sur le cerveau humain" mais plutôt une classe de systèmes inspirés par les connexions neuronales existent dans le cerveau des animaux.

Borhan Kazimipour
la source
10

Les réseaux neuronaux convolutifs (CNN) sont des réseaux neuronaux avec des contraintes architecturales pour réduire la complexité de calcul et assurer l'invariance traductionnelle (le réseau interprète les modèles d'entrée de la même façon quelle que soit la traduction - en termes de reconnaissance d'image: une banane est une banane, peu importe où elle se trouve dans le image). Les réseaux de neurones convolutifs ont trois caractéristiques architecturales importantes.

Connectivité locale: neurones d'une couche sont uniquement connectés aux neurones de la couche suivante qui sont spatialement proches d'eux. Cette conception réduit la grande majorité des connexions entre les couches consécutives, mais conserve celles qui transportent les informations les plus utiles. L'hypothèse faite ici est que les données d'entrée ont une signification spatiale, ou dans l'exemple de la vision par ordinateur, la relation entre deux pixels distants est probablement moins significative que deux voisins proches.

Poids partagés: c'est le concept qui rend les CNN «convolutifs». En forçant les neurones d'une couche à partager des poids, le passage direct (alimentant les données via le réseau) devient l'équivalent de convoluer un filtre sur l'image pour produire une nouvelle image. La formation des CNN devient alors la tâche d'apprendre les filtres (décider quelles fonctionnalités vous devez rechercher dans les données.)

Pooling et ReLU: les CNN ont deux non-linéarités: les couches de pooling et les fonctions ReLU. Les couches de mise en commun considèrent un bloc de données d'entrée et transmettent simplement la valeur maximale. Faire cela réduit la taille de la sortie et ne nécessite aucun paramètre supplémentaire à apprendre, donc les couches de mise en commun sont souvent utilisées pour réguler la taille du réseau et maintenir le système en dessous d'une limite de calcul. La fonction ReLU prend une entrée, x, et renvoie le maximum de {0, x}. ReLU(x) = argmax(x, 0). Cela introduit un effet similaire à tanh (x) ou sigmoïde (x) en tant que non-linéarités pour augmenter la puissance expressive du modèle.


Lectures complémentaires

Comme une autre réponse l'a mentionné, le cours CS 231n de Stanford couvre cela en détail. Consultez ce guide écrit et cette conférence pour plus d'informations. Les articles de blog comme celui-ci et celui-ci sont également très utiles.

Si vous êtes toujours curieux de savoir pourquoi les CNN ont la structure qu'ils ont, je suggère de lire le document qui les a présentés bien que ce soit assez long, et peut-être de vérifier cette discussion entre Yann Lecun et Christopher Manning sur les prieurs innés (les hypothèses que nous faisons lorsque nous concevons l'architecture d'un modèle).

Jackson Waschura
la source
2
"et assurer l'invariance traductionnelle" Qu'est-ce que c'est que l'invariance traductionnelle? Lorsque vous mentionnez un terme aussi mystérieux, vous devez au moins le définir intuitivement.
nbro
1
Oups, je suis d'accord ... ai-je ajouté dans une brève description.
Jackson Waschura
1
C'est une meilleure réponse pour moi car elle explique exactement comment les CNN sont un type spécifique de NN. D'autres réponses ne mentionnent pas le partage du poids.
Denziloe
5

UNE réseau neuronal convolutionnel est un réseau qui a des couches convolutionnelles . Si un réseau neuronal général est, en gros, inspiré par un cerveau humain (ce qui n'est pas très précis), le réseau neuronal convolutionnel est inspiré par le système cortical visuel, chez l'homme et les autres animaux (qui est plus proche de la vérité) . Comme son nom l'indique, cette couche applique la convolution avec un filtre apprenable (alias noyau ), par conséquent le réseau apprend les motifs dans les images: bords, coins, arcs, puis figures plus complexes. Le réseau de neurones convolutifs peut également contenir d'autres couches, généralement des couches communes et denses.

Recommande fortement le tutoriel CS231n à ce sujet: il est très détaillé et contient beaucoup de très belles visualisations.

Maxime
la source