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?
machine-learning
neural-network
deep-learning
convnet
cnn
Louez le seigneur
la source
la source
Réponses:
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
ConvNets
tente 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 que
ConvNets
apprendre 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.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'un
ConvNet
. 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.CNNs
ne 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 dansConvNets
.Capacité à gérer différentes transformations pour généraliser
ConvNets
utiliser despooling
couches 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 Pooling
Par exemple, tente de rechercher si une fonction spéciale existe dans une région spéciale ou non. L'idée depooling
couches 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,CNNs
par 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:
ConvNets
la source
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.
la source
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.
la source
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.
la source
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.
la source
S'appuyant sur les réponses ncasas et horaceT , les ConvNets sont très efficaces car:
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.
la source