Pourquoi les réseaux de neurones convolutionnels fonctionnent-ils?


22

J'ai souvent entendu des gens dire que les raisons pour lesquelles les réseaux de neurones convolutionnels sont encore mal compris. Est-il connu que les réseaux de neurones convolutifs finissent toujours par apprendre des fonctionnalités de plus en plus sophistiquées au fur et à mesure que nous remontons les couches? Qu'est-ce qui les a amenés à créer une telle pile de fonctionnalités et cela serait-il également vrai pour d'autres types de réseaux de neurones profonds?


Grande explication de Jeremy Howard dans la seconde moitié de cette vidéo: youtube.com/watch?v=ACU-T9L4_lI
Dan

2
Je pense que vous vous méprenez. Nous comprenons parfaitement bien pourquoi les convnets fonctionnent comme une classe d'algorithmes. D'un autre côté, il est souvent très difficile de comprendre pourquoi un modèle spécifique a fait une prédiction particulière. C'est pourquoi nous les appelons "modèles de boîte noire: leur processus d'inférence est opaque pour nous. Cela ne signifie pas que nous sommes confus quant à leur efficacité.
David Marx

Réponses:


19

En fait, je suppose que la question est un peu large! En tous cas.

Comprendre les réseaux de convolution

Ce qui est appris dans ConvNetstente de minimiser la fonction de coût pour classer correctement les entrées dans les tâches de classification. Tous les filtres de changement de paramètres et appris sont destinés à atteindre l'objectif mentionné.

Fonctionnalités apprises dans différentes couches

Ils essaient de réduire le coût en apprenant des caractéristiques de bas niveau, parfois dénuées de sens, comme les lignes horizontales et verticales dans leurs premières couches, puis en les empilant pour créer des formes abstraites, qui ont souvent un sens, dans leurs dernières couches. Pour illustrer cette fig. 1, qui a été utilisé à partir d' ici , peut être considéré. L'entrée est le bus et le gird montre les activations après le passage de l'entrée à travers différents filtres dans la première couche. Comme on peut le voir, le cadre rouge qui est l'activation d'un filtre, dont ses paramètres ont été appris, a été activé pour des bords relativement horizontaux. Le cadre bleu a été activé pour les bords relativement verticaux. Il est possible queConvNetsapprendre des filtres inconnus qui sont utiles et nous, comme par exemple les praticiens de la vision par ordinateur, n'avons pas découvert qu'ils peuvent être utiles. La meilleure partie de ces réseaux est qu'ils essaient de trouver leurs propres filtres et n'utilisent pas nos filtres découverts limités. Ils apprennent les filtres pour réduire la quantité de fonction de coût. Comme mentionné, ces filtres ne sont pas nécessairement connus.

** Figure 1. ** * Activations de bas niveau *

Dans les couches plus profondes, les caractéristiques apprises dans les couches précédentes se rejoignent et créent des formes qui ont souvent un sens. Dans cet article, il a été discuté que ces couches peuvent avoir des activations qui ont un sens pour nous ou que les concepts qui ont un sens pour nous, en tant qu'êtres humains, peuvent être répartis entre d'autres activations. En figue. 2 le cadre vert montre les activatins d'un filtre dans la cinquième couche d'unConvNet. Ce filtre se soucie des visages. Supposons que le rouge se soucie des cheveux. Celles-ci ont un sens. Comme on peut le voir, il y a d'autres activations qui ont été activées juste à la position des visages typiques dans l'entrée, le cadre vert en fait partie; Le cadre bleu en est un autre exemple. Par conséquent, l'abstraction des formes peut être apprise par un filtre ou de nombreux filtres. En d'autres termes, chaque concept, comme le visage et ses composants, peut être réparti entre les filtres. Dans les cas où les concepts sont répartis entre différentes couches, si quelqu'un les regarde, ils peuvent être sophistiqués. L'information est répartie entre eux et pour comprendre que l'information tous ces filtres et leurs activations doivent être pris en considération bien qu'ils puissent sembler tellement compliqués.

** Figure 2. ** * Activations de haut niveau *

CNNsne doivent pas du tout être considérées comme des boîtes noires. Zeiler et tous dans cet article étonnant ont discuté du développement de meilleurs modèles est réduit à des essais et des erreurs si vous ne comprenez pas ce qui est fait à l'intérieur de ces réseaux. Cet article essaie de visualiser les cartes d'entités dans ConvNets.

Capacité à gérer différentes transformations pour généraliser

ConvNetsutiliser des poolingcouches non seulement pour réduire le nombre de paramètres, mais aussi pour avoir la capacité d'être insensible à la position exacte de chaque entité. De plus, leur utilisation permet aux calques d'apprendre différentes caractéristiques, ce qui signifie que les premiers calques apprennent des caractéristiques simples de bas niveau comme les bords ou les arcs, et les calques plus profonds apprennent des caractéristiques plus complexes comme les yeux ou les sourcils. Max PoolingPar exemple, tente de rechercher si une fonction spéciale existe dans une région spéciale ou non. L'idée de poolingcouches est tellement utile mais elle est juste capable de gérer la transition entre d'autres transformations. Bien que les filtres dans différents calques essaient de trouver des motifs différents, par exemple, une face pivotée est apprise en utilisant des calques différents d'une face habituelle,CNNspar là ne possèdent pas de couche pour gérer d'autres transformations. Pour illustrer cela, supposons que vous vouliez apprendre des faces simples sans aucune rotation avec un filet minimal. Dans ce cas, votre modèle peut parfaitement le faire. supposons que l'on vous demande d'apprendre toutes sortes de visages avec une rotation arbitraire des visages. Dans ce cas, votre modèle doit être beaucoup plus grand que le filet appris précédent. La raison en est qu'il doit y avoir des filtres pour apprendre ces rotations dans l'entrée. Malheureusement, ce ne sont pas toutes des transformations. Votre saisie peut également être déformée également. Ces cas ont mis Max Jaderberg et tous en colère. Ils ont composé ce papier pour faire face à ces problèmes afin de calmer notre colère comme la leur.

Les réseaux de neurones convolutifs fonctionnent

Enfin, après avoir fait référence à ces points, ils fonctionnent car ils essaient de trouver des modèles dans les données d'entrée. Ils les empilent pour créer des concepts abstraits par là couches de convolution. Ils essaient de savoir si les données d'entrée ont chacun de ces concepts ou non dans ces couches denses pour déterminer à quelle classe les données d'entrée appartiennent.

J'ajoute quelques liens utiles:


12

Les ConvNets fonctionnent car ils exploitent la localité des fonctionnalités. Ils le font à différentes granularités, pouvant ainsi modéliser hiérarchiquement des entités de niveau supérieur. Ils sont invariants de traduction grâce aux unités de mise en commun. Ils ne sont pas invariables en rotation en soi , mais ils convergent généralement vers des filtres qui sont des versions pivotées des mêmes filtres , prenant ainsi en charge les entrées pivotées.

Je ne connais aucune autre architecture neuronale qui profite de la localité caractéristique dans le même sens que ConvNets.


1
Je dirais que les RNN bénéficient de la même manière que les CNN, en réutilisant les poids sur les séries chronologiques. Les CNN peuvent également être considérés comme n'étant pas nécessairement invariants par rapport à la traduction, mais «invariants par dimension» (bien que je ne sois pas sûr que ce soit un terme correct ou reconnu)
Neil Slater,

Merci pour votre réponse. Corrigez-moi si je me trompe sur les conclusions suivantes - 1. Il semble que nous avons implicitement conçu ConvNets pour apprendre des fonctionnalités de niveau hiérarchiquement plus élevé grâce à la mise en commun. Ce n'est pas un hasard si les fonctionnalités sont sophistiquées dans les couches. 2. L'inclusion des informations de domaine dans la conception d'un réseau de neurones peut faire une énorme différence dans l'efficacité d'apprentissage. ConvNets et RNN essaient de faire exactement cela.
Louez le seigneur

Vos déclarations 1 et 2 me semblent correctes.
ncasas

1
Je pense que les réseaux de capsules sont censés tirer parti de la localité des fonctionnalités de la même manière
David Marx

3

Il ne faut jamais oublier les autres composants d'un ConvNet typique. Les filtres de convolution sélectionnent les caractéristiques invariantes spatiales, comme les arêtes et les cercles. Ces caractéristiques sont quantifiées dans une couche de regroupement qui suit la couche C. Enfin, ils sont introduits dans (généralement) plusieurs couches entièrement connectées (fc). Il faut donner du crédit à ces couches entièrement connectées qui ne sont rien de plus que ce que vous trouvez dans n'importe quel MLP ordinaire.


3

Les réseaux de neurones convolutifs fonctionnent parce que c'est une bonne extension de l'algorithme standard d'apprentissage en profondeur.

Étant donné les ressources et l'argent illimités, il n'y a pas besoin de convolution, car l'algorithme standard fonctionnera également. Cependant, la convolution est plus efficace car elle réduit le nombre de paramètres . La réduction est possible car elle profite de la localisation des fonctionnalités, exactement ce qu'écrit @ncasas.


Cela devrait être la meilleure réponse
Jie.Zhou

1

Est-il connu que les réseaux de neurones convolutifs finissent toujours par apprendre des fonctionnalités de plus en plus sophistiquées au fur et à mesure que nous remontons les couches?

Ce sont des mathématiques pures. Un réseau de neurones, en fin de compte, est une grande fonction mathématique. Et plus le réseau est profond, plus la fonction qu'il représente est grande. Et par plus grand, je veux dire évidemment de grande dimension. Les fonctionnalités apprises sont plus sophistiquées car elles sont le résultat de fonctions plus sophistiquées.

Qu'est-ce qui les a amenés à créer une telle pile de fonctionnalités

Chose intéressante, les réseaux de neurones conventionnels ont été inspirés par notre propre biologie, en fait celle des chats. Hubel et Wiesel ont mené des expériences sur le cortex visuel des chats et ils ont réalisé que la lumière était perçue par des piles de champs optiques. C'est ce qui a inspiré la couche convolutionnelle et une architecture plus profonde.


0

S'appuyant sur les réponses ncasas et horaceT , les ConvNets sont très efficaces car:

  1. Ils sont insensibles aux transformations géométriques et apprennent des caractéristiques qui deviennent de plus en plus compliquées et détaillées, et sont donc de puissants extracteurs de caractéristiques hiérarchiques grâce aux couches convolutives.
  2. Ils combinent les caractéristiques extraites et les agrègent de manière non linéaire pour prédire la sortie et sont donc des classificateurs robustes grâce aux couches entièrement connectées.

Si vous voulez en savoir plus sur les convnets et les différents blocs qui les construisent ainsi que sur les intuitions qui les sous-tendent, voici un article que j'ai récemment écrit sur mon blog personnel qui passe par les détails.


3
Veuillez noter que si vous souhaitez promouvoir votre propre produit / blog, vous devez divulguer votre affiliation dans la réponse , sinon votre réponse peut être signalée comme spam. Si vous n'êtes pas affilié au site, je vous recommande de le dire pour éviter cela. Veuillez lire Comment ne pas être un spammeur
AJ
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.