Wichtige Erkenntnisse
Dieser Artikel zeigt, wie die Bayes'sche Optimierung der effektivste Weg zum Erforschen von Hyperparametern ist, um die Modellleistung zu verbessern. Die Hyperparameter-Optimierung bei Deep Learning kann auf verschiedene Arten erfolgen – manuelle Suche, Rastersuche, Zufallssuche und Bayes'sche Optimierung.
Achtung! Dieser Artikel richtet sich an:
- Personen, die über grundlegende Kenntnisse der Funktionsweise von Deep-Learning-Algorithmen sowie Techniken wie Regularisierung verfügen
- Personen, die über grundlegende Kenntnisse in Python und TensorFlow verfügen
Das Ziel dieses Beitrags ist es nicht, Ihnen ein tiefgreifendes Verständnis der Bayes'schen Optimierung zu vermitteln, sondern vielmehr Ihnen ein grundlegendes Verständnis der Bayes'schen Optimierung zu vermitteln, damit Sie diese nahtlos auf die Hyperparameter-Optimierung in Deep-Learning Modellen anwenden können. Dementsprechend haben wir versucht, bei der Erläuterung der allgemeinen Prinzipien der Bayes'schen Optimierung Verweise auf Mathematik außerhalb des Deep Learning so weit wie möglich zu vermeiden. Allerdings ist zu beachten, dass zur Untermauerung der Erläuterungen teilweise mathematische Formeln verwendet werden.
Einführung
Hyperparameter-Optimierung bezieht sich auf das Problem, den optimalen Wert eines Hyperparameters zu ermitteln, einen Wert, der im Voraus festgelegt werden muss, um das Lernen durchzuführen. In diesem Zusammenhang bezeichnet der optimale Wert eines Hyperparameters den Wert, der zu der bestmöglichen generalisierten Leistung des trainierten Lernmodells führt.
Beispielsweise sind beim Trainieren eines Deep Learning-Modells die Lernrate, die Minibatch-Größe, der L2-Regularisierungskoeffizient usw. typische Hyperparameter. Diese Hyperparameter stehen natürlich in engem Zusammenhang mit dem Lernalgorithmus oder der Regularisierung. In einigen Fällen können auch Faktoren, welche die Struktur eines Deep Learning-Modells bestimmen (z. B. die Anzahl der Schichten oder die Größe des Faltungsfilters usw.), als Hyperparameter betrachtet und als Explorationsobjekte hinzugefügt werden.
Manuelle Suche
Wenn Sie mindestens einmal ein Deep Learning-Modell trainiert haben, waren Sie zweifellos mit vielen Versuchen und Irrtümern bei der Bestimmung der Werte dieser wichtigen Hyperparameter konfrontiert. Wenn wir beispielsweise die Implementierung des AlexNet-Modells abschließen, beginnen wir in der Regel damit, die in der ursprünglichen AlexNet-Veröffentlichung vorgestellten Hyperparameter zu übernehmen und sie auf das Lernen anzuwenden. In den meisten Fällen unterscheiden sich der im ursprünglichen AlexNet-Artikel verwendete Datensatz und der von Ihnen gewünschte Datensatz jedoch voneinander, sodass die im ursprünglichen Artikel vorgestellten Hyperparameterwerte selten die perfekte Lösung für das Problem darstellen.
In dieser Situation verlassen Sie sich in der Regel auf Ihre Intuition oder bewährtes Know-how, um Kandidaten für Hyperparameterwerte auszuwählen, die Sie als Nächstes versuchen möchten, führen damit das Lernen durch und zeichnen die anhand des Validierungssatzes gemessenen Leistungsergebnisse auf. Nachdem Sie diesen Vorgang einige Male wiederholt haben, haben Sie wahrscheinlich die Hyperparameterwerte ausgewählt, die unter allen bisherigen Versuchen die besten Ergebnisse im Validierungssatz erzielt haben, um das Deep Learning-Modell für die endgültige Einreichung zu trainieren. Diese Methode zur Ermittlung optimaler Hyperparameterwerte wird als manuelle Suche bezeichnet.
Die manuelle Suche ist zwar die intuitivste Methode zur Optimierung von Hyperparametern, hat jedoch einige Nachteile. Der erste ist, dass die Suche nach dem „optimalen” Hyperparameter in gewisser Weise vom Zufall abhängt. Zur Veranschaulichung beschreiben wir den Prozess zur Durchführung einer manuellen Suche, um die optimale Lernrate für ein Deep Learning-Modell zu finden. Es ist sehr wahrscheinlich, dass dieser Prozess zeitlich begrenzt ist, was Sie wahrscheinlich sehr ungeduldig macht, sodass Sie denken:
Ich muss dieses Deep Learning-Modell schnell zum Laufen bringen, denn mein Professor oder Chef drängt mich ständig, und ich habe keine Zeit ... Ich stecke in Schwierigkeiten:’(
Nehmen wir an, Sie haben nur begrenzt Zeit, um ein Deep Learning-Modell zu trainieren und dessen Leistung zu messen, indem Sie nacheinander 9 verschiedene Lernratenwerte anwenden: 0,01, 0,05, 0,03, 0,02, 0,025, 0,0225, 0,0275, 0,015, 0,04, wobei das Ergebnis das beste Ergebnis in der obigen Abbildung ist, sodass Sie 0,0025
als endgültigen Lernratenwert wählen. Dieser Explorationsprozess war wahrscheinlich eine sorgfältige Anwendung Ihrer eigenen Intuition bei jeder Lernsitzung, wobei kaum jemand bestreiten kann, dass die Ergebnisse eines solch mühsamen Prozesses die bestmöglichen Ergebnisse sind.
Was wäre jedoch, wenn „die (unbekannte) generalisierte Leistungsfunktion als Funktion der Lernrate” tatsächlich so aussehen würde wie das zweite Bild oben? Obwohl 0,0025 nicht wirklich der optimale Wert für die Lernrate war (Werte zwischen 0,003 und 0,0035 sind optimal), liegt die Vermutung nahe, dass Ihre Ungeduld und Voreingenommenheit im bestehenden manuellen Explorationsprozess zu enttäuschenden Ergebnissen geführt haben. Wir haben vielleicht unbeabsichtigt auf einen Fehler hingewiesen, den Sie in der Vergangenheit gemacht haben, der jedoch nicht allein Ihre Schuld ist. Der Nachteil einer manuellen Suche, die auf Subjektivität und Intuition basiert, besteht darin, dass es relativ schwierig ist, sicherzustellen, dass die gefundenen optimalen Hyperparameterwerte auch „tatsächlich“ optimal sind, wie im obigen Beispiel gezeigt.
Das zweite Problem bei der manuellen Suche besteht darin, dass sie sich komplizierter gestaltet, wenn Sie mehrere Arten von Hyperparametern gleichzeitig untersuchen möchten. Das beste Beispiel hierfür ist die Beziehung zwischen der Lernrate und dem L2-Regularisierungskoeffizienten.
L(W)=1N∑i=1NLi(f(xi,W),yi)+λ⋅R(W)
Der zweite Term in der obigen Verlustfunktion ist der L2-Regularisierungsterm, wobei sich bei einer Änderung des Werts von λ, dem L2-Regularisierungskoeffizienten, (im gesamten Parameterraum W des Deep Learning-Modells) auch die Form der Verlustfunktionen L(W) ändert. Daher können wir davon ausgehen, dass sich auch der Wert der optimalen Lernrate für eine optimale Leistung entsprechend ändert.
Da sich einige dieser Hyperparameter gegenseitig beeinflussen, ist es sehr schwierig, bei der Untersuchung von mehr als einem Hyperparameter gleichzeitig die vorhandene Intuition auf jeden einzelnen Hyperparameter anzuwenden.
Rastersuche vs. Zufallssuche
Im Vergleich zur manuellen Suche sind die Rastersuche und die Zufallssuche relativ systematische Methoden zur Durchführung der Hyperparameter-Optimierung.
Rastersuche wählt in regelmäßigen Abständen innerhalb eines bestimmten Bereichs Kandidatenwerte für Hyperparameter aus, zeichnet die für jeden dieser Werte gemessene Leistung auf und wählt dann den Hyperparameterwert aus, der die beste Leistung gezeigt hat. Zwar ist auch bei dieser Methode menschliches Eingreifen erforderlich, um zu entscheiden, wie viele Intervalle durchsucht werden sollen, wie lang diese sein sollen usw., jedoch hat sie den Vorteil einer einheitlicheren und umfassenderen Suche im Vergleich zur manuellen Suche. Der Nachteil dieser Methode ist jedoch, dass die Gesamterkundungszeit exponentiell zunimmt, wenn die Anzahl der Hyperparameter des Erkundungsziels zunimmt.
Andererseits ähnelt die Zufallssuche weitgehend der Rastersuche, unterscheidet sich jedoch dadurch, dass sie Zufallsstichproben verwendet, um Kandidatenwerte für Hyperparameter innerhalb des untersuchten Intervalls auszuwählen. Die Zufallssuche findet bekanntermaßen schneller optimale Hyperparameterwerte als die Rastersuche, da sie die Anzahl unnötiger Wiederholungen erheblich reduziert und dennoch in der Lage ist, Werte, die zwischen den festgelegten Rastern liegen, probabilistisch zu untersuchen.
(Ergebnis der 10-maligen Ausführung der Python-Funktion random.random in Intervallen von
[0,01,0,05 | ; random.seed=0)
Dennoch wird man das Gefühl nicht los, dass selbst eine Zufallssuche „immer noch wie eine unnötige Erkundung wirkt.“ Der Grund dafür ist, dass sowohl bei der Rastersuche als auch bei der Zufallssuche der Auswahlprozess für die Kandidatenwerte für die Hyperparameter, die als Nächstes versucht werden sollen, keine Vorkenntnisse über die Leistung der Hyperparameterwerte aus früheren Untersuchungen widerspiegelt. Bei der manuellen Suche hingegen werden Vorkenntnisse implizit bei jedem Schritt angewendet.
[Bergstra und Bengio (2012)]
Die Bayes'sche Optimierung ist eine Methodik, mit der Sie den gesamten Erkundungsprozess systematisch durchführen und gleichzeitig ausreichend Vorkenntnisse einfließen lassen können, um jedes Mal neue Hyperparameterwerte effektiv zu untersuchen.
Bayes'sche Optimierung
Im Wesentlichen zielt die Bayes'sche Optimierung darauf ab, die optimale Lösung
x für eine unbekannte Zielfunktion f zu finden, welche die Funktion
f(x) für einen bestimmten Eingabewert x∗ maximiert. Wir gehen in der Regel davon aus, dass wir die Ausdrucksform der Zielfunktion nicht explizit kennen (d. h. Black-Box-Funktion) und dass die Berechnung eines Funktionswerts f(x) viel Zeit in Anspruch nimmt. In dieser Situation besteht das Hauptziel darin, schnell und effizient die optimale Lösung zu finden, die f(x), x∗ maximiert, indem die Funktionswerte für möglichst wenige Kandidaten-Eingabewerte nacheinander überprüft werden.
Die Bayes'sche Optimierung umfasst zwei wesentliche Elemente. Zunächst erstellt ein Surrogatmodell eine probabilistische Schätzung der Form einer unbekannten Zielfunktion auf der Grundlage der bisher untersuchten Eingabewerte und Funktionswertpunkte (x1,f(x1)),...,(xt,f(xt)). Anschließend empfiehlt die Akquisitionsfunktion die nächsten „für die Ermittlung der optimalen Eingabe x∗ wahrscheinlich nützlichsten“ Eingabekandidaten xt+1 auf der Grundlage der aktuellen probabilistischen Schätzung der Zielfunktion.
Surrogatmodell
Das Modell, das eine probabilistische Schätzung der ungefähren Form der unbekannten Zielfunktion auf der Grundlage der bisher untersuchten Eingabewerte und Funktionswertpunkte (x1,f(x1)),...,(xt,f(xt)) vornimmt, wird als Surrogatmodell bezeichnet. Das beliebteste probabilistische Modell, das als Surrogatmodell verwendet wird, ist der Gaußsche Prozess (GP).
Gaußsche Prozesse
Im Gegensatz zu gewöhnlichen Wahrscheinlichkeitsmodellen (die Wahrscheinlichkeitsverteilungen über eine gegebene Variable ausdrücken), stellen GPs Wahrscheinlichkeitsverteilungen über eine Sammlung von Funktionen dar und zeichnen sich dadurch aus, dass die gemeinsame Verteilung ihrer Komponenten einer Gaußschen Verteilung folgt. GP verwendet eine Mittelwertfunktion μ und eine Kovarianzfunktion k, um die Wahrscheinlichkeitsverteilung über Funktionen auszudrücken.
f(x)∼GP(μ(x),k(x,x′)).
Um GP richtig zu verstehen und anzuwenden, sollten Sie über grundlegende Kenntnisse der Bayes'schen Wahrscheinlichkeit verfügen und in der Lage sein, komplexe stochastische/lineare algebraische Formeln zu verstehen. Dieser Beitrag geht nicht weiter ins Detail, sondern konzentriert sich auf die operativen Eigenschaften von GPs und deren Einsatzmöglichkeiten für die Hyperparameter-Optimierung.
Anhand der bisher untersuchten Eingabewert-Funktionswertpunkte (x1,f(x1)),...,(xt,f(xt)) nimmt GP eine probabilistische Schätzung der Zielfunktion vor, wie in der folgenden Abbildung dargestellt.
(schwarze gestrichelte Linie: tatsächliche Zielfunktion, schwarze durchgezogene Linie: geschätzte Mittelwertfunktion, blaue Schattierung: geschätzte Standardabweichung, schwarze Punkte: bisher untersuchte Eingabewert- und Funktionswertpunkte, grüne durchgezogene Linie unten: Akquisitionsfunktion) [Brochu et al. (2010)]
Wenn wir in der obigen Abbildung die horizontale Achse als Eingabewert
x und die vertikale Achse als Funktionswert f(x) betrachten, dann wird die schwarze durchgezogene Linie auf der Grundlage der bisher untersuchten Punkte (x1,f(x1)),...,(xt,f(xt)) geschätzt, um den „Mittelwert” x an jeder Position μμ(x) darzustellen, und die blau schattierte Linie entspricht der „Standardabweichung” an jeder Position σσ(x). Für μ μ(x), dadurch bestimmt, dass sie notwendigerweise durch die bisher untersuchten Punkte (x1,f(x1)),...,(xt,f(xt)) verläuft, wobei σ(x) für Positionen näher an den untersuchten Punkten kleiner und σ σ(x) für Positionen weiter entfernt größer ist. Daraus folgt natürlich, dass die „Unsicherheit“ des für diesen Punkt geschätzten Durchschnittswerts umso größer ist, je weiter x vom untersuchten Punkt entfernt ist.
In der obigen Abbildung können wir bei t=2 , da nur zwei Eingabewerte untersucht werden, beobachten, dass σ(x) in den meisten Bereichen, die mindestens einen bestimmten Abstand von diesen beiden Punkten haben, groß ist. Währenddessen nimmt die Anzahl der untersuchten Punkte allmählich auf t=3 t=4, zu, die Größe der Bereiche mit großem σ σ(x) nimmt allmählich ab, und die Schätzung der tatsächlichen Zielfunktion wird allmählich komprimiert. Dies zeigt, dass mit zunehmender Anzahl der untersuchten Punkte die Unsicherheit hinsichtlich der Schätzung der Zielfunktion abnimmt, und wir können davon ausgehen, dass mit zunehmender Stärke dieses Trends die Wahrscheinlichkeit, den Eingabewert X∗ zu finden, der den Zähler der Zielfunktion maximiert, weiter zunimmt.
Surrogatmodelle außer GP
Zusätzlich zu GP kann jedes Modell als Surrogatmodell verwendet werden, das die Unsicherheit bei der Schätzung der Zielfunktion auf der Grundlage der bisher untersuchten Eingabewerte und Funktionswertpunkte abdeckt. Neben GP werden häufig auch baumstrukturierte Parzen-Schätzer (Tree-structured Parzen Estimators, TPE) und tiefe neuronale Netzwerke als Surrogatmodelle verwendet.
Wie bei GP gilt auch hier: Selbst wenn Sie kein tiefgreifendes Verständnis dieser Surrogatmodelle haben, können Sie dennoch eine Bayes'sche Optimierung mithilfe entsprechender Bibliotheken durchführen, sofern Sie den größeren Zusammenhang der Bayes'schen Optimierung verstehen.
Akquisitionsfunktion
Basierend auf den bisherigen probabilistischen Schätzungen der Zielfunktion durch das Surrogatmodell wird die Funktion, welche die nächsten zu untersuchenden Kandidaten-Eingabewerte xt+1
empfiehlt, als Akquisitionsfunktion bezeichnet. Es wurde erwähnt, dass die Auswahl von xt+1 letztendlich „am nützlichsten” ist, um den optimalen Eingabewert x∗ für die Zielfunktion zu finden. Lassen Sie uns darüber nachdenken, was wir in diesem Zusammenhang unter „nützlich“ verstehen. Zur Veranschaulichung haben wir die Abbildung herangezogen, welche die Situation bei t=2 während des Schätzungsprozesses der Zielfunktion unter Verwendung von GP zeigt.
In Anbetracht dessen, dass bisher nur Punkte (x,f(x)) untersucht wurden, ist es plausibel zu prognostizieren, dass der wahre optimale Eingabewert x∗ eher in der Nähe des Punktes mit dem größeren Funktionswert (der Punkt rechts in der Abbildung) zu finden ist. Natürlich wäre es eine sinnvolle Strategie, als Nächstes den Bereich um den Punkt mit dem größten Funktionswert unter den bisher untersuchten Punkten zu testen. Dies wird offiziell als „Exploitation“ bezeichnet.
Lassen Sie es uns aus einer anderen Perspektive betrachten. Intuitiv kann man sich vorstellen, dass es für den Bereich, der zwischen den beiden bisher untersuchten Punkten liegt und eine große Standardabweichung (= Unsicherheit) Σ Σ(X) aufweist, sehr schwierig sein wird, zu garantieren, dass der geschätzte Funktionsmittelwert in diesem Teil dem tatsächlichen Zielfunktionswert ähnelt. Aus dieser Perspektive ist es plausibel anzunehmen, dass der optimale Eingabewert X∗ in diesem unsicheren Bereich existiert und wir ihn weiter untersuchen sollten. Daher ist es eine vernünftige Strategie, als Nächstes den Punkt mit der größten Standardabweichung über die bisher geschätzte Zielfunktion zu versuchen. Dies wird offiziell als „Exploration“ bezeichnet.
Obwohl Explorations- und Exploitationsstrategien gleichermaßen wichtige Ansätze sind, um den optimalen Eingabewert x∗ effektiv zu finden, besteht das Problem darin, dass die beiden Strategien naturgemäß einen Kompromiss darstellen. Daher ist die richtige Einstellung der relativen Intensität des Kompromisses zwischen Exploration und Exploitation entscheidend für die erfolgreiche Ermittlung der optimalen Eingabe für die tatsächliche Zielfunktion.
Erwartete Verbesserung (EI)
Die Funktion Erwartete Verbesserung (EI) wurde entwickelt, um bestimmte Aspekte sowohl von Explorations- als auch von Exploitationsstrategien zu berücksichtigen, und wird meist als Akquisitionsfunktion verwendet. Basierend auf der bisher geschätzten Zielfunktion gibt die EI für jede mögliche Kandidateneingabe x unter Berücksichtigung der Wahrscheinlichkeit einer Verbesserung (PI) der Erzeugung eines Funktionswerts f(x1),...,f(xt) größer als die maximale Ausgabe f(x+)=maxif(xi) der bisher untersuchten Punkte und der Größe der Differenz zwischen diesem Funktionswert und F(X+) eine Zahl aus, welche die „Nützlichkeit” dieses Eingabewerts x darstellt. Sehen wir uns zur Veranschaulichung des PI-Konzepts die folgende Abbildung an.
In der obigen Abbildung trat der größte Funktionswert f(x+) der bisher untersuchten Punkte am Punkt ganz rechts auf. Hier kann für den Kandidateneingabewert x3, der weiter rechts liegt, die Wahrscheinlichkeitsverteilung von
f(x3) (entlang der vertikalen Achse) basierend auf der probabilistischen Schätzung als schiefe Gaußsche Verteilung dargestellt werden, wie in der Abbildung gezeigt.
Währenddessen ist der Bereich der Wahrscheinlichkeitsverteilung von f(x3), der Werten größer als f(x+) entspricht, in der Abbildung grün schattiert. Die größere Fläche dieses Bereichs deutet darauf hin, dass f(x3) mit größerer Wahrscheinlichkeit größer ist als f(x+), was zu der Schlussfolgerung führt, dass die Verwendung von x3 als nächster Eingabewert mit größerer Wahrscheinlichkeit einen größeren Funktionswert als die vorhandenen Punkte ergibt und dass x3 der „nützlichste” Kandidat für die Ermittlung des optimalen Eingabewerts x∗ für die Zielfunktion ist.
Der für den Eingabewert x3 berechnete PI-Wert wird dann für die Funktion f(x3) mit der Differenz zwischen dem Mittelwert μ μ(x3) und f
(x+),f(x3)−f(x+) gewichtet, um schließlich den EI-Wert für x3 zu berechnen. Es ist wichtig, einen Punkt zu finden, der eine höhere Wahrscheinlichkeit hat, einen größeren Funktionswert zu erzielen als die vorhandenen Punkte. Wenn diese Wahrscheinlichkeit besteht, ist es jedoch auch wichtig zu berücksichtigen, um wie viel größer dieser Wert tatsächlich ist. Diese Berechnung soll dies widerspiegeln.
Zur Veranschaulichung lässt sich die Formel für EI bei Verwendung von GP (nach einem langen Ableitungsprozess) wie folgt zusammenfassen und ausdrücken. In der folgenden Formel bezeichnen
Φ und ϕϕ die kumulative Verteilungsfunktion (CDF) bzw. die Wahrscheinlichkeitsverteilungsfunktion (PDF) der Standardnormalverteilung, und ξ ist ein Parameter, der die relative Stärke zwischen Exploration und Exploitation steuert. Je größer ξi s, desto stärker ist die Exploration, und je kleiner es ist, desto stärker ist die Exploitation.
Für die Situation bei t=4 im oben genannten GP-Zielfunktionsschätzungsprozess wird das Ergebnis der Berechnung des EI-Werts für jeden Eingabewert EI für jeden Eingabewert x, EI(
x) unter Verwendung der oben genannten EI-Formel als grüne durchgezogene Linie am unteren Rand der folgenden Abbildung dargestellt.
Tatsächlich können wir in der Abbildung gleichzeitig beobachten, dass der EI-Wert um den Punkt x+ herum groß ist (Ausbeutungsstrategie), der unter den bisher untersuchten Punkten den größten Funktionswert aufweist, und dass der EI-Wert auch um den Punkt herum groß ist, der die größte Standardabweichung σσ(x) der bisher geschätzten Zielfunktion aufweist (Explorationsstrategie).
EI(x)=E[max(f(x)−f(x+),0)]={(μ(x)−f(x+)−ξ)Φ(Z)+σ(x)ϕ(Z) ifσ(x)>00ifσ(x)=0
Akquisitionsfunktionen außer EI
Die Wahrscheinlichkeit der Verbesserung (Probability of Improvement, PI) ist eine Akquisitionsfunktion, die vor EI vorgeschlagen wurde und nur die Wahrscheinlichkeit widerspiegelt, einen Funktionswert zu erhalten, der größer ist als der maximale Funktionswert der bisher untersuchten Punkte unter Berücksichtigung von EI. Andere häufig verwendete Akquisitionsfunktionen sind Upper Confidence Bound (UCB) und Entropy Search (ES).
Durchführung einer Bayes'schen Optimierung zur Untersuchung von Hyperparametern in Deep Learning-Modellen
Bisher haben wir die wesentlichen Elemente der Bayes'schen Optimierung und ihre grundlegende Funktionsweise behandelt. Betrachten wir nun ein konkretes Szenario, in dem die Bayes'sche Optimierung bei der Untersuchung der Hyperparameter eines Deep Learning-Modells zum Einsatz kommt. Der Einfachheit halber wird hier nur die Lernrate als zu untersuchender Hyperparameter behandelt.
(Ergebnisse der ersten 3 (n=3) Runden im Intervall [0,01,0,09] für insgesamt 11 (N=11) Punkte,
oben: Ergebnisse der stochastischen Schätzung der Zielfunktion f(x) durch GP, unten: Ergebnisse der Berechnung der EI-Funktion für die stochastische Schätzung;
unter Verwendung der Bibliothek für Bayes'sche Optimierung, random_seed=1)
- Definiert den Eingabewert, die Zielfunktion und andere Einstellungen.
- Eingabewert x: Lernwert der Zielfunktion f(x)
- Leistungsergebnisse (z. B. Genauigkeit) in einem Validierungssatz für ein Deep Learning-Modell, das durch Anwenden einer festgelegten Lernrate gelernt wurde
- Untersuchte Zielintervalle für den Eingabewert x: (a,b).
- Anzahl der Eingabewert- und Funktionswertpunkte, die zuerst untersucht werden sollen: n
- Maximale Anzahl der Eingabewert- und Funktionswertpunkte, die bis zur letzten Runde untersucht werden sollen: N
- Innerhalb des festgelegten Explorationszielintervalls (a,b) werden die ursprünglich ausgewählten n
Eingabewerte zufällig erfasst und ausgewählt. - Nachdem das Deep Learning-Modell durch Festlegen der Lernratenwerte für jede der n ausgewählten Eingaben x1,x2,...,xn trainiert wurde, berechnen Sie die Leistungsergebnisse des trainierten Modells anhand des Validierungssatzes. Jeder davon wird betrachtet als Funktionswert f(x1),f(x2),...,f(xn). n Eingabewerte werden zufällig erfasst und ausgewählt.
- Die probabilistische Schätzung wird unter Verwendung des Surrogatmodells auf der Grundlage der Sammlung von Eingabewerten und Funktionswertpunkten (x1,f(x1)),(x2,f(x2)),...,(xn,f(xn)) durchgeführt.
- Bis Sie insgesamt NN inspizierte Eingabewert- und Funktionswertpunkte erreicht haben, wird der folgende Prozess für t=n,n + 1,...,N − 1 wiederholt.
- Basierend auf den probabilistischen Schätzungsergebnissen des Surrogatmodells für die Sammlung (x1,f(x1)),(x2,f(x2)),...,(xt,f(xt)) von bestehenden Eingabewert- und Funktionswertpunkten berechnen Sie den Wert von EI innerhalb des Eingabeintervalls (a,b) und wählen den Punkt mit dem größten Wert als nächsten Eingabewertkandidaten xt+1.
- Nachdem das Deep Learning-Modell mit dem folgenden Eingabewertkandidaten xt +1 als Lernratenwert trainiert wurde, verwenden Sie den Validierungssatz, um das Leistungsergebnis für das gelernte Modell zu berechnen, und betrachten Sie es als den Wert f(xt +1).
- Fügen Sie die neuen Punkte (xt+1, f(xt+1)) zur bestehenden Sammlung von Eingabewerten und Funktionswerten hinzu und führen Sie erneut eine probabilistische Schätzung mit dem Surrogatmodell für die aktualisierte Punktesammlung durch.
Basierend auf den Ergebnissen der Zielfunktion, die probabilistisch über insgesamt N Eingabewerte und Funktionswertpunkte geschätzt wurden, wählen Sie die optimale Lösung aus, welche die Mittelwertfunktion μ μ(x),x∗ maximiert. Wenn Sie später ein Deep Learning-Modell mit diesem x∗ Wert als Lernrate trainieren, erhalten Sie ein Modell mit maximaler Generalisierungsleistung.
Fazit
Die Hyperparameter-Optimierung im Deep Learning bezieht sich auf das Problem, den optimalen Wert eines Hyperparameters zu ermitteln, einen Wert, der im Voraus festgelegt werden muss, um das Lernen in einem Deep Learning-Modell durchzuführen. Typische Hyperparameter zum Trainieren von Deep Learning-Modellen sind unter anderem die Lernrate, die Minibatch-Größe und der L2-Regularisierungskoeffizient.
Die einfachste und intuitivste Methode zur Hyperparameter-Optimierung ist die häufig verwendete manuelle Suche, bei der subjektiv Kandidaten für Hyperparameterwerte ausgewählt werden, die in jeder Runde getestet werden sollen, mit denen gelernt wird und die Leistungsergebnisse gemessen an einem Validierungssatz aufgezeichnet werden. Diese Methode hat den Nachteil, dass die Suche nach den optimalen Hyperparameterwerten relativ schwierig ist, da der Experimentator bei der Suche nach den optimalen Hyperparametern implizit voreingenommen ist. Rastersuche und Zufallssuche können die Nachteile der manuellen Suche zwar ausgleichen, sind jedoch insofern eingeschränkt, als dass sie keine während der Untersuchung der Hyperparameter gewonnenen Vorkenntnisse widerspiegeln.
Die Bayes'sche Optimierung ist eine Methode zur Hyperparameter-Optimierung, die den gesamten Explorationprozess systematischer gestalten kann und gleichzeitig bei der Untersuchung neuer Hyperparameterwerte jedes Mal ausreichend Vorkenntnisse berücksichtigt. Ein Surrogatmodell, eine der beiden Komponenten der Bayes'schen Optimierung, erstellt eine probabilistische Schätzung einer unbekannten Zielfunktion auf der Grundlage der bisher untersuchten Eingabewerte und Funktionswertpunkte. Ein typisches Beispiel hierfür ist der Gaussian-Prozess (GP). Unterdessen empfiehlt die Akquisitionsfunktion den nächsten Kandidaten-Eingabewert, der auf Grundlage der aktuellen probabilistischen Schätzung der Zielfunktion am ehesten zur Ermittlung des optimalen Eingabewerts beitragen dürfte. Ein typisches Beispiel hierfür ist die erwartete Verbesserung (Expected Improvement, EI).
Verwenden Sie die Bayes'sche Optimierung für die Hyperparameter-Optimierung von Deep-Learning-Modellen, indem Sie Hyperparameter anwenden, um optimale Werte als Eingabewerte für die Bayes'sche Optimierung zu ermitteln, und die Leistungsergebnisse aus dem Validierungssatz eines Deep Learning-Modells verwenden, das durch Anwendung spezifischer Hyperparameterwerte als Funktionswert der Zielfunktion gelernt wurde.
*Im nächsten Teil bauen wir auf den bisher gewonnenen Erkenntnissen auf und gehen den Explorationsprozess der optimalen Lösung einer einfachen Beispielfunktion mithilfe der Bayes'schen Optimierung, einer Python-Bibliothek für die Bayes'sche Optimierung in der Praxis, durch und untersuchen anschließend die optimalen Hyperparameter eines Deep Learning-Modells aus der Praxis.
Referenzen
- Shahriari, Bobak, et al. „Taking the human out of the loop: Eine Übersicht über die Bayes'sche Optimierung.“ Proceedings of the IEEE 104.1 (2016): 148-175.
- Brochu, Eric, Vlad M. Cora und Nando De Freitas. „Ein Tutorial zur Bayes'schen Optimierung teurer Kostenfunktionen mit Anwendung auf aktive Benutzermodellierung und hierarchisches Reinforcement Learning.“ arXiv preprint arXiv:1012.2599 (2010).
- Bengio, Yoshua. „Praktische Empfehlungen für das gradientbasierte Training tiefer Architekturen.“ Neuronale Netzwerke: Tricks des Fachs. Springer, Berlin, Heidelberg, 2012. 437-478.
- Goodfellow, Ian, et al. Deep Learning. Bd. 1. Cambridge: MIT press, 2016.
- Bergstra, James und Yoshua Bengio. „Zufallssuche zur Hyperparameter-Optimierung.“ Journal of Machine Learning Research 13. Feb (2012): 281-305.
- Fernando Nogueira, Bayes'sche Optimierung: Eine Python-Implementierung der globalen Optimierung mit Gauß-Prozessen.
- Hunting Optima, Erwartete Verbesserung für die Bayes'sche Optimierung: Eine Ableitung.