Ein wissenschaftlicher Ansatz zur Verbesserung der Modellleistung

In diesem Dokument:

Das letztendliche Ziel der Entwicklung von maschinellem Lernen besteht darin, den Nutzen des bereitgestellten Modells zu maximieren.

Normalerweise können Sie in diesem Abschnitt dieselben grundlegenden Schritte und Prinzipien bei jedem ML-Problem anwenden.

In diesem Abschnitt wird von folgenden Annahmen ausgegangen:

  • Sie haben bereits eine vollständig laufende Trainingspipeline sowie eine Konfiguration, die ein angemessenes Ergebnis erhält.
  • Sie haben genügend Rechenressourcen, um aussagekräftige Abstimmungstests durchzuführen und mindestens mehrere Trainingsjobs gleichzeitig auszuführen.

Strategie für die inkrementelle Feinabstimmung

Empfehlung: Beginnen Sie mit einer einfachen Konfiguration. Nehmen Sie dann schrittweise Verbesserungen vor, während Sie gleichzeitig mehr über das Problem erfahren. Achten Sie darauf, dass alle Verbesserungen auf stichhaltigen Beweisen basieren.

Wir gehen davon aus, dass es Ihr Ziel ist, eine Konfiguration zu finden, mit der die Leistung Ihres Modells maximiert wird. Manchmal besteht Ihr Ziel darin, die Modellverbesserung bis zu einem festen Termin zu maximieren. In anderen Fällen können Sie das Modell unbegrenzt weiter verbessern, z. B. kontinuierlich in der Produktion arbeiten.

Grundsätzlich kann die Leistung maximiert werden, wenn Sie mit einem Algorithmus den gesamten Bereich möglicher Konfigurationen durchsuchen. Dies ist jedoch nicht praktikabel. Der Bereich möglicher Konfigurationen ist sehr groß und es sind noch keine Algorithmen vorhanden, die für eine effiziente Suche in diesem Bereich ohne menschliche Führung geeignet sind. Die meisten automatisierten Suchalgorithmen basieren auf einem handgefertigten Suchbereich, in dem die Konfigurationen für die Suche definiert werden. Diese Suchbereiche können etwas bedeuten.

Der effektivste Weg zur Leistungsmaximierung besteht darin, mit einer einfachen Konfiguration zu beginnen und Features schrittweise hinzuzufügen sowie Verbesserungen vorzunehmen und gleichzeitig Informationen zum Problem zu gewinnen.

Wir empfehlen, bei jeder Feinabstimmung die automatisierten Suchalgorithmen zu verwenden und Suchbereiche kontinuierlich zu aktualisieren, wenn Ihr Verständnis wächst. Bei der Recherche werden Sie immer bessere und bessere Konfigurationen finden, weshalb sich Ihr „bestes“ Modell kontinuierlich verbessert.

Der Begriff „Start“ bezieht sich auf eine Aktualisierung unserer besten Konfiguration, die einem tatsächlichen Start eines Produktionsmodells entsprechen kann. Sorgen Sie bei jedem „Start“ dafür, dass die Änderung auf starken Belegen basiert – nicht nur auf einer zufälligen Konfiguration, die auf einer Glückskonfiguration basiert – so sorgen Sie dafür, dass die Trainingspipeline nicht unnötig komplex ist.

Grundsätzlich umfasst unsere Strategie für die inkrementelle Feinabstimmung die folgenden vier Schritte:

  1. Wählen Sie ein Ziel für den nächsten Test aus. Achten Sie darauf, dass das Ziel angemessen festgelegt ist.
  2. Entwickeln Sie die nächste Testrunde. Entwerfen und führen Sie Tests durch, die auf dieses Ziel ausgerichtet sind.
  3. Aus den Testergebnissen lernen Vergleichen Sie den Test anhand einer Checkliste.
  4. Bestimmen Sie, ob die Änderung übernommen werden soll.

Im weiteren Verlauf dieses Abschnitts wird diese Strategie näher erläutert.

Zielvorhaben für die nächste Testrunde auswählen

Wenn Sie versuchen, mehrere Features hinzuzufügen oder mehrere Fragen gleichzeitig zu beantworten, können Sie die verschiedenen Auswirkungen auf die Ergebnisse möglicherweise nicht voneinander unterscheiden. Beispiele für Zielvorhaben:

  • Versuchen Sie, eine potenzielle Verbesserung der Pipeline zu testen (z. B. ein neuer Regularisator, eine Vorverarbeitungsauswahl usw.).
  • Auswirkungen eines bestimmten Modell-Hyperparameters (z. B. die Aktivierungsfunktion) verstehen
  • Validierungsfehler minimieren.

Langfristigen Fortschritt Vorrang vor Verbesserungen bei kurzfristigen Validierungsfehlern geben

Zusammenfassung: In den meisten Fällen besteht Ihr Hauptziel darin, Informationen über das Feinabstimmungsproblem zu erhalten.

Wir empfehlen, den größten Teil Ihrer Zeit damit zu verbringen, einen Einblick in das Problem zu erhalten, und relativ wenig Zeit, um sich auf die Maximierung der Leistung des Validierungs-Datasets zu konzentrieren. Mit anderen Worten: Die meiste Zeit verbringen Sie mit der explorativen Datenanalyse. Das Problem zu kennen, ist entscheidend, um die finale Leistung zu maximieren. Durch das Priorisieren von Erkenntnissen gegenüber kurzfristigen Gewinnen können Sie:

  • Vermeiden Sie die Einführung unnötiger Änderungen, die bei gut funktionierenden Ausführungen allein aufgrund eines historischen Unfalls aufgetreten sind.
  • Ermitteln Sie, auf welche Hyperparameter der Validierungsfehler am sensibelsten ist, welche Hyperparameter am häufigsten miteinander interagieren und daher neu abgestimmt werden müssen und welche Hyperparameter relativ unempfindlich auf andere Änderungen reagieren und daher in zukünftigen Tests behoben werden können.
  • Schlagen Sie mögliche neue Funktionen vor, z. B. neue Regularisatoren, wenn Überanpassung auftritt.
  • Finden Sie heraus, welche Funktionen nicht hilfreich sind und daher entfernt werden können. Dadurch wird der Umfang künftiger Tests reduziert.
  • Erkennen, wenn Verbesserungen durch Hyperparameter-Abstimmung wahrscheinlich gesättigt sind
  • Schränken Sie unsere Suchbereiche um den optimalen Wert ein, um die Feinabstimmung zu verbessern.

Bis dahin werden Sie das Problem verstehen. So können Sie sich dann ausschließlich auf den Validierungsfehler konzentrieren, selbst wenn die Tests die Struktur des Feinabstimmungsproblems nicht wesentlich beschreiben.

Den nächsten Test entwickeln

Zusammenfassung: Ermitteln Sie, welche Hyperparameter wissenschaftliche, störende und feste Hyperparameter für das experimentelle Ziel sind. Eine Sequenz von Studien erstellen, um verschiedene Werte der wissenschaftlichen Hyperparameter zu vergleichen und gleichzeitig die Hyperparameter zu stören. Wählen Sie den Suchbereich von störenden Hyperparametern aus, um Ressourcenkosten mit wissenschaftlichem Wert auszugleichen.

Wissenschaftliche, störende und behobene Hyperparameter identifizieren

Für ein bestimmtes Ziel können alle Hyperparameter einer der folgenden Kategorien zugeordnet werden:

  • wissenschaftliche Hyperparameter sind diejenigen, deren Effekt auf die Leistung des Modells das ist, was Sie messen möchten.
  • Schadstoff-Hyperparameter sind diejenigen, die optimiert werden müssen, um verschiedene Werte der wissenschaftlichen Hyperparameter fair zu vergleichen. Fehlerhafte Hyperparameter sind Rauschparameter in Statistiken.
  • feste Hyperparameter haben während der aktuellen Runde von Tests konstante Werte. Die Werte fester Hyperparameter sollten sich nicht ändern, wenn Sie verschiedene Werte wissenschaftlicher Hyperparameter vergleichen. Wenn Sie bestimmte Hyperparameter für eine Reihe von Tests korrigieren, müssen Sie akzeptieren, dass die aus den Tests abgeleiteten Schlüsse nicht für andere Einstellungen der festen Hyperparameter gültig sind. Mit anderen Worten: Feste Hyperparameter schaffen Vorbehalte für alle Schlüsse, die Sie aus den Tests ziehen.

Angenommen, Sie möchten folgende Ziele verfolgen:

Ermitteln, ob ein Modell mit mehr verborgenen Ebenen einen niedrigeren Validierungsfehler hat

In diesem Fall gilt:

  • Die Lernrate ist ein störender Hyperparameter, da Sie Modelle mit einer unterschiedlichen Anzahl von verborgenen Ebenen nur gerecht vergleichen können, wenn die Lernrate für jede Anzahl von ausgeblendeten Ebenen separat eingestellt wird. Die optimale Lernrate hängt im Allgemeinen von der Modellarchitektur ab.
  • Die Aktivierungsfunktion kann ein fester Hyperparameter sein, wenn Sie in früheren Tests festgestellt haben, dass die beste Aktivierungsfunktion nicht von der Modelltiefe abhängt. Oder Sie sind bereit, Ihre Schlussfolgerungen über die Anzahl der ausgeblendeten Ebenen einzuschränken, um diese Aktivierungsfunktion abzudecken. Es kann aber auch ein Rauschfaktor sein, wenn Sie bereit sind, ihn für jede Anzahl ausgeblendeter Ebenen anzupassen.

Ein bestimmter Hyperparameter kann ein wissenschaftlicher Hyperparameter, Sicherheitslücken-Hyperparameter oder ein fester Hyperparameter sein. Die Kennzeichnung des Hyperparameters ändert sich je nach Testziel. Die Aktivierungsfunktion kann z. B. Folgendes sein:

  • Wissenschaftliche Hyperparameter: Ist ReLU oder beides eine bessere Wahl für unser Problem?
  • Fehlschlags-Hyperparameter: Ist das beste Fünfschicht-Modell besser als das beste Sechsschicht-Modell, wenn Sie mehrere verschiedene mögliche Aktivierungsfunktionen zulassen?
  • Fester Hyperparameter: Wird bei ReLU-Netzen die Batch-Normalisierung in einer bestimmten Position verbessert?

Bei der Entwicklung einer neuen Testrunde gilt Folgendes:

  1. Wissenschaftliche Hyperparameter für das experimentelle Ziel identifizieren. In dieser Phase können Sie alle anderen Hyperparameter als störende Hyperparameter betrachten.
  2. Konkrete Hyperparameter in feste Hyperparameter umwandeln

Bei unbegrenzten Ressourcen würden Sie alle nicht wissenschaftlichen Hyperparameter als lästige Hyperparameter verwenden, damit die Schlussfolgerungen, die Sie aus Ihren Tests gewinnen, keine Einschränkungen hinsichtlich fester Hyperparameter-Werte haben. Je mehr knifflige Hyperparameter Sie optimieren, desto größer ist das Risiko, dass Sie sie nicht für jede Einstellung der wissenschaftlichen Hyperparameter gut abstimmen, und am Ende die falschen Schlussfolgerungen aus Ihren Tests ziehen. Wie in einem späteren Abschnitt beschrieben, können Sie diesem Risiko durch Erhöhen des Rechenbudgets entgegenwirken. Allerdings ist das maximale Ressourcenbudget häufig niedriger als die Feinabstimmung aller nicht wissenschaftlichen Hyperparameter.

Wir empfehlen, einen störenden Hyperparameter in einen festen Hyperparameter zu umwandeln, wenn die durch die Fehlerbehebung eingeführten Einschränkungen weniger aufwendig sind als die Kosten für die Aufnahme als störender Hyperparameter. Je stärker ein Hyperparameter mit den wissenschaftlichen Hyperparametern interagiert, desto schwieriger wird es, den Wert zu korrigieren. Beispielsweise hängt der beste Wert der Stärke der Gewichtsabnahme in der Regel von der Modellgröße ab. Der Vergleich verschiedener Modellgrößen unter der Annahme, dass ein bestimmter Wert der Gewichtsabnahme von Bedeutung ist, ist nicht sehr aufschlussreich.

Einige Optimierungsparameter

Als Faustregel gilt, dass einige Optimierer-Hyperparameter (z. B. die Lernrate, Dynamik, Planungsparameter für den Lernpreis oder Adam-Betaphasen) Hyperparameter sind, da sie in der Regel am häufigsten mit anderen Änderungen interagieren. Diese Optimierer-Hyperparameter sind selten wissenschaftliche Hyperparameter, da ein Zielvorhaben wie „Wie hoch ist die beste Lernrate für die aktuelle Pipeline?“ wenig Informationen liefert. Schließlich kann sich die beste Einstellung trotzdem mit der nächsten Pipelineänderung ändern.

Sie können einige Optimierer-Hyperparameter gelegentlich aufgrund von Ressourceneinschränkungen oder besonders starken Beweisen korrigieren, dass sie nicht mit den wissenschaftlichen Parametern interagieren. Sie sollten jedoch im Allgemeinen davon ausgehen, dass Sie Optimierer-Hyperparameter separat abstimmen müssen, um faire Vergleiche zwischen verschiedenen Einstellungen der wissenschaftlichen Hyperparameter zu finden. Daher sollten sie nicht korrigiert werden. Außerdem gibt es keinen Hauptgrund, einen Optimierungstool-Hyperparameter-Wert einem anderen vorzuziehen. Ein Optimierungstool-Hyperparameter-Wert hat beispielsweise in der Regel keinen Einfluss auf die Compute-Kosten von Forward-Karten oder -Farbverläufen.

Die Wahl des Optimierers

Für das Optimierungstool stehen in der Regel folgende Optionen zur Auswahl:

  • ein wissenschaftlicher Hyperparameter
  • Ein fester Hyperparameter

Ein Optimierer ist ein wissenschaftlicher Hyperparameter, wenn Ihr experimentelles Ziel einen fairen Vergleich zwischen zwei oder mehr verschiedenen Optimierern umfasst. Beispiel:

Ermitteln Sie, welcher Optimierungstool in einer bestimmten Anzahl von Schritten den niedrigsten Validierungsfehler erzeugt.

Alternativ kann das Optimierer aus verschiedenen Gründen als fester Hyperparameter verwendet werden. Beispiele:

  • Frühere Tests deuten darauf hin, dass der beste Optimierer für dein Feinabstimmungsproblem nicht sensibel für aktuelle wissenschaftliche Hyperparameter ist.
  • Sie möchten die Werte der wissenschaftlichen Hyperparameter mit diesem Optimierungstool vergleichen, da die Trainingskurven damit leichter zu verstehen sind.
  • Sie bevorzugen diesen Optimierer, da er weniger Arbeitsspeicher nutzt als die Alternativen.

Regularisierungs-Hyperparameter

Hyperparameter, die durch eine Regularisierungstechnik eingeführt werden, sind normalerweise störende Hyperparameter. Die Entscheidung, ob die Regularisierungstechnik überhaupt berücksichtigt werden soll, ist jedoch ein wissenschaftlicher oder fester Hyperparameter.

Beispielsweise macht die Drop-out-Regularisierung Codekomplexität komplexer. Wenn Sie sich also entscheiden, ob eine Dropout-Regularisierung einbezogen werden soll, könnten Sie „kein Dropout“ im Vergleich zu „Drop-out“ eines wissenschaftlichen Hyperparameters festlegen, aber eine Ausstiegsrate. Wenn Sie auf Grundlage dieses Tests die Dropout-Regularisierung für die Pipeline festlegen, ist die Ausstiegsrate in künftigen Tests ein störender Hyperparameter.

Architektur-Hyperparameter

Architektur-Hyperparameter sind oft wissenschaftliche oder feste Hyperparameter, da sich Änderungen an der Architektur auf die Bereitstellungs- und Trainingskosten, die Latenz und die Arbeitsspeicheranforderungen auswirken können. Beispielsweise ist die Anzahl der Ebenen in der Regel ein wissenschaftlicher oder fester Hyperparameter, da sie tendenziell erhebliche Auswirkungen auf die Trainingsgeschwindigkeit und die Arbeitsspeichernutzung haben.

Abhängigkeiten von wissenschaftlichen Hyperparametern

In einigen Fällen hängen die Sätze von Äußerungen und festen Hyperparametern von den Werten der wissenschaftlichen Hyperparameter ab. Angenommen, Sie versuchen zu ermitteln, welcher Optimierungstool in der Nesterov-Dynamik verwendet wird, und Adam generiert den niedrigsten Validierungsfehler. In diesem Fall gilt:

  • Der wissenschaftliche Hyperparameter ist der Optimierer, der die Werte {"Nesterov_momentum", "Adam"} annimmt.
  • Der Wert optimizer="Nesterov_momentum" führt die Hyperparameter {learning_rate, momentum} ein. Dabei kann es sich um entweder Sicherheitslücken oder feste Hyperparameter handeln.
  • Der Wert optimizer="Adam" führt die Hyperparameter {learning_rate, beta1, beta2, epsilon} ein. Dabei kann es sich um entweder Sicherheitslücken oder feste Hyperparameter handeln.

Hyperparameter, die nur für bestimmte Werte der wissenschaftlichen Hyperparameter vorhanden sind, werden als bedingte Hyperparameter bezeichnet. Gehen Sie nicht davon aus, dass zwei bedingte Hyperparameter identisch sind, nur weil sie denselben Namen haben. Im vorherigen Beispiel ist der bedingte Hyperparameter learning_rate für optimizer="Nesterov_momentum" ein anderer Hyperparameter als für optimizer="Adam". Seine Rolle ist in den beiden Algorithmen zwar ähnlich, aber die Werte, die in jedem der Optimierungen gut funktionieren, unterscheiden sich in der Regel in mehreren Größenordnungen.

Eine Reihe von Studien erstellen

Nachdem Sie die wissenschaftlichen und ehrwürdigen Hyperparameter identifiziert haben, sollten Sie eine Studie oder eine Sequenz von Studien entwerfen, um Fortschritte auf dem Weg zu einem experimentellen Ziel zu erzielen. Eine Studie gibt eine Reihe von Hyperparameter-Konfigurationen an, die für die weitere Analyse ausgeführt werden sollen. Jede Konfiguration wird als Test bezeichnet. Für das Erstellen einer Studie müssen Sie in der Regel Folgendes auswählen:

  • Die Hyperparameter, die sich je nach Test unterscheiden.
  • Die Werte, die diese Hyperparameter annehmen können (Suchbereich).
  • Die Anzahl der Tests.
  • Ein automatisierter Suchalgorithmus, mit dem so viele Tests aus dem Suchbereich abgerufen werden können

Alternativ können Sie eine Studie erstellen, indem Sie die Gruppe von Hyperparameter-Konfigurationen manuell angeben.

Ziel der Studien ist es, gleichzeitig:

  • die Pipeline mit verschiedenen Werten der wissenschaftlichen Hyperparameter ausführen
  • „Optimierung“ (oder „Optimierung“) der feindlichen Hyperparameter, damit Vergleiche zwischen verschiedenen Werten der wissenschaftlichen Hyperparameter so fair wie möglich sind.

Im einfachsten Fall würden Sie für jede Konfiguration der wissenschaftlichen Parameter eine separate Studie durchführen, wobei jede Studie die störenden Hyperparameter übernimmt. Wenn Sie beispielsweise das beste Optimierer aus der Dynamik von Nesterov und Adam auswählen möchten, könnten Sie zwei Studien erstellen:

  • Eine Studie, in der optimizer="Nesterov_momentum" und die störenden Hyperparameter {learning_rate, momentum} sind
  • Eine weitere Studie, in der optimizer="Adam" und die störenden Hyperparameter {learning_rate, beta1, beta2, epsilon} sind.

Sie würden die beiden Optimierer vergleichen, indem Sie aus jeder Studie den Test mit der besten Leistung auswählen.

Sie können einen beliebigen Farbverlaufs-Optimierungsalgorithmus verwenden, einschließlich Methoden wie bayessche Optimierung oder Evolutionsalgorithmen, um eine Optimierung über die störenden Hyperparameter vorzunehmen. Wir verwenden jedoch in der explorativen Testphase die Quasi-Zufallssuche, da es bei dieser Einstellung eine Reihe von Vorteilen bietet. Nach Abschluss der explorativen Datenanalyse empfehlen wir die Verwendung einer hochmodernen Bayes-Optimierungssoftware (falls verfügbar).

Betrachten Sie einen komplizierteren Fall, in dem Sie eine große Anzahl von Werten der wissenschaftlichen Hyperparameter vergleichen möchten, es ist jedoch nicht praktikabel, so viele unabhängige Studien durchzuführen. In diesem Fall haben Sie folgende Möglichkeiten:

  • Binden Sie die wissenschaftlichen Parameter in denselben Suchbereich wie die störenden Hyperparameter ein.
  • Verwenden Sie einen Suchalgorithmus, um Werte der wissenschaftlichen und störenden Hyperparameter in einer einzelnen Studie zu untersuchen.

Bedingte Hyperparameter können bei diesem Ansatz Probleme verursachen. Schließlich ist es schwierig, einen Suchbereich anzugeben, es sei denn, die Gruppe der störenden Hyperparameter ist für alle Werte der wissenschaftlichen Hyperparameter identisch. In diesem Fall ist unsere Einstellung für die Verwendung der quasi-zufälligen Suche gegenüber optimierten Blackbox-Optimierungstools noch stärker, da dadurch garantiert wird, dass verschiedene Werte der wissenschaftlichen Hyperparameter einheitlich abgetastet werden. Achten Sie unabhängig vom Suchalgorithmus darauf, dass einheitlich die wissenschaftlichen Parameter durchsucht werden.

Die richtige Balance zwischen informativen und erschwinglichen Tests finden

Wenn Sie eine Studie oder eine Studiensequenz erstellen, sollten Sie ein begrenztes Budget zuweisen, um die folgenden drei Ziele angemessen zu erreichen:

  • Vergleichen Sie verschiedene verschiedene Werte der wissenschaftlichen Hyperparameter.
  • Feindliche Hyperparameter über einen ausreichend großen Suchbereich abstimmen.
  • Stichprobe des Suchbereichs von störenden Hyperparametern.

Je besser Sie diese drei Ziele erreichen, desto mehr Erkenntnisse können Sie aus dem Test gewinnen. Durch den Vergleich möglichst vieler Werte der wissenschaftlichen Hyperparameter wird der Umfang der durch den Test gewonnenen Erkenntnisse erweitert.

Wenn Sie so viele störende Hyperparameter wie möglich einschließen und dafür sorgen, dass jeder störende Hyperparameter einen möglichst großen Bereich variiert, erhöht sich die Sicherheit, dass im Suchbereich jeder Konfiguration der wissenschaftlichen Hyperparameter ein „guter“ Wert der schädlichen Hyperparameter liegt. Andernfalls können Sie unfaire Vergleiche zwischen den Werten der wissenschaftlichen Hyperparameter durchführen, indem Sie nicht nach möglichen Regionen des störenden Hyperparameter-Bereichs suchen, in denen für einige Werte der wissenschaftlichen Parameter bessere Werte liegen könnten.

Erfassen Sie den Suchbereich von störenden Hyperparametern so eng wie möglich. Dadurch wird sichergestellt, dass im Suchverfahren alle geeigneten Einstellungen für die störenden Hyperparameter gefunden werden, die in Ihrem Suchbereich existieren. Andernfalls können Sie unfaire Vergleiche zwischen den Werten der wissenschaftlichen Parameter durchführen, da einige Werte die Begrenzung der schädlichen Hyperparameter beeinträchtigen.

Leider erfordern Verbesserungen in diesen drei Dimensionen eine der folgenden Anforderungen:

  • Die Anzahl der Tests steigt und damit die Ressourcenkosten.
  • Wie Sie Ressourcen in einer der anderen Dimensionen speichern können

Jedes Problem hat seine eigenen Eigenheiten und Rechenbeschränkungen. Daher muss die Zuweisung von Ressourcen auf diese drei Ziele ein gewisses Maß an Domain-Wissen erfordern. Versuchen Sie nach dem Ausführen einer Studie immer ein Gefühl dafür zu bekommen, ob die störenden Hyperparameter gut genug sind. Das heißt, die Studie wurde groß genug durchsucht, um die wissenschaftlichen Hyperparameter gerecht zu vergleichen (wie im nächsten Abschnitt ausführlicher beschrieben).

Aus den Testergebnissen lernen

Empfehlung: Sie sollten nicht nur das ursprüngliche wissenschaftliche Ziel jeder Gruppe von Tests erreichen, sondern auch eine Checkliste mit weiteren Fragen durchgehen. Wenn Sie Probleme feststellen, überarbeiten und die Tests noch einmal ausführen.

Letztendlich hat jede Gruppe von Tests ein bestimmtes Ziel. Sie sollten die Beweise bewerten, die mit den Tests dafür erzielt werden. Wenn Sie jedoch die richtigen Fragen stellen, werden oft Probleme festgestellt, die behoben werden müssen, bevor eine bestimmte Reihe von Tests auf das ursprüngliche Ziel ausgerichtet werden kann. Wenn Sie diese Fragen nicht stellen, können Sie falsche Schlüsse ziehen.

Weil die Ausführung von Tests teuer sein kann, sollten Sie auch andere nützliche Informationen aus jeder Gruppe von Tests extrahieren, auch wenn diese Informationen nicht sofort für das aktuelle Zielvorhaben relevant sind.

Bevor Sie eine bestimmte Reihe von Tests analysieren, um Ihr ursprüngliches Ziel zu erreichen, stellen Sie sich folgende Fragen:

  • Ist der Suchbereich groß genug? Wenn sich der optimale Punkt aus einer Studie in einer oder mehreren Dimensionen in der Nähe des Suchbereichs befindet, ist die Suche wahrscheinlich nicht breit genug. Führen Sie in diesem Fall eine weitere Studie mit einem erweiterten Suchbereich aus.
  • Haben Sie bereits genügend Punkte aus dem Suchbereich genutzt? Wenn nicht, sollten Sie mehr Punkte sammeln oder sich bei den Optimierungszielen weniger ehrgeizig verhalten.
  • Welcher Teil der Studien in jeder Studie ist nicht möglich? Das heißt, welche Tests divergieren, weisen sehr schlechte Verlustwerte auf oder werden überhaupt nicht ausgeführt, weil sie gegen eine implizite Einschränkung verstoßen? Wenn ein sehr großer Anteil an Punkten in einer Studie nicht möglich ist, passen Sie den Suchbereich an, um Stichproben zu vermeiden, bei denen der Suchbereich neu parametriert werden muss. In einigen Fällen kann eine große Anzahl von nicht umsetzbaren Punkten auf einen Fehler im Trainingscode hinweisen.
  • Gibt es bei dem Modell Optimierungsprobleme?
  • Was können Sie aus den Trainingskurven der besten Tests lernen? Gibt es beispielsweise bei den besten Tests Trainingskurven, die mit problematischer Überanpassung übereinstimmen?

Korrigieren Sie ggf. auf der Grundlage der Antworten auf die vorherigen Fragen die aktuelle Studie oder Studiengruppe, um den Suchraum zu verbessern und/oder weitere Testproben zu testen, oder nehmen Sie andere Korrekturmaßnahmen vor.

Nachdem Sie die oben genannten Fragen beantwortet haben, können Sie die Beweise bewerten, die Sie mit Ihrem ursprünglichen Ziel belegen, z. B. wertvolle Änderungen.

Ein Suchbereich ist verdächtig, wenn sich der beste von ihm entfernte Punkt in der Nähe seiner Grenze befindet. Wenn Sie den Suchbereich in diese Richtung erweitern, ist der Punkt möglicherweise noch leistungsstärker.

Wir empfehlen, für abgeschlossene Tests die sogenannten grundlegenden Diagramme der Hyperparameter-Achse grafisch darzustellen. In diesen wird der Validierungszielwert mit einem der Hyperparameter (z. B. Lernrate) dargestellt. Jeder Punkt im Diagramm entspricht einem einzelnen Test.

Der Validierungszielwert für jeden Test sollte in der Regel der beste Wert sein, den er im Laufe des Trainings erreicht hat.

Diagramm der Fehlerrate auf der Validierungsachse (Y-Achse) im Vergleich zur Spitzenlernrate (X-Achse), die schlechte Grenzwerte für Suchbereiche zeigt. In diesem Diagramm befinden sich die besten Tests (geringste Fehlerrate) am Rand des Suchbereichs, wo die höchste Lernrate am höchsten ist. Grafik der Fehlerrate auf dem Validierungssatz (y-Achse) im Vergleich zur Spitzenlernrate (x-Achse) für gute Grenzwerte für Suchbereiche. In diesem Diagramm befinden sich die besten Tests (geringste Fehlerrate) nahe dem mittleren Bereich des Suchbereichs, wobei die Spitzenlernrate bei 0,001 liegt und nicht, wenn die Spitzenlernrate bei 0,00001 oder 0,1 liegt.

Abbildung 1:Beispiele für zulässige und unzulässige Begrenzungen für Suchbereiche.

Die Diagramme in Abbildung 1 zeigen die Fehlerrate (je niedriger, desto besser) im Vergleich zur anfänglichen Lernrate. Wenn sich die besten Punkte am Rand eines Suchbereichs (in irgendeiner Dimension) befinden, müssen Sie die Grenzen des Suchbereichs möglicherweise erweitern, bis sich der am besten beobachtete Punkt nicht mehr in der Nähe der Grenze befindet.

Oft enthält eine Studie „nicht umsetzbare Tests“, die voneinander abweichen oder sehr schlechte Ergebnisse liefern (in Abbildung 1 mit roten Xs gekennzeichnet). Wenn keine Tests für Lernraten möglich sind, die über einem bestimmten Schwellenwert liegen, und wenn die Lernrate mit der besten Leistung am Rand dieser Region liegt, kann es zu Stabilitätsproblemen kommen, die den Zugriff auf das Modell beeinträchtigen.

Nicht genügend Punkte im Suchbereich abfragen

Es ist im Allgemeinen sehr schwer zu erkennen, ob der Suchbereich dicht genug probiert wurde. 🤖 Wenn Sie mehr Tests ausführen, ist das besser, als weniger Tests. Allerdings verursachen dadurch mehr offensichtliche Zusatzkosten.

Da es sehr schwierig ist zu wissen, wann Sie eine Leseprobe bekommen haben, empfehlen wir Folgendes:

  • Was sich leisten kann
  • Kalibrieren Sie Ihre intuitive Konfidenz, indem Sie sich verschiedene Diagramme der Hyperparameter-Achsen immer wieder ansehen und einen Eindruck davon erhalten, wie viele Punkte sich im „guten“ Bereich des Suchbereichs befinden.

Trainingskurven untersuchen

Zusammenfassung: Die Verlustkurven sind eine einfache Möglichkeit, um häufige Fehlermodi zu erkennen und mögliche nächste Aktionen zu priorisieren.

In vielen Fällen müssen Sie in erster Linie nur die Validierungsfehler der einzelnen Tests berücksichtigen. Seien Sie jedoch vorsichtig, wenn Sie jeden Test auf eine einzelne Zahl beschränken, da dieser Fokus möglicherweise wichtige Details über die Vorgänge unter der Oberfläche verbergen kann. Bei jeder Studie sollten Sie sich die Verlustkurven der besten Tests ansehen. Selbst wenn dies zum Bewältigen des primären experimentellen Ziels nicht erforderlich ist, ist die Prüfung der Verlustkurven (einschließlich des Trainings- und Validierungsverlusts) eine gute Möglichkeit, gängige Fehlermodi zu erkennen und Ihnen bei der Priorisierung der nächsten Schritte zu helfen.

Beachten Sie bei der Untersuchung der Verlustkurven die folgenden Fragen:

  • Stellen Sie bei einem der Tests eine problematische Überanpassung fest? Eine problematische Überanpassung tritt auf, wenn der Validierungsfehler während des Trainings zunimmt. In experimentellen Einstellungen, in denen Sie störende Hyperparameter optimieren, indem Sie den „besten“ Test für jede Einstellung der wissenschaftlichen Hyperparameter auswählen, prüfen Sie mindestens die besten Tests, die den Einstellungen der zu vergleichenden Hyperparameter entsprechen, und achten Sie dabei auf eine Überanpassung. Wenn bei einem der besten Tests eine problematische Überanpassung auftritt, führen Sie einen oder beide der folgenden Schritte aus:

    • Test mit zusätzlichen Techniken zur Regularisierung noch einmal ausführen
    • Passen Sie die vorhandenen Regularisierungsparameter an, bevor Sie die Werte der wissenschaftlichen Hyperparameter vergleichen. Dies gilt möglicherweise nicht, wenn die wissenschaftlichen Hyperparameter Regularisierungsparameter enthalten, da es dann nicht überraschen würde, wenn Einstellungen mit geringer Stärke dieser Regularisierungsparameter zu einer Überanpassung führen.

    Eine Reduzierung von Überanpassung ist oft einfach mit gängigen Regularisierungstechniken, die eine minimale Codekomplexität oder zusätzliche Berechnung verursachen (z. B. Dropout-Regularisierung, Label-Glättung, Gewichtsabnahme). Daher ist es in der Regel ganz einfach, eine oder mehrere dieser Tests in die nächste Testrunde aufzunehmen. Wenn beispielsweise der wissenschaftliche Hyperparameter „Anzahl der ausgeblendeten Ebenen“ ist und der beste Test, der die größte Anzahl ausgeblendeter Ebenen verwendet, zu einer Überanpassung führt, empfiehlt es sich, es mit zusätzlicher Regularisierung zu wiederholen, anstatt sofort die kleinere Anzahl ausgeblendeter Ebenen auszuwählen.

    Selbst wenn keine der besten Tests eine Überanpassung aufweist, kann es ein Problem geben, wenn sie bei einer der Tests auftritt. Wenn Sie den besten Test auswählen, werden Konfigurationen mit problematischer Überanpassung unterdrückt und andere bevorzugt. Mit anderen Worten: Bei Auswahl des besten Tests werden Konfigurationen mit höherer Regularisierung bevorzugt. Alles, was das Training verschlimmert, kann als Regularisierer dienen, auch wenn es nicht so beabsichtigt war. Wenn Sie beispielsweise eine kleinere Lernrate auswählen, können Sie das Training durch Einschränken des Optimierungsprozesses normalisieren. In der Regel möchten wir diese Lernrate aber nicht auf diese Weise auswählen. Der „beste“ Test für jede Einstellung der wissenschaftlichen Hyperparameter muss so ausgewählt werden, dass „schlechte“ Werte einiger wissenschaftlicher oder benachteiligter Hyperparameter bevorzugt werden.

  • Gibt es im Trainings- oder Validierungsfehler beim Training eine hohe Schritt-für-Schritt-Abweichung? Wenn dies der Fall ist, kann dies folgende beiden Funktionen beeinträchtigen:

    • Ihre Fähigkeit, verschiedene Werte der wissenschaftlichen Hyperparameter zu vergleichen. Der Grund dafür ist, dass ein Testlauf „glücklich“ oder „Unglück“ ist.
    • Ihre Fähigkeit, das Ergebnis des besten Tests in der Produktion zu reproduzieren. Das liegt daran, dass das Produktionsmodell möglicherweise nicht im selben „Glück“-Schritt wie in der Studie endet.

    Die wahrscheinlichsten Ursachen für Abweichungen zwischen den einzelnen Schritten sind:

    • Batchabweichungen aufgrund von zufälligen Stichproben aus den Trainingssätzen für jeden Batch.
    • Kleine Validierungs-Datasets
    • eine zu späte Lernrate verwenden.

    Mögliche Abhilfemaßnahmen:

    • Die Batchgröße erhöhen
    • Es werden mehr Validierungsdaten abgerufen.
    • Lernrate abnehmen
    • Polyak-Durchschnittsanteil verwenden.
  • Werden die Tests am Ende des Trainings noch verbessert? Wenn dies der Fall ist, befinden Sie sich in der Regel „Computing-gebunden“. Dies kann von einer Erhöhung der Anzahl der Trainingsschritte oder von Änderungen der Lernrate profitieren.

  • Ist die Leistung der Trainings- und Validierungs-Datasets lange vor dem letzten Trainingsschritt gesättigt? Wenn Sie dies getan haben, zeigen Sie an, dass Sie sich an dem Schema „Nicht Computing-gebunden“ befinden und möglicherweise die Anzahl der Trainingsschritte verringern können.

Abgesehen von dieser Liste können viele weitere Verhaltensweisen aus der Untersuchung der Verlustkurven ersichtlich werden. Beispiel: Ein zunehmender Trainingsverlust während des Trainings weist in der Regel auf einen Fehler in der Trainingspipeline hin.

Erkennen, ob eine Änderung in Isolationsdiagrammen nützlich ist

Isolationsdiagramm, das den besten Wert der Gewichtsabnahme für ResNet-50-Modelle untersucht, die auf ImageNet trainiert wurden. In diesem Fall beträgt die niedrigste Validierungsfehlerrate, wenn der Gewichtungsabfall etwa 0,00005 beträgt.

Abbildung 2: Isolationsdiagramm, in dem der beste Wert der Gewichtsabnahme für mit ImageNet trainierte ResNet-50-Geräte untersucht wird.

 

Häufig besteht das Ziel einer Reihe von Tests darin, verschiedene Werte eines wissenschaftlichen Hyperparameters zu vergleichen. Angenommen, Sie möchten den Wert der Gewichtsabnahme bestimmen, der zum besten Validierungsfehler führt. Ein Isolationsdiagramm ist ein Sonderfall des einfachen Hyperparameter-Achsendiagramms. Jeder Punkt auf einem Isolationsdiagramm entspricht der Leistung des besten Tests für einige (oder alle) störenden Hyperparameter. also die Modellleistung nach der „Optimierung“ der Hyperparameter vorstellen.

Ein Isolationsdiagramm vereinfacht den Vergleich von Äpfeln mit Äpfeln zwischen verschiedenen Werten des wissenschaftlichen Hyperparameters. Beispielsweise zeigt das Isolationsdiagramm in Abbildung 2 den Wert der Gewichtsabnahme, der die beste Validierungsleistung für eine bestimmte auf ImageNet trainierte ResNet-50-Konfiguration generiert.

Wenn das Ziel darin besteht, zu ermitteln, ob die Gewichtsabnahme überhaupt berücksichtigt werden soll, vergleichen Sie den besten Punkt aus dieser Darstellung mit dem Baseline-Wert, wenn kein Gewichtsabfall gezeigt wird. Für einen fairen Vergleich sollte die Basisrate auch die gleiche Lernrate haben.

Wenn Sie Daten haben, die durch (quasi) Zufallssuche generiert werden, und einen fortlaufenden Hyperparameter für ein Isolationsdiagramm berücksichtigen, können Sie das Trenndiagramm schätzen. Dazu fassen Sie die x-Achsenwerte des einfachen Hyperparameter-Achsendiagramms in Gruppen zusammen und nehmen den besten Test in jedem vertikalen Segment vor, der durch die Buckets definiert wird.

Allgemein nützliche Handlungsstränge automatisieren

Je mehr Aufwand für die Erstellung von Handlungssträngen vorliegt, desto unwahrscheinlicher ist es, dass Sie sie so oft wie möglich ansehen. Wir empfehlen daher, dass Sie Ihre Infrastruktur so einrichten, dass automatisch möglichst viele Visualisierungen erstellt werden. Wir empfehlen, für alle Hyperparameter, die Sie in einem Test variieren, automatisch grundlegende Diagramme für Hyperparameter zu erstellen.

Außerdem empfehlen wir, für alle Versuche automatisch Verlustkurven zu erstellen. Außerdem empfehlen wir Ihnen, so einfach wie möglich die besten Testläufe jeder Studie zu finden und ihre Verlustkurven zu untersuchen.

Sie können weitere nützliche Diagramme und Visualisierungen hinzufügen. So schreibst du Geoffrey Hinton in Textform:

Jedes Mal, wenn du etwas Neues eingibst, musst du etwas Neues lernen.

Festlegen, ob die Änderung übernommen werden soll

Zusammenfassung: Wenn Sie entscheiden, ob Sie eine Änderung an unserem Modell oder Trainingsverfahren vornehmen oder eine neue Hyperparameter-Konfiguration übernehmen möchten, beachten Sie die verschiedenen Quellen von Varianten in Ihren Ergebnissen.

Beim Versuch, ein Modell zu verbessern, kann eine bestimmte Änderung des Kandidaten anfänglich einen besseren Validierungsfehler im Vergleich zu einer vorhandenen Konfiguration erzielen. Allerdings bietet die Wiederholung eines Tests keine Vorteile. Inoffiziell können die wichtigsten Quellen inkonsistenter Ergebnisse in die folgenden allgemeinen Kategorien gruppiert werden:

  • Abweichung im Trainingsverfahren, Abweichung beim erneuten Training oder Testabweichung: die Variante zwischen Trainingsausführungen, die dieselben Hyperparameter, aber unterschiedliche zufällige Startwerte verwenden. Verschiedene mögliche Initialen, Trainings-Shuffles, Drop-out-Masken, Muster von Datenerweiterungsvorgängen und die Reihenfolge paralleler arithmetischer Vorgänge sind beispielsweise potenzielle Quellen von Testabweichungen.
  • Hyperparameter-Suchabweichung oder Studienabweichung: die Variante der Ergebnisse, die durch unser Verfahren zur Auswahl der Hyperparameter verursacht wurden. Sie können beispielsweise denselben Test mit einem bestimmten Suchbereich ausführen, aber mit zwei unterschiedlichen Ausgangswerten für die Quasi-Random Search und am Ende unterschiedliche Hyperparameter-Werte auswählen.
  • Abweichung bei der Datenerhebung und -stichprobe: Die Abweichung von einer zufälligen Aufteilung in Trainings-, Validierungs- und Testdaten oder die Abweichung aufgrund des allgemeinen Prozesses für den Trainingsdatengenerierungsprozess.

Richtig: Sie können die validierten Validierungsfehlerraten für einen endlichen Validierungssatz mit schnellen statistischen Tests vergleichen. Häufig kann die Testabweichung jedoch allein statistisch signifikante Unterschiede zwischen zwei verschiedenen trainierten Modellen mit denselben Hyperparameter-Einstellungen aufweisen.

Wenn wir versuchen, Schlussfolgerungen zu ziehen, die über das Niveau eines einzelnen Punkts in Hyperparametern hinausgehen, sind wir am meisten besorgt. Die Varianz der Studie hängt von der Anzahl der Tests und dem Suchbereich ab. Es gibt Fälle, in denen die Varianz der Studie größer als die Testabweichung ist, und in Fällen, in denen sie erheblich kleiner ist. Daher sollten Sie vor dem Anwenden einer Kandidatenänderung gegebenenfalls die besten n Tests ausführen, um die Abweichung von Lauf zu Test zu charakterisieren. Üblicherweise lässt sich die Testabweichung nach größeren Änderungen an der Pipeline neu charakterisieren. In einigen Fällen benötigen Sie jedoch aktuellere Schätzungen. Bei anderen Anwendungen ist es zu kostspielig, die Testabweichung zu berechnen, damit es sich lohnt.

Sie möchten zwar nur Änderungen vornehmen möchten (einschließlich neuer Hyperparameter-Konfigurationen), die zu echten Verbesserungen führen, aber auch die Gewissheit, dass eine bestimmte Änderung hilft, ist nicht die richtige Antwort. Wenn also ein neuer Hyperparameter-Punkt (oder eine andere Änderung) ein besseres Ergebnis als der Baseline-Wert erzielt (unter Berücksichtigung der bestmöglichen Neutrain-Abweichung vom neuen Punkt und der Baseline), sollten Sie ihn wahrscheinlich für zukünftige Vergleiche als neue Referenz verwenden. Wir empfehlen jedoch, nur solche Änderungen zu übernehmen, die mögliche Komplexitäten überwiegen.

Nach Abschluss der explorativen Datenanalyse

Zusammenfassung: Bayessche Optimierungstools sind eine überzeugende Option, wenn Sie nach geeigneten Gruppenbereichen gesucht haben und entschieden haben, welche Hyperparameter abgestimmt werden sollten.

Nach und nach konzentrieren sich die Prioritäten nicht mehr nur auf das Feinabstimmungsproblem, sondern generieren später eine einzelne optimale Konfiguration für den Start oder eine andere Verwendung. Dann sollte es einen optimierten Suchbereich geben, der bequem die Region um den besten beobachteten Testzeitraum herum enthält und angemessen abgetastet wurde. Ihre explorative Datenanalyse sollte die wichtigsten Hyperparameter, die zu optimieren sind, und ihre sinnvollen Bereiche offengelegt haben, mit denen Sie einen Suchbereich für eine abschließende automatische Feinabstimmungsstudie mit einem möglichst großen Feinabstimmungsbudget erstellen können.

Da es Ihnen nicht länger wichtig ist, die Informationen zur Abstimmung des Problems zu maximieren, gelten viele der Vorteile der Quasi-Random Search nicht mehr. Daher sollten Sie mithilfe der bayesschen Optimierungstools automatisch die beste Hyperparameter-Konfiguration finden. Open-Source-Vizier implementiert eine Vielzahl ausgeklügelter Algorithmen zur Feinabstimmung von ML-Modellen, einschließlich bayerischer Optimierungsalgorithmen.

Angenommen, der Suchbereich enthält ein nicht erhebliches Volumen an divergenten Punkten, was bedeutet, dass Punkte, die einen NaN-Trainingsverlust haben, oder sogar Trainingsverluste viele Standardabweichungen schlechter als der Mittelwert bewältigen. In diesem Fall empfehlen wir die Verwendung von Blackbox-Optimierungstools, die Tests, die voneinander abweichen, ordnungsgemäß verarbeiten. Weitere Informationen zu diesem Problem finden Sie unter Bayessche Optimierung mit unbekannten Einschränkungen. Open Source Vizier unterstützt das Markieren unterschiedlicher Zugangspunkte, da Tests als nicht möglich gekennzeichnet werden, je nachdem, wie sie konfiguriert ist, kann jedoch nicht unseren bevorzugten Ansatz von Gelbart et al. nutzen.

Nachdem die explorative Datenanalyse abgeschlossen ist, sollten Sie die Leistung des Test-Datasets prüfen. Im Prinzip könnten Sie das Validierungs-Dataset sogar in das Trainings-Dataset einfließen lassen und die beste Konfiguration mit der bayesschen Optimierung neu trainieren. Das ist jedoch nur sinnvoll, wenn es für diese spezielle Arbeitslast keine zukünftigen Markteinführungen geben wird (z. B. ein einmaliger Kaggle-Wettbewerb).