Richtlinie zur Auswahl der Hyperparameter in Deep Learning

38

Ich bin auf der Suche nach einem Artikel, der dabei helfen kann, eine Richtlinie zur Auswahl der Hyperparameter einer Deep-Architecture wie gestapelte Auto-Encoder oder Deep-Believe-Netzwerke zu erstellen. Es gibt viele Hyperparameter und ich bin sehr verwirrt, wie ich sie auswählen soll. Auch die Kreuzvalidierung ist keine Option, da das Training sehr viel Zeit in Anspruch nimmt!

Jack Twain
quelle
Ich empfehle das Deep Learning Book von Ian Goodfellow: deeplearningbook.org
Vadim Smolyakov

Antworten:

24

Grundsätzlich gibt es vier Methoden:

  1. Manuelle Suche: Mit Hilfe des Wissens haben Sie Informationen zu den Parametern der Problemermittlung und können das Ergebnis beobachten. Anhand dieses Ergebnisses können die Parameter angepasst werden. Wiederholen Sie diesen Vorgang, bis Sie Parameter gefunden haben, die gut funktionieren oder Ihnen die Zeit ausgeht.
  2. Rastersuche: Mit dem Wissen, das Sie über das Problem haben, können Sie Bereiche für die Hyperparameter identifizieren. Wählen Sie dann mehrere Punkte aus diesen Bereichen aus, die normalerweise gleichmäßig verteilt sind. Trainieren Sie Ihr Netzwerk mit jeder Kombination von Parametern und wählen Sie die Kombination aus, die am besten funktioniert. Alternativ können Sie Ihre Suche auf einer engeren Domain wiederholen, die sich auf die Parameter konzentriert, die die besten Ergebnisse erzielen.
  3. Zufallssuche: Wie bei der Rastersuche verwenden Sie die Kenntnis des Problems, um Bereiche für die Hyperparameter zu identifizieren. Anstatt jedoch auf methodische Weise Werte aus diesen Bereichen auszuwählen, wählen Sie sie stattdessen nach dem Zufallsprinzip aus. Wiederholen Sie diesen Vorgang, bis Sie Parameter gefunden haben, die gut funktionieren, oder verwenden Sie das Gelernte, um Ihre Suche einzugrenzen. In der Arbeit Random Search for Hyper-Parameter Optimization schlägt Dr. Bengio vor, dass dies die Basismethode ist, mit der alle anderen Methoden verglichen werden sollten, und zeigt, dass sie tendenziell besser funktionieren als die anderen Methoden.
  4. Bayesianische Optimierung: Neuere Arbeiten konzentrierten sich auf die Verbesserung dieser anderen Ansätze, indem anhand der aus einem bestimmten Experiment gewonnenen Informationen entschieden wurde, wie die Hyperparameter für das nächste Experiment angepasst werden sollen. Ein Beispiel für diese Arbeit wäre die Bayesianische Optimierung maschineller Lernalgorithmen von Adams et al.
DaemonMaker
quelle
14

Es gibt eine Vielzahl von Methoden. Sie können weitgehend in zufällige / ungerichtete Suchmethoden (wie Rastersuche oder Zufallssuche) und direkte Methoden unterteilt werden. Beachten Sie jedoch, dass für alle Einstellungen eine erhebliche Anzahl von Hyperparametern getestet werden muss, es sei denn, Sie haben Glück (mindestens Hunderte, abhängig von der Anzahl der Parameter).

In der Klasse der direkten Methoden können verschiedene unterschiedliche Ansätze identifiziert werden:

  • Derivatfreie Methoden, zum Beispiel Nelder-Mead-Simplex oder DIRECT
  • evolutionäre Methoden wie CMA-ES und Partikelschwärme
  • Modellbasierte Ansätze, zB EGO und sequentielles Kriging

Vielleicht möchten Sie einen Blick in Optunity werfen , ein Python-Paket, das eine Vielzahl von Solvern für die Optimierung von Hyperparametern bietet (alles, was ich gerade erwähnt habe, außer EGO und Kriging). Optunity wird in Kürze für MATLAB und R verfügbar sein. Haftungsausschluss: Ich bin der Hauptentwickler dieses Pakets.

Aufgrund meiner persönlichen Erfahrung sind evolutionäre Methoden für diese Art von Problemen sehr leistungsfähig.

Marc Claesen
quelle
10

Suchen Sie nicht weiter! Yoshua Bengio hat eine meiner Lieblingsarbeiten veröffentlicht, die ich allen neuen Ingenieuren für maschinelles Lernen empfehle, wenn sie mit dem Training neuronaler Netze beginnen: Praktische Empfehlungen für das gradientenbasierte Training tiefer Architekturen. Um seine Perspektive auf das Drehen von Hyperparametern zu erhalten: einschließlich Lernrate, Lernraten-Zeitplan, frühes Stoppen, Minibatch-Größe, Anzahl der ausgeblendeten Ebenen usw., siehe Abschnitt 3.

Sabalaba
quelle