Lesen Sie unter http://cs231n.github.io/convolutional-networks/#convert , wie Sie die vollständig verbundene Schicht in eine Faltungsschicht umwandeln .
Ich bin nur verwirrt über die folgenden zwei Kommentare:
Es stellt sich heraus, dass diese Konvertierung es uns ermöglicht, das ursprüngliche ConvNet in einem einzigen Vorwärtsdurchlauf sehr effizient über viele räumliche Positionen in einem größeren Bild zu "schieben".
Ein Standard-ConvNet sollte in der Lage sein, Bilder jeder Größe zu bearbeiten. Der Faltungsfilter kann über das Bildraster gleiten. Warum müssen wir also das ursprüngliche ConvNet in einem größeren Bild an einer beliebigen räumlichen Position verschieben?
Und
Die unabhängige Auswertung des ursprünglichen ConvNet (mit FC-Ebenen) über 224 x 224 Ausschnitte des 384 x 384-Bilds in Schritten von 32 Pixel ergibt ein identisches Ergebnis wie die einmalige Weiterleitung des konvertierten ConvNet.
Was bedeutet hier "Schritte von 32 Pixeln"? Bezieht sich das auf die Filtergröße? Bedeutet das, wenn wir über 224 * 224 Ernten des 384 * 384-Bildes sprechen, dass wir ein Empfangsfeld von 224 * 224 verwenden?
Ich habe diese beiden Kommentare im ursprünglichen Kontext als rot markiert.
Antworten:
Vollständig verbundene Ebenen können nur Eingaben mit fester Größe verarbeiten, da eine bestimmte Anzahl von Parametern erforderlich ist, um die Eingabe und Ausgabe vollständig zu verbinden. Während Faltungsschichten nur dieselben Filter über die Eingabe "schieben", kann sie grundsätzlich Eingaben mit einer beliebigen räumlichen Größe behandeln.
In dem Beispielnetzwerk mit vollständig verbundenen Schichten am Ende gibt ein 224 * 224-Bild einen 1000d-Vektor von Klassenwerten aus. Wenn wir das Netzwerk auf ein größeres Bild anwenden, schlägt das Netzwerk aufgrund der Inkonsistenz zwischen der Eingabe und den Parametern der ersten vollständig verbundenen Schicht fehl.
Wenn wir andererseits ein vollständig gefaltetes Netzwerk verwenden, erhalten wir bei Anwendung auf ein größeres Bild 1000 "Heatmaps" von Klassenwerten.
Wie in der folgenden Abbildung (aus dem FCN-Segmentierungspapier ) gezeigt, gibt das obere Netzwerk eine Punktzahl pro Klasse an, und nach der Konvertierung (Faltung) können wir eine Heatmap pro Klasse für ein größeres Bild erhalten.
Über "Schritt" auf derselben Seite im Abschnitt Räumliche Anordnung:
quelle