Que fait l'étape de convolution dans un réseau neuronal convolutionnel?

16

J'étudie les réseaux de neurones convolutifs (CNN) en raison de leurs applications en vision par ordinateur. Je connais déjà les réseaux de neurones standard à alimentation, donc j'espère que certaines personnes ici peuvent m'aider à faire un pas de plus dans la compréhension des CNN. Voici ce que je pense des CNN:

  1. Dans les NN traditionnels, nous avons des données d'apprentissage où chaque élément se compose d'un vecteur caractéristique que nous entrons dans le NN dans la "couche d'entrée", donc avec la reconnaissance d'image, nous pourrions simplement avoir chaque pixel comme une entrée. Ce sont nos vecteurs de fonctionnalités. Alternativement, nous pourrions créer manuellement d'autres vecteurs de caractéristiques - probablement plus petits -.
  2. L'avantage du CNN est qu'il peut générer des vecteurs de caractéristiques plus forts qui sont plus invariants à la distorsion et à la position de l'image. Comme le montre l'image suivante (à partir de ce tutoriel ), les CNN génèrent des cartes d'entités qui sont ensuite alimentées vers un réseau de neurones standard (donc c'est vraiment une étape de prétraitement géante).

entrez la description de l'image ici

  1. Nous obtenons ces «meilleures» fonctionnalités en alternant convolution et sous-échantillonnage. Je comprends le fonctionnement du sous-échantillonnage. Pour chaque carte d'entités, prenez simplement un sous-ensemble des pixels, ou nous pouvons faire la moyenne des valeurs des pixels.

Mais ce que je suis principalement confus, c'est comment fonctionne l'étape de convolution. Je connais les convolutions de la théorie des probabilités (densité pour la somme de deux variables aléatoires), mais comment fonctionnent-elles dans les CNN et pourquoi sont-elles efficaces?

Ma question est similaire à celle-ci mais en particulier, je ne sais pas pourquoi la première étape de convolution fonctionne.

Informaticien
la source

Réponses:

16

Je vais d'abord essayer de partager une certaine intuition derrière CNN, puis commenter les sujets particuliers que vous avez répertoriés.

Les couches de convolution et de sous-échantillonnage d'un CNN ne sont pas différentes des couches cachées d'un MLP commun, c'est-à-dire que leur fonction est d'extraire des caractéristiques de leur entrée. Ces fonctionnalités sont ensuite données à la couche cachée suivante pour extraire des fonctionnalités encore plus complexes, ou sont directement transmises à un classificateur standard pour produire la prédiction finale (généralement un Softmax, mais également SVM ou tout autre peut être utilisé). Dans le contexte de la reconnaissance d'image, ces fonctionnalités sont des gâteries d'images, comme les motifs de trait dans les couches inférieures et les parties d'objet dans les couches supérieures.

Dans les images naturelles, ces caractéristiques ont tendance à être les mêmes à tous les endroits. Reconnaître un certain motif de trait au milieu des images sera aussi utile que le reconnaître près des bordures. Alors pourquoi ne répliquons-nous pas les couches cachées et n'en connectons-nous pas plusieurs copies dans toutes les régions de l'image d'entrée, afin que les mêmes caractéristiques puissent être détectées n'importe où? C'est exactement ce que fait un CNN, mais de manière efficace. Après la réplication (l'étape de "convolution"), nous ajoutons une étape de sous-échantillon, qui peut être implémentée de plusieurs façons, mais qui n'est rien de plus qu'un sous-échantillon. En théorie, cette étape pourrait même être supprimée, mais en pratique, elle est essentielle pour permettre au problème de rester traitable.

Donc:

  1. Correct.
  2. Comme expliqué ci-dessus, les couches cachées d'un CNN sont des extracteurs de fonctionnalités comme dans un MLP normal. Les étapes de convolution et de sous-échantillonnage alternées sont effectuées pendant la formation et la classification, de sorte qu'elles ne sont pas effectuées «avant» le traitement proprement dit. Je ne les appellerais pas "pré-traitement", de la même façon que les couches cachées d'un MLP ne sont pas appelées ainsi.
  3. Correct.

3×35×5

entrez la description de l'image ici

9

Les étapes de convolution et de sous-échantillonnage suivantes sont basées sur le même principe, mais calculées sur des entités extraites dans la couche précédente, au lieu des pixels bruts de l'image d'origine.

Saul Berardo
la source
Merci pour la clarification. Je vais vérifier ce tutoriel que vous avez mentionné.
ComputerScientist
Graphiques illustratifs vraiment sympas. Voir l'ouvrage referenec: M. Egmont-Petersen, D. de Ridder, H. Handels. Traitement d'image avec des réseaux de neurones - une revue, Pattern Recognition, Vol. 35, n ° 10, pp. 2279-2301, 2002
Match Maker EE
Quatre ans plus tard et maintenant je travaille avec des CNN presque tous les jours. Cet article de @Saul Berardo m'a vraiment aidé à me mettre sur la bonne voie :)
ComputerScientist
1

Je n'ai aucune idée de ce que vous entendez par «pourquoi la première étape de convolution fonctionne». Pour qu'un CNN réussisse, il doit avoir plusieurs couches. L'une des idées fondamentales derrière CNN et de nombreuses autres approches d'apprentissage en profondeur est que des signaux plus gros peuvent être identifiés par la corrélation spatiale de leurs petites parties qui peuvent être peu représentées. En d'autres termes, les images peuvent sembler complexes mais elles sont faites à partir d'une combinaison de quelques éléments de base. Pour la vision par ordinateur, la structure de base des images est généralement composée de bords et de coins. CNN essaie d'exploiter la rareté de la structure dans une image en recherchant des structures localisées communes. C'est ce que la première couche du CNN tente de déterminer. Considérez une convolution comme un filtre de correspondance qui recherche des signaux qui correspondent à un modèle spécifique. Son efficacité dépend des données disponibles. Heureusement, le monde est plein de répétitions à petite échelle, donc CNN fonctionne bien pour les tâches de vision par ordinateur.

SimpleLikeAnEgg
la source
Ouais, je pense que c'est l'idée générale. Je n'étais pas clair dans ma question d'origine, mais je me demandais pourquoi les mathématiques fonctionnaient, c'est-à-dire pourquoi la propriété de convolution elle-même permet à la première couche de trouver ces petites pièces.
ComputerScientist
1
En savoir plus sur la convolution et le filtrage adapté. Lorsque le noyau de convolution correspond au signal, il donne le meilleur rendement.
SimpleLikeAnEgg