Wie funktionieren Engpassarchitekturen in neuronalen Netzwerken?

21

Wir definieren eine Engpassarchitektur als den Typ, der im ResNet-Artikel zu finden ist, in dem [zwei 3x3-Conv-Ebenen] durch [eine 1x1- Conv-Ebene , eine 3x3-Conv-Ebene und eine weitere 1x1-Conv-Ebene] ersetzt werden.Bildbeschreibung hier eingeben

Ich verstehe, dass die 1x1-Conv-Ebenen als eine Form der Dimensionsreduktion (und Wiederherstellung) verwendet werden, die in einem anderen Beitrag erläutert wird . Ich bin mir jedoch nicht sicher, warum diese Struktur so effektiv ist wie das ursprüngliche Layout.

Einige gute Erklärungen könnten beinhalten: Welche Schrittlänge wird in welchen Schichten verwendet? Was sind beispielhafte Eingangs- und Ausgangsabmessungen für jedes Modul? Wie werden die 56x56-Funktionskarten in der obigen Abbildung dargestellt? Beziehen sich die 64-d auf die Anzahl der Filter, warum unterscheidet sich dies von den 256-d-Filtern? Wie viele Gewichte oder FLOPs werden auf jeder Schicht verwendet?

Jede Diskussion wird sehr geschätzt!

derekchen14
quelle
Ich denke, es kann bei der Verallgemeinerung und Verhinderung einer Überanpassung helfen. Aber das ist nur eine vage Erinnerung.
Chris

Antworten:

5

Die Engpassarchitektur wird aus rechentechnischen Gründen in sehr tiefen Netzwerken verwendet.

Um Ihre Fragen zu beantworten:

  1. 56x56-Feature-Maps sind im obigen Bild nicht dargestellt. Dieser Block stammt aus einem ResNet mit der Eingangsgröße 224x224. 56x56 ist die heruntergerechnete Version der Eingabe auf einer Zwischenebene.

  2. 64-d bezieht sich auf die Anzahl der Feature-Maps (Filter). Die Engpassarchitektur hat 256-d, einfach weil sie für ein viel tieferes Netzwerk gedacht ist, das möglicherweise Bilder mit höherer Auflösung als Eingabe verwendet und daher mehr Feature-Maps erfordert.

  3. In dieser Abbildung sind die Parameter der einzelnen Engpassschichten in ResNet 50 aufgeführt.

Newstein
quelle
1
Für zukünftige Leser sollte ich erwähnen, dass ich denke, dass die 1x1 Convs Stride = 1 und Pad = 0 haben, um (BxH) von 56x56 zu erhalten. In ähnlicher Weise haben die 3x3 Convs einen Stride = 1 und einen Pad = 1, um die Größe zu erhalten.
derekchen14
Ich verstehe immer noch nicht. Anscheinend haben beide die gleiche Menge an Parametern. In diesem Fall verstehe ich den Zweck der Bootleneck-Schicht immer noch nicht.
user570593
-1

Ich denke wirklich, dass der zweite Punkt in Newsteins Antwort irreführend ist.

Das 64-doder 256-dsollte sich auf die Anzahl der Kanäle der Eingabe-Feature-Map beziehen - nicht auf die Anzahl der Eingabe-Feature-Maps.

Betrachten Sie den "Engpass" -Block (rechts in der Abbildung) in der Frage des OP als Beispiel:

  • 256-dbedeutet, dass wir eine einzelne Eingabe-Feature-Map mit Bemaßung haben n x n x 256. Das 1x1, 64in der Abbildung bedeutet 64 Filter , jeder ist 1x1und hat 256Kanäle ( 1x1x256).
  • Hier können wir also sehen, dass die Faltung eines einzelnen Filters ( 1x1x256) mit einer Eingabe-Feature-Map ( n x n x 256) eine n x nAusgabe ergibt .
  • Jetzt haben wir 64Filter, daher ist durch Stapeln der Ausgaben die Ausgabe-Feature-Map-Dimension n x n x 64.

Bearbeitet:

  • @Michael Chernick: Ok, dann wäre dies eine teilweise Antwort, da ich versucht habe, die akzeptierte Antwort zu korrigieren. Können Sie sich die Zeit nehmen, meine Teilantwort anzusehen und mich wissen zu lassen, ob ich richtig verstehe?
Entzünden
quelle
Unabhängig vom Ruf sollten Sie keine Antworten für Kommentare verwenden.
Michael R. Chernick