1 versteckte Schicht mit 1000 Neuronen gegen 10 versteckte Schichten mit 100 Neuronen


13

Diese Art von Fragen mag problemabhängig sein, aber ich habe versucht, eine Untersuchung zu finden, die sich mit der Frage befasst, ob die Anzahl der versteckten Schichten und ihre Größe (Anzahl der Neuronen in jeder Schicht) wirklich eine Rolle spielen oder nicht.

Meine Frage ist also, ist es wirklich wichtig, wenn wir zum Beispiel eine große versteckte Schicht von 1000 Neuronen haben, gegenüber 10 versteckten Schichten mit jeweils 100 Neuronen?

Antworten:


12

Wenn Sie mehrere Ebenen haben (auch bekannt als tiefes Netzwerk), ist Ihr Netzwerk im Grunde genommen eher bemüht, bestimmte Aspekte der Eingabedaten zu erkennen. Zum Beispiel, wenn Sie die Details eines Hauses (Größe, Rasenfläche, Lage usw.) als Eingabe haben und den Preis vorhersagen möchten. Die erste Schicht kann vorhersagen:

  • Große Fläche, höherer Preis
  • Geringe Anzahl Schlafzimmer, niedrigerer Preis

Die zweite Schicht könnte schließen:

  • Große Fläche + kleine Anzahl Schlafzimmer = große Schlafzimmer = + - Effekt

Ja, eine Ebene kann auch die Statistiken "erkennen", es werden jedoch mehr Neuronen benötigt, da sie sich nicht darauf verlassen kann, dass andere Neuronen "Teile" der Gesamtberechnung durchführen, die zum Erkennen dieser Statistik erforderlich ist.

Schauen Sie sich diese Antwort an


Vielen Dank für Ihre Antwort. Wenn Sie "es macht Ihr Netzwerk aus" schreiben, beziehen Sie sich auf den Fall, dass ich viele versteckte Schichten mit jeweils weniger Neuronen habe, anstatt mehr Neuronen in weniger Schichten zu haben?
Stephen Johnson

@StephenJohnson Hoppla, ich habe die Frage bearbeitet. Ich beziehe mich auf das tiefe Netzwerk (mehrere Schichten).
Thomas W

Schöne Antwort, nochmals vielen Dank. Vielleicht sollte ich dies in einem anderen Thread fortsetzen, aber denken Sie, dass die gleiche Argumentation für wiederkehrende neuronale Netze wie GRU oder LSTM gilt?
Stephen Johnson

@StephenJohnson meinst du wiederkehrende Netzwerke mit einer Schicht gegenüber wiederkehrenden Netzwerken mit mehreren Schichten oder meinst du wegen ihrer wiederkehrenden Verbindungen?
Thomas W

Ich meine im Allgemeinen, weil sie wiederkehrende Verbindungen haben, die es ihnen ermöglichen, Kontexte über größere Entfernungen abzubilden. Profitieren solche Netzwerke davon, tief zu sein, so wie es ein reguläres Feedforward-Netzwerk tun würde? Vielleicht können sie nicht so verglichen werden, da bei der Verwendung von sequentiellen Daten, wie z. B. Audio, in der Regel wiederkehrende Netzwerke verwendet werden.
Stephen Johnson

4

Es gibt so viele Aspekte.

1. Training: Das Training tiefer Netze ist aufgrund des verschwindenden (rückwärts explodierenden) Gradientenproblems eine schwierige Aufgabe . Der Bau eines 10x100-Neuronalnetzes wird daher nicht empfohlen.

2. Geschulte Netzwerkleistung:

  • Informationsverlust: Die klassische Verwendung von neuronalen Netzen ist das Klassifizierungsproblem . Das heißt, wir möchten einige gut definierte Informationen aus den Daten erhalten. (Beispiel: Gibt es ein Gesicht im Bild oder nicht?) Normalerweise hat das Klassifizierungsproblem also viel Eingabe und wenig Ausgabe. Je größer die ausgeblendeten Ebenen sind, desto geringer ist die Abweichung von Eingabe zu Ausgabe. Wir verlieren jedoch Informationen, indem wir Schicht für Schicht weniger Neuronen verwenden. (Das heißt, wir können das Originalbild nicht reproduzieren, basierend auf der Tatsache, dass ein Gesicht darauf ist oder nicht.) Sie müssen also wissen, dass Sie Informationen mit 100 Neuronen verlieren, wenn die Größe der Eingabe (sagen wir mal) 1000 beträgt.
  • Informationskomplexität: Die tieferen Netze (wie von Tomas W erwähnt) können jedoch komplexere Informationen aus den Eingabedaten abrufen. Trotzdem wird die Verwendung von 10 vollständig verbundenen Schichten nicht empfohlen. Es wird empfohlen, Convolutional / Relu / Maxpooling oder andere Arten von Schichten zu verwenden. Firest-Layer können einen wesentlichen Teil der Eingaben komprimieren. (Ex gibt es eine Linie in einem bestimmten Teil des Bildes) Zweite Ebenen können sagen: Es gibt eine bestimmte Form an dieser Stelle im Bild. Usw.

Tiefere Netze sind also "schlauer", aber eine 10x100-Netzstruktur ist eine gute Wahl.


1

Wenn das zu lösende Problem linear trennbar ist, kann eine Schicht von 1000 Neuronen mit jeweils 100 Neuronen besser funktionieren als 10 Schichten. Wenn das Problem nicht linear und nicht konvex ist, benötigen Sie tiefe neuronale Netze.


2
Wenn das Problem linear trennbar ist, brauchen Sie überhaupt keine versteckten Schichten
Amedeo Baragiola

0

Ich denke, Sie haben eine Verwirrung in den Grundlagen der neuronalen Netze. Jede Schicht hat eine separate Aktivierungsfunktion und Ein- / Ausgangsverbindungsgewichte.

Die Ausgabe der ersten ausgeblendeten Ebene wird mit einer Gewichtung multipliziert, von einer Aktivierungsfunktion in der nächsten Ebene verarbeitet und so weiter. Einschichtige neuronale Netze sind für einfache Aufgaben sehr begrenzt, tiefere NN können eine weitaus bessere Leistung erbringen als eine einzelne Schicht.

Verwenden Sie jedoch nicht mehr als eine Ebene, wenn Ihre Anwendung nicht sehr komplex ist. Zusammenfassend bedeutet die 100-Neuronen-Schicht kein besseres neuronales Netzwerk als 10 Schichten x 10 Neuronen, aber 10 Schichten sind nur dann imaginär, wenn Sie tiefgreifendes Lernen betreiben. Beginnen Sie mit 10 Neuronen in der ausgeblendeten Ebene und versuchen Sie, Ebenen oder mehrere Neuronen zur gleichen Ebene hinzuzufügen, um den Unterschied zu erkennen. Lernen mit mehr Schichten wird einfacher, aber es wird mehr Schulungszeit benötigt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.