Comment fonctionnent les architectures de goulot d'étranglement dans les réseaux de neurones?

21

Nous définissons une architecture de goulot d'étranglement comme le type trouvé dans le document ResNet où [deux couches conv 3x3] sont remplacées par [une conv 1x1, une conv 3x3 et une autre couche conv 1x1].entrez la description de l'image ici

Je comprends que les couches conv 1x1 sont utilisées comme une forme de réduction de dimension (et de restauration), ce qui est expliqué dans un autre article . Cependant, je ne sais pas pourquoi cette structure est aussi efficace que la disposition d'origine.

Voici quelques bonnes explications: quelle longueur de foulée est utilisée et à quelles couches? Quels sont les exemples de dimensions d'entrée et de sortie de chaque module? Comment les cartes d'entités 56x56 sont-elles représentées dans le diagramme ci-dessus? Le 64-d fait-il référence au nombre de filtres, pourquoi est-ce différent des filtres 256-d? Combien de poids ou de FLOP sont utilisés à chaque couche?

Toute discussion est grandement appréciée!

derekchen14
la source
Je pense que cela peut aider à la généralisation et à la prévention du sur-ajustement. Mais ce n'est qu'un vague souvenir.
Chris

Réponses:

5

L'architecture de goulot d'étranglement est utilisée dans les réseaux très profonds en raison de considérations de calcul.

Pour répondre à vos questions:

  1. Les cartes d'entités 56x56 ne sont pas représentées dans l'image ci-dessus. Ce bloc provient d'un ResNet avec une taille d'entrée 224x224. 56x56 est la version sous-échantillonnée de l'entrée sur une couche intermédiaire.

  2. 64-d fait référence au nombre de cartes d'entités (filtres). L'architecture de goulot d'étranglement a 256-d, tout simplement parce qu'elle est destinée à un réseau beaucoup plus profond, qui peut éventuellement prendre une image de résolution plus élevée en entrée et donc nécessiter plus de cartes de fonctionnalités.

  3. Reportez - vous à cette figure pour les paramètres de chaque couche de goulot d'étranglement dans ResNet 50.

Newstein
la source
1
Pour les futurs lecteurs, je dois mentionner que je pense que les convs 1x1 ont foulée = 1 et pad = 0, pour conserver (LxH) de 56x56. De même, les convs 3x3 ont foulée = 1 et pad = 1 pour conserver la taille également.
derekchen14
Je ne comprends toujours pas. Il semble que les deux aient la même quantité de paramètres, dans ce cas, je ne comprends toujours pas le but de la couche de goulot d'étranglement.
user570593
-1

Je pense vraiment que le deuxième point de la réponse de Newstein est trompeur.

Le 64-dou 256-ddoit faire référence au nombre de canaux de la carte d'entités en entrée - et non au nombre de cartes d'entités en entrée.

Considérez le bloc "goulot d'étranglement" (à droite de la figure) dans la question du PO à titre d'exemple:

  • 256-dsignifie que nous avons une seule carte d'entités en entrée avec dimension n x n x 256. Le 1x1, 64dans la figure signifie des 64 filtres , chacun est 1x1et a des 256canaux ( 1x1x256).
  • Nous pouvons donc voir ici que la convolution d'un seul filtre ( 1x1x256) avec une carte de caractéristiques d'entrée ( n x n x 256) nous donne une n x nsortie.
  • Maintenant, nous avons des 64filtres, donc, en empilant les sorties, la dimension de la carte d'entités en sortie est n x n x 64.

Édité:

  • @Michael Chernick: Ok, alors ce serait une réponse partielle, car j'ai essayé de corriger la réponse acceptée. Pouvez-vous prendre le temps de regarder ma réponse partielle et de me faire savoir si je comprends bien?
Enflammer
la source
Quelle que soit votre réputation, vous ne devez pas utiliser de réponses pour les commentaires.
Michael R. Chernick