Funktionsweise der Hyperparameter-Optimierung - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Funktionsweise der Hyperparameter-Optimierung

Beim Erstellen komplexer Machine Learning-Systeme wie neuronaler Deep Learning-Netzwerke ist es unmöglich, alle möglichen Kombinationen zu untersuchen. Hyperparameter-Tuning kann Ihre Produktivität steigern, indem Sie viele Varianten eines Modells ausprobieren. Es sucht automatisch nach dem besten Modell, indem es sich auf die vielversprechendsten Kombinationen von Hyperparameterwerten innerhalb der von Ihnen angegebenen Bereiche konzentriert. Um gute Ergebnisse zu erzielen, müssen Sie die richtigen Bereiche für die Untersuchung auswählen.

Verwenden Sie das API-Referenzhandbuch, um zu erfahren, wie Sie mit der Hyperparameteroptimierung interagieren. Die Beispiele auf dieser Seite finden Sie in den HyperbandStrategyConfig APIs HyperParameterTuningJobConfig und . APIs

Anmerkung

Da der Algorithmus selbst stochastisch ist, ist es möglich, dass das Modell zur Abstimmung der Hyperparameter nicht auf die beste Antwort konvergiert. Dies kann auch dann der Fall sein, wenn die bestmögliche Kombination von Werten innerhalb der von Ihnen ausgewählten Bereiche liegt.

Wenn Sie die Rastersuche verwenden, wählt die Hyperparameteroptimierung Kombinationen von Werten aus dem Bereich der kategorialen Werte aus, den Sie bei der Erstellung des Jobs angeben. Bei Verwendung der Grid-Suchstrategie werden nur kategoriale Parameter unterstützt. Sie müssen den MaxNumberOfTrainingJobs-Parameter nicht angeben. Die Anzahl der durch den Optimierungsjob erstellten Trainingsjobs wird automatisch als Gesamtzahl der möglichen unterschiedlichen kategorialen Kombinationen berechnet. Falls angegeben, MaxNumberOfTrainingJobs sollte der Wert von der Gesamtzahl der möglichen unterschiedlichen kategorialen Kombinationen entsprechen.

Bei der Verwendung der Zufallssuche wählt die Hyperparameter-Abstimmung eine zufällige Kombination von Werten aus den Bereichen, die Sie für die Hyperparameter angegeben haben, für jeden gestarteten Trainingsauftrag aus. Da die Wahl der Hyperparameterwerte nicht von den Ergebnissen früherer Trainingsaufträge abhängt, können Sie die maximale Anzahl gleichzeitiger Trainingsaufträge ausführen, ohne die Leistung der Abstimmung zu beeinträchtigen.

Ein Beispiel-Notebook, das eine zufällige Suche verwendet, finden Sie im Notebook Zufällige Suche und Hyperparameter-Skalierung mit SageMaker XGBoost und Automatische Modelloptimierung.

Bayes'sche Optimierung

Die Bayes'sche Optimierung behandelt die Abstimmung der Hyperparameter wie ein Regressionsproblem . Mit einer vorgegebenen Reihe von Eingabefunktionen (den Hyperparametern) optimiert die Hyperparameter-Optimierung ein Modell für die Metrik, die Sie auswählen. Um das Problem einer Regression zu lösen, werden bei der Hyperparameter-Optimierung Vermutungen angestellt, welche Hyperparameter-Kombinationen wahrscheinlich die besten Ergebnisse erzielen. Um diese Werte zu überprüfen, werden anschließend Schulungsaufträge ausgeführt. Nach dem Testen eines Satzes von Hyperparametern wird beim Hyperparameter-Tuning mittels Regression der nächste Satz von Hyperparametern zum Testen ausgewählt.

Die Hyperparameteroptimierung verwendet eine Amazon- SageMaker Implementierung der Bayesschen Optimierung.

Bei der Auswahl der besten Hyperparameter für den nächsten Schulungsauftrag durch die Hyperparameter-Optimierung werden alle bisher bekannten Fakten zum Problem in Betracht gezogen. Manchmal wird eine Kombination aus Hyperparameter-Werten ausgewählt, die eng an die Kombination angelehnt ist, die den bisher besten Schulungsauftrag geliefert hat, um die Leistung inkrementell zu verbessern. Auf diese Weise können bei der Hyperparameter-Optimierung die besten bisher bekannten Ergebnisse genutzt werden. In anderen Fällen wird eine Reihe von Hyperparameter-Werten mit großem Abstand zu den bisher getesteten Werten ausgewählt. Auf diese Weise kann es den Bereich der Hyperparameterwerte erkunden und versuchen, neue Bereiche zu finden, die noch nicht gut verstanden sind. Diese Abwägung von Erkunden und Nutzen ist bei vielen Machine Learning-Problemen gängige Praxis.

Weitere Informationen zur Bayes-Optimierung finden Sie hier:

Hyperband

Hyperband ist eine auf Multi-Fidelity basierende Optimierungsstrategie, bei der Ressourcen dynamisch neu zugewiesen werden. Hyperband verwendet sowohl Zwischen- als auch Endergebnisse von Trainingsaufgaben, um Epochen gut genutzten Hyperparameterkonfigurationen neu zuzuweisen, und stoppt automatisch diejenigen, die unterdurchschnittlich abschneiden. Es lässt sich auch problemlos skalieren, um viele parallel Trainingsjobs nutzen zu können. Diese Funktionen können die Abstimmung von Hyperparametern im Vergleich zu Strategien zur zufälligen Suche und Bayes-Optimierung erheblich beschleunigen.

Hyperband sollte nur zur Optimierung iterativer Algorithmen verwendet werden, die Ergebnisse auf unterschiedlichen Ressourcenebenen veröffentlichen. Hyperband kann beispielsweise verwendet werden, um ein neuronales Netzwerk für die Bildklassifizierung zu optimieren, das nach jeder Epoche Genauigkeitsmetriken veröffentlicht.

Weitere Informationen über Hyperband finden Sie unter den folgenden Links:

Hyperband mit vorzeitigem Stopp

Trainingsaufträge können vorzeitig abgebrochen werden, wenn es unwahrscheinlich ist, dass sie die objektive Metrik des Hyperparameter-Tuning-Auftrags verbessern. Dies kann dazu beitragen, die Rechenzeit zu reduzieren und eine Überanpassung Ihres Modells zu vermeiden. Hyperband verwendet einen fortschrittlichen internen Mechanismus, um vorzeitiges Stoppen anzuwenden. Daher muss der Parameter TrainingJobEarlyStoppingType in der HyperParameterTuningJobConfig API auf OFF eingestellt sein, wenn Sie die interne Hyperband-Funktion für frühes Stoppen verwenden.

Anmerkung

Die Hyperparameter-Optimierung verbessert Ihr Modell möglicherweise nicht. Es ist ein fortschrittliches Tool für die Entwicklung von Maschinenlösungen. Es sollte daher als Teil des wissenschaftlichen Entwicklungsprozesses betrachtet werden.