webentwicklung-frage-antwort-db.com.de

Wie wählt man die Anzahl der verborgenen Schichten und Knoten im neuronalen Netzwerk

Was bewirkt die Anzahl der verborgenen Schichten in einem mehrschichtigen neuronalen Perzeptron-Netzwerk für das Verhalten des neuronalen Netzwerks? Dieselbe Frage für die Anzahl der Knoten in verborgenen Ebenen?

Angenommen, ich möchte ein neuronales Netzwerk für die Erkennung handgeschriebener Zeichen verwenden. In diesem Fall stelle ich Pixelfarbintensitätswerte als Eingabeknoten und Zeichenklassen als Ausgabeknoten ein. 

Wie würde ich die Anzahl der verborgenen Ebenen und Knoten wählen, um ein solches Problem zu lösen?

30
gintas

Hinweis: Diese Antwort war zum Zeitpunkt der Erstellung korrekt, ist aber inzwischen veraltet.


In einem neuronalen Netzwerk gibt es selten mehr als zwei verborgene Schichten. Die Anzahl der Layer ist normalerweise kein Parameter Ihres Netzwerks, um den Sie sich Sorgen machen müssen.

Obwohl mehrschichtige neuronale Netzwerke mit vielen Schichten .__ darstellen können. tiefe Schaltungen, das Training von tiefen Netzwerken wurde immer als etwas angesehen eine Herausforderung. Bis vor kurzem fanden sich häufig empirische Studien dass tiefe Netzwerke im Allgemeinen nicht besser und oft schlechter abschneiden. als neuronale Netzwerke mit einer oder zwei verborgenen Schichten.

Bengio, Y. & LeCun, Y., 2007. Skalierung von Lernalgorithmen in Richtung AI. Kernel-Großmaschinen (1), S. 1-41.

Das zitierte Papier ist eine gute Referenz, um mehr über die Auswirkungen der Netzwerk-Tiefe, die jüngsten Fortschritte beim Unterrichten von tiefen Netzwerken und das allgemeine Lernen zu lernen.

18
Don Reba

Die generelle Antwort ist für die Auswahl von Hyperparametern die Kreuzvalidierung. Halten Sie Daten bereit, trainieren Sie die Netzwerke mit verschiedenen Konfigurationen und verwenden Sie diejenige, die die besten Ergebnisse erzielt.

7
Rob Neuhaus

Die meisten Probleme, die ich gesehen habe, wurden mit 1-2 versteckten Ebenen gelöst. Es ist bewiesen, dass MLPs mit nur einer verborgenen Schicht universelle Funktionsapproximatoren sind ( Hornik et al. ). Weitere verborgene Ebenen können das Problem leichter oder schwerer machen. Normalerweise müssen Sie verschiedene Topologien ausprobieren. Ich habe gehört, dass Sie nicht beliebig viele versteckte Layer hinzufügen können, wenn Sie Ihr MLP mit Backprop trainieren möchten, da der Gradient in den ersten Layern zu klein wird (ich habe dafür keine Referenz). Es gibt jedoch einige Anwendungen, bei denen die Benutzer bis zu neun Schichten verwendet haben. Möglicherweise interessieren Sie sich für ein Standard-Benchmark-Problem , das durch verschiedene Klassifizierer und MLP-Topologien gelöst wird.

4
alfa

Neben der Tatsache, dass die Kreuzvalidierung bei verschiedenen Modellkonfigurationen (Anzahl der verborgenen Schichten OR Neuronen pro Schicht) dazu führt, dass Sie eine bessere Konfiguration wählen.

Ein Ansatz ist das Trainieren eines Modells, das so groß und tief wie möglich ist. Verwenden Sie dropout regularization, um einige Neuronen auszuschalten und Überanpassung zu reduzieren.

der Verweis auf diesen Ansatz kann in diesem Dokument gesehen werden https://www.cs.toronto.edu/~hinton/absps/JMLRdropout.pdf

3
iratzhash

Alle obigen Antworten sind natürlich korrekt, aber um nur einige weitere Ideen hinzuzufügen: Einige allgemeine Regeln basieren auf diesem Dokument: "Ungefähre Anzahl verborgener Schichtneuronen in BPNN-Architektur mit mehreren verborgenen Schichten" von Saurabh Karsoliya.


Im Algemeinen:

  • Die Anzahl der Neuronen für verborgene Schichten beträgt 2/3 (oder 70% bis 90%) der Größe der Eingabeebene. Wenn dies nicht ausreicht, können später die Anzahl der Neuronen der Ausgabeschicht hinzugefügt werden.
  • Die Anzahl der versteckten Schichtneuronen sollte weniger als das Doppelte der Anzahl der Neuronen in der Eingabeebene betragen.
  • Die Größe der verborgenen Schichtneuronen liegt zwischen der Größe der Eingabeebene und der Größe der Ausgabeebene.

Denken Sie immer daran, dass Sie verschiedene Kombinationen ausprobieren und ausprobieren müssen. Mit GridSearch können Sie auch das "beste Modell und Parameter" finden. 

Z.B. Wir können eine GridSearch durchführen, um die "beste" Größe der verborgenen Ebene zu bestimmen.

1
seralou