CNN's vs Densely Connected NN's

7

Bei der Bildklassifizierung wird allgemein gesagt, dass der Hauptgrund für die Verwendung von CNNs darin besteht, dass dicht verbundene NNs nicht so viele Parameter verarbeiten können (10 ^ 6 für ein 1000 * 1000-Bild). Meine Frage ist, gibt es einen anderen Grund, warum CNNs über DNNs (dicht verbundene NNs) verwendet werden?

Wenn wir über unendliche Ressourcen verfügen, übertrumpfen DNN CNNs oder sind CNNs von Natur aus gut für die Bildklassifizierung geeignet, da RNNs für Sprache sind. Antworten, die entweder auf Mathematik oder Erfahrung auf dem Gebiet basieren, werden geschätzt.

DuttaA
quelle

Antworten:

2

Das Schlüsselwort hier ist Parameterfreigabe oder Gewichtsfreigabe für verschiedene Bildbereiche.

Wenn wir ein einfaches Beispiel für ein Graustufen-Binärbild eines Alphabets 'F' nehmen, ist es eine Kombination mehrerer Muster. Die Muster hier sind vertikale Linien und horizontale Linien. Diese Muster basieren auf der Beziehung zwischen den Intensitäten zusammenhängender Zellen. Diese Beziehung zwischen zusammenhängenden Zellen wird unter Verwendung einer Gewichtsmatrix hergestellt.

Um mehrere horizontale Linien zu identifizieren, benötigen wir nicht mehrere Knotensätze in einer verborgenen dichten Schicht, um verschiedene horizontale Linien im Bild zu identifizieren. Das Muster ist das gleiche, aber an verschiedenen Stellen vorhanden. Daher kommt die Gewichtsverteilung ins Spiel.

Codieren Sie in der ersten verborgenen Ebene die horizontale Linie des Musters in einer Gewichtsmatrix (während des Trainings gelernt und beim Testen verwendet). Legen Sie es über ein kleines Gitter und prüfen Sie, ob es vorhanden ist. Wenn diese Matrix über das Bild geschoben und getestet wird, wird das Vorhandensein horizontaler Linien an verschiedenen Stellen markiert. Diese Gewichtsmatrix wird als Kernel bezeichnet.

Durch die Kombination der oben genannten Punkte bietet der Kernel eine Möglichkeit, die Parameter- / Gewichtsverteilung zwischen zusammenhängenden Zellen zu handhaben, um Muster zu identifizieren. Eine dichte Schicht anstelle von Kerneln würde es irgendwann lösen, aber auf zufällige Weise beginnen. Da ein effizienter Weg identifiziert wurde, wird er verwendet.

Um vertikale Linien zu identifizieren, wird ein weiterer Kernel benötigt, über den Sie gleiten können.

Angenommen, als nächstes haben wir eine dichte Schicht als 2. verborgene Schicht. Diese Ebene sucht nach Kombinationen von Mustern ('p' horizontale Linien und 'q' vertikale Linien in diesem Fall für 'F') und lernt Kombinationen, um die Ausgabe zu identifizieren.

Nur um mit der herkömmlichen Programmierung zu vergleichen, sind Kernel wie reguläre Ausdrücke. dichte Schichten sind wie Schleifen. Ich teile nur meine Gedanken. Jede bessere Erklärung ist willkommen.

Solver149
quelle
2

Faltungsneurale Netze können im Vergleich zu dicht verbundenen Netzen mehr räumliche Merkmale erkennen. Bedenken Sie, dass in jedem gegebenen realen Bild die Pixelwerte benachbarter Zellen nicht stark variieren. Wenn dieses Bild jedoch zum Trainieren an ein dicht verbundenes neuronales Netzwerk übergeben wird, gehen die räumlichen Beziehungen zwischen benachbarten Pixeln verloren, da alle anderen Zellen die stark beeinflussen können Training, während in Faltungsnetzwerken aufgrund des Betriebs der Faltung durch lokale Informationen erhalten bleibt, wird dies als lokale Konnektivität bezeichnet.

Pradeep BV
quelle
0

Das ist nicht der eigentliche Grund, warum "Faltungs" -Schichten von Zellen im visuellen System inspiriert sind. Dies leitet sich aus der Arbeit von Hubel-Wiesel ab. Weitere Informationen finden Sie im Hubel-Wiesel-Experiment.

riemann77
quelle
Es wurde "inspiriert", aber es gibt viele Systeme, die Hubel Weiel nicht folgen, aber eine bessere Leistung erbringen. Auch Hubel Wesley wird vermutet und ich denke, es ist richtig, es sei denn, es hat sich als falsch erwiesen
DuttaA
"Es war 'inspiriert', aber es gibt viele Systeme, die Hubel Wiesel nicht folgen und dennoch eine bessere Leistung erbringen." Welche Systeme für welche Aufgaben? Für fast alle Aufgaben im Zusammenhang mit der Bildklassifizierung sind Faltungsnetzwerke besser geeignet, und der Hauptgrund für Hubel und Wiesel ist, dass das visuelle System "lokal" reagiert.
Riemann77
Die Verwendung von Filtern dient ausschließlich der Reduzierung der Berechnung ... ein dNN ist auch ein Filter ... Ein dnn mit vielen Ausgängen für einen einzelnen RGB-Kanal kann leicht erreicht werden (im Grunde genommen ein cnn, aber die Filter auf einer bestimmten Schicht unterscheiden sich für die gesamtes Bild, ein riesiger Filter, der sich über das gesamte Bild erstreckt, ich kann so viele riesige Filter verwenden und ein dnn erstellen), während der Hauptgrund für cnn die Kantenerkennung ist, gibt es keinen Grund für dieses dicht verbundene System, nicht besser als ein gewöhnlicher Filter zu arbeiten für alle
DuttaA
"Ich kann so viele Riesenfilter verwenden und ein DNS bauen", würden Sie am Ende überanpassen
riemann77
Das ist nicht der Punkt, es gibt viele Methoden, um das zu verhindern
DuttaA