Was machen die vollständig verbundenen Schichten in CNNs?

19

Ich verstehe die Faltungs- und Bündelungsschichten, kann aber den Grund für eine vollständig verbundene Schicht in CNNs nicht sehen. Warum ist die vorherige Ebene nicht direkt mit der Ausgabeebene verbunden?

Jeff
quelle

Antworten:

31

Die Ausgabe von den Faltungsschichten repräsentiert Merkmale auf hoher Ebene in den Daten. Während diese Ausgabe abgeflacht und mit der Ausgabeebene verbunden werden kann, ist das Hinzufügen einer vollständig verbundenen Ebene (normalerweise) eine kostengünstige Methode, um nichtlineare Kombinationen dieser Features zu lernen.

Im Wesentlichen liefern die Faltungsschichten einen aussagekräftigen, niedrigdimensionalen und etwas unveränderlichen Merkmalsraum, und die vollständig verbundene Schicht lernt eine (möglicherweise nichtlineare) Funktion in diesem Raum.

HINWEIS: Das Konvertieren von FC-Layern in Conv-Layer ist trivial. Das Konvertieren dieser obersten FC-Ebenen in Conv-Ebenen kann hilfreich sein, wie auf dieser Seite beschrieben.

jamesmf
quelle
Danke für deine Antwort James. Wir lernen also die Gewichte zwischen den verbundenen Schichten mit Rückausbreitung, ist das richtig?
Jeff
Ja, der Fehler breitet sich durch die vollständig verbundene Schicht in die Faltungsschicht und die Pool-Schicht zurück.
Jamesmf
Okay. Der Zweck der fc-Schicht kann also als nichtlinearer PCA angesehen werden, sie korrigiert die "guten" Merkmale und verringert die anderen durch Erlernen des vollständigen Satzes von Gewichten.
Jeff
1
Meistens können Sie nichtlineare Merkmalskombinationen erstellen. Alle Funktionen sind möglicherweise gut (vorausgesetzt, Sie haben keine "toten" Funktionen), aber Kombinationen dieser Funktionen sind möglicherweise noch besser.
Jamesmf
@jamesmf: Was ist eine tote Funktion? und über welche Kombinationen von Funktionen sprechen Sie? was meinst du mit einer nicht linearen kombination? Ist die Verwendung einer vollständig verbundenen Ebene in einer CNN obligatorisch? oder kann es ersetzt werden, ohne die Genauigkeit zu beeinträchtigen? Vielen Dank im Voraus. Ich wäre Ihnen dankbar, wenn Sie mir einen Einblick in die von mir gestellten Fragen geben könnten.
Rika
4

Ich fand diese Antwort von Anil-Sharma auf Quora hilfreich.

Wir können das gesamte Netzwerk (zur Klassifizierung) in zwei Teile teilen:

  • Merkmalsextraktion : In herkömmlichen Klassifizierungsalgorithmen wie SVMs haben wir Merkmale aus den Daten extrahiert, damit die Klassifizierung funktioniert. Die Faltungsschichten dienen dem gleichen Zweck der Merkmalsextraktion. CNNs erfassen eine bessere Darstellung von Daten, sodass kein Feature-Engineering erforderlich ist.

  • Klassifizierung : Nach der Feature-Extraktion müssen die Daten in verschiedene Klassen klassifiziert werden. Dies kann über ein vollständig verbundenes (FC) neuronales Netzwerk erfolgen. Anstelle von vollständig verbundenen Schichten können wir auch einen herkömmlichen Klassifikator wie SVM verwenden. Im Allgemeinen werden jedoch FC-Schichten hinzugefügt, um das Modell durchgängig trainierbar zu machen.

Rocksyne
quelle