Es gibt umfangreiche aktuelle Forschungen zur Bayesianischen Optimierung (1) zur Optimierung von ML-Hyperparametern. Die treibende Motivation dabei ist, dass eine minimale Anzahl von Datenpunkten erforderlich ist, um fundierte Entscheidungen darüber zu treffen, welche Punkte es wert sind, ausprobiert zu werden (objektive Funktionsaufrufe sind teuer, weniger zu machen ist also besser), da das Trainieren eines Modells zeitintensiv ist - zum Teil bescheiden -große SVM-Probleme, an denen ich gearbeitet habe, können zwischen Minuten und Stunden dauern.
Auf der anderen Seite handelt es sich bei Optunity um eine Partikelschwarm-Implementierung, die sich derselben Aufgabe widmet . Ich kenne PSO nicht überwiegend, aber es scheint weniger effizient zu sein, da eine größere Anzahl von Testpunkten und daher objektive Funktionsbewertungen erforderlich sind, um die Hyperparameteroberfläche zu bewerten.
Fehlt mir ein wichtiges Detail, das PSO im Kontext des maschinellen Lernens gegenüber BO bevorzugt? Oder ist die Wahl zwischen beiden immer inhärent kontextbezogen für die Hyperparameter-Tuning-Aufgabe?
(1) Shahriari et al.
quelle
Antworten:
Als Hauptentwickler von Optunity füge ich meine zwei Cent hinzu.
Wir haben umfangreiche Benchmarks durchgeführt, um Optunity mit den beliebtesten Bayes'schen Lösern (z. B. Hyperopt, SMAC, Bayesopt) für reale Probleme zu vergleichen, und die Ergebnisse zeigen, dass PSO in vielen praktischen Fällen tatsächlich nicht weniger effizient ist. In unserem Benchmark, der aus der Optimierung von SVM-Klassifikatoren für verschiedene Datensätze besteht, ist Optunity tatsächlich effizienter als Hyperopt und SMAC, jedoch etwas weniger effizient als BayesOpt. Ich würde die Ergebnisse gerne hier veröffentlichen, aber ich werde warten, bis Optunity endlich in JMLR veröffentlicht wird (wird seit über einem Jahr überprüft, also halten Sie nicht den Atem an ...).
Wie Sie bereits angedeutet haben, ist Effizienzsteigerung ein häufig verwendetes Verkaufsargument für die Bayes'sche Optimierung, in der Praxis jedoch nur dann, wenn die Annahmen der zugrunde liegenden Ersatzmodelle zutreffen, was alles andere als trivial ist. In unseren Experimenten ist der sehr einfache PSO-Löser von Optunity in Bezug auf die Anzahl der Funktionsbewertungen häufig mit komplexen Bayes'schen Ansätzen konkurrierend. Bayesianische Löser funktionieren sehr gut, wenn sie mit guten Prioritäten versehen sind, aber mit einem nicht informativen Prior gibt es praktisch keinen strukturellen Vorteil gegenüber metaheuristischen Methoden wie PSO in Bezug auf die Effizienz.
Ein großes Verkaufsargument für PSO ist die Tatsache, dass es peinlich parallel ist. Die Bayes'sche Optimierung ist aufgrund ihrer inhärenten Abfolge oft schwer zu parallelisieren (die Implementierung von Hyperopt ist die einzige echte Ausnahme). Angesichts der zur Norm gewordenen Vertriebsmöglichkeiten übernimmt Optunity schnell die Führung in der Wanduhrzeit, um gute Lösungen zu erhalten.
Ein weiterer wesentlicher Unterschied zwischen Optunity und den meisten anderen dedizierten Hyperparameter-Optimierungsbibliotheken besteht in der Zielgruppe: Optunity verfügt über die einfachste Benutzeroberfläche und richtet sich an Experten, die nicht über maschinelles Lernen verfügen an Spezialisten gerichtet).
Der Grund, warum wir die Bibliothek erstellt haben, ist, dass es trotz der Tatsache, dass dedizierte Methoden zur Optimierung von Hyperparametern existieren, diese in der Praxis nicht angewendet werden. Die meisten Leute stimmen sich immer noch entweder gar nicht manuell oder über naive Ansätze wie Raster oder Zufallssuche ab. Ein Hauptgrund dafür ist unserer Meinung nach die Tatsache, dass vorhandene Bibliotheken vor der Entwicklung von Optunity in Bezug auf Installation, Dokumentation und API zu schwierig zu verwenden waren und häufig auf eine einzige Umgebung beschränkt waren.
quelle
Die Antwort ist problemabhängig und kann nicht ohne zusätzlichen Kontext gegeben werden. Typischerweise würde die Antwort wie folgt lauten. Die Bayes'sche Optimierung eignet sich eher für niedrigdimensionale Probleme mit einem Rechenbudget von bis zu 10x-100x der Anzahl der Variablen. PSO kann für viel größere Budgets recht effizient sein, ist jedoch nicht auf dem neuesten Stand der Technik in seiner Nische.
quelle