Eine Übersicht über den Hyperparameter-Optimierungsprozess in scikit-learn finden Sie hier .
Eine umfassende Rastersuche findet den optimalen Satz von Hyperparametern für ein Modell. Der Nachteil ist, dass die umfassende Rastersuche langsam ist.
Die zufällige Suche ist schneller als die Rastersuche, weist jedoch eine unnötig hohe Varianz auf.
Es gibt auch zusätzliche Strategien in anderen Paketen, einschließlich Scikit-Optimierung , Auto-Sklearn und Scikit-Hyperband .
Was ist die effizienteste Methode (um schnell einigermaßen leistungsfähige Parameter zu finden) für die Optimierung von Hyperparametern beim Scikit-Lernen?
Idealerweise möchte ich Codebeispiele mit Benchmarks bearbeiten.
scikit-learn
hyperparameter
hyperparameter-tuning
grid-search
randomized-algorithms
Brian Spiering
quelle
quelle
Antworten:
Optimierung ist nicht mein Fachgebiet, aber soweit ich weiß, dreht sich die effiziente und effektive Optimierung von Hyperparametern heutzutage stark um die Erstellung eines Ersatzmodells. Mit zunehmender Komplexität der Modelle werden sie zu einer undurchsichtigeren Black Box. Dies gilt auch für tiefe neuronale Netze und vermutlich komplexe Bäume. Ein Ersatzmodell versucht, den zugrunde liegenden Raum innerhalb dieser Black Box zu regressieren. Basierend auf einer Vielzahl von Abtasttechniken untersuchen sie den Hyperparameterraum und versuchen, eine Funktion zu erstellen, die den tatsächlich zugrunde liegenden Hyperparameterraum darstellt.
Die Bayes'sche Optimierung konzentriert sich auf das Ersatzmodell, und wie dieses Modell aufgebaut ist, ist für BO von entscheidender Bedeutung. Ebenfalls entscheidend für BO ist die Wahl einer guten Verlustfunktion.
Ich denke, die Leistung zwischen Zufallssuche und Bayes'scher Suche variiert von Datensatz zu Datensatz und von Modell zu Modell. Bergstra & Bengio (2012) machten ein starkes Argument für die zufällige Suche über die Rastersuche. Shahriari et al. (2016) sprechen stark für BO. Modellbasierte Hyperband-Strategien können möglicherweise eine bessere Leistung als BO erbringen , insbesondere bei hohen Dimensionen. Es handelt sich jedoch nur um Exploration und nicht um Exploitation. Dies kann leicht zu einem zu frühen Anhalten führen. Es wurden jedoch Anstrengungen unternommen, Hyperband und BO zu kombinieren .
Ich hatte gute Erfolge bei der Scikit-Optimierung, obwohl es einiges nicht implementiert hat. Es ist einfach zu prototypisieren und kann leicht mit scikit-learn verbunden werden.
Bergstra, J. & Bengio, Y. (2012). Zufällige Suche nach Hyperparameteroptimierung. Journal of Machine Learning Research, 13 (Februar), 281-305.
B. Shahriari, K. Swersky, Z. Wang, RP Adams & N. De Freitas (2016). Den Menschen aus der Schleife nehmen: Ein Überblick über die Bayes'sche Optimierung. Proceedings of the IEEE, 104 (1), 148-175.
quelle
Sie können sich auto-sklearn ansehen . Dies ist ein automatisiertes Toolkit für maschinelles Lernen, das eine direkte Erweiterung von Scikit-Learn darstellt.
quelle