Optimale Anzahl von Schichten in einem neuronalen Netzwerk?

13

Wie kann die optimale Anzahl von Schichten festgelegt werden, die bei der Implementierung eines neuronalen Netzwerks erstellt werden sollen (Feedforward, Back Propagation oder RNN)?

v01d
quelle

Antworten:

8

Es gibt eine Technik, die Pruningin neuronalen Netzen genannt wird und genau zu diesem Zweck verwendet wird.

Das Beschneiden erfolgt anhand der Anzahl der ausgeblendeten Schichten. Der Prozess ähnelt stark dem Bereinigungsprozess von Entscheidungsbäumen. Der Schnittvorgang läuft wie folgt ab:

  • Trainieren Sie ein großes, dicht verbundenes Netzwerk mit einem Standard-Trainingsalgorithmus
  • Untersuchen Sie das trainierte Netzwerk, um festzustellen, wie wichtig die Gewichte sind
  • Entfernen Sie die unwichtigsten Gewichte
  • Bilden Sie das beschnittene Netzwerk neu aus
  • Wiederholen Sie die Schritte 2 bis 4, bis Sie zufrieden sind

Es gibt jedoch mehrere optimierte Methoden zum Beschneiden neuronaler Netze, und es ist auch ein sehr aktives Forschungsgebiet .

Dawny33
quelle
Ein symmetrischer Ansatz ist die übliche "Rastersuche", die auf die Netzwerkarchitektur angewendet wird. Fangen Sie klein an (so schnell) und probieren Sie automatisch größere Architekturen aus. All dies ist jedoch nur rohe Gewalt ...
Eric Platon
@EricPlaton +1 für die Rastersuche. Sehr praktisch beim Hypertuning von ML-Algen. Aber ist es nicht sehr rechenintensiv?
Dawny33
1
Ja, das ist teuer. Wenn wir jedoch klein anfangen können, können die ersten Phasen ziemlich schnell verlaufen und eine bessere Vorstellung davon geben, worauf wir abzielen sollen.
Eric Platon
@EricPlaton "Grid Search" hätte eine eigene Antwort verdient :)
Dawny33
Ich habe darüber nachgedacht, aber dann gäbe es zwei alternative und vielleicht "gleich richtige" Antworten ... Ich dachte, das Beste für den Leser wäre, die Antwort als eine zusammenzustellen.
Eric Platon
0

Sie können die bayesianische Hyperparameteroptimierung als allgemeine Methode zur Optimierung des Verlusts (oder anderer Faktoren) in Abhängigkeit von den Hyperparametern betrachten. Beachten Sie jedoch, dass die Optimierung des Verlusts in Abhängigkeit von der Anzahl der Ebenen im Allgemeinen keine sehr unterhaltsame Sache ist, je tiefer Ihr Netzwerk ist.

Rastersuche und ein bisschen gesunder Menschenverstand (wie aus vielen Beispielen hervorgeht) sollten die beste Wahl sein.

kc sayz 'kc sayz'
quelle