Konfigurieren einer vorzeitigen Beendigung

Abgeschlossen

Die Hyperparameteroptimierung hilft Ihnen beim Auswählen von Hyperparameterwerten, die die Modellleistung verbessern.

Jeder zusätzliche Versuch verbraucht Zeit und Rechenleistung. Sie müssen entscheiden, ob das Fortsetzen einer schlecht funktionierenden Testversion wahrscheinlich nützliche Ergebnisse erzielt.

Bei jedem Versuch in einem Sweepauftrag wird ein neues Modell mit einer anderen Kombination von Hyperparameterwerten trainiert. Eine Richtlinie für eine vorzeitige Beendigung stoppt einzelne Testversionen, die unterformt sind, während die verbleibenden Testversionen fortgesetzt werden.

Sie können den vollständigen Durchlauf auch einschränken, indem Sie eine maximale Anzahl von Versuchen oder ein Timeout festlegen. Verwenden Sie eine Richtlinie zur vorzeitigen Beendigung, wenn Azure Machine Learning leistungsschwache Versuche anhand ihrer gemeldeten primären Metrik beenden soll.

Wann ist eine Richtlinie zur vorzeitigen Beendigung sinnvoll?

Ob Sie eine Richtlinie für vorzeitige Beendigung verwenden möchten, hängt möglicherweise vom Suchbereich und der Samplingmethode ab, mit der Sie arbeiten.

Sie können z. B. Grid Sampling anstelle eines diskreten Suchraums wählen, das sechs Versuche ergibt. Da der Sweep nur sechs Modelle trainiert, ist eine Richtlinie zur frühzeitigen Beendigung möglicherweise unnötig.

Eine Richtlinie zur vorzeitigen Beendigung kann besonders nützlich sein, wenn Sie mit kontinuierlichen Hyperparametern arbeiten. Kontinuierliche Suchräume enthalten viele mögliche Werte, sodass zufällige oder Bayes’sche Stichprobenverfahren Versuche auslösen können, die wenig erfolgversprechend sind.

Konfigurieren einer Richtlinie für vorzeitige Beendigung

Es gibt zwei Hauptparameter, wenn Sie eine Richtlinie für vorzeitige Beendigung verwenden:

  • evaluation_interval: Gibt an, in welchem Intervall die Richtlinie ausgewertet werden soll. Jedes Mal, wenn die primäre Metrik für eine Testversion protokolliert wird, zählt sie als Intervall.
  • delay_evaluation: Gibt an, wie viele metrische Berichtsintervalle auftreten, bevor die Richtlinie zuerst jede Testversion auswertet. Diese Verzögerung gibt jeder Testversion Zeit, um den ersten Fortschritt zu erzielen.

Azure Machine Learning unterstützt drei Richtlinien für den Vergleich aktiver Testversionen:

  • Bandit-Richtlinie: Verwendet einen slack_factor (relativen) oder slack_amount (absoluten Wert). Ein Versuch muss innerhalb der zulässigen Pufferzeit des leistungsstärksten Versuchs bleiben.
  • Median-Stopp-Richtlinie: Vergleicht den laufenden Durchschnitt eines Versuchs mit dem Median der laufenden Durchschnitte aller Versuche.
  • Kürzungsauswahlrichtlinie: Bricht bei jedem Auswertungsintervall einen bestimmten Prozentsatz der Versuche mit der schlechtesten Leistung ab.

Banditenrichtlinie

Sie können eine Banditenrichtlinie verwenden, um einen Versuch zu beenden, wenn die Zielleistungsmetrik die beste bisherige Leistung um einen bestimmten Wert unterschreitet.

Beispielsweise verzögert der folgende Code die Auswertung für fünf metrische Berichtsintervalle, wertet die Richtlinie in jedem Intervall nach der Verzögerung aus und ermöglicht eine absolute Pufferzeit von 0,2.

from azure.ai.ml.sweep import BanditPolicy

sweep_job.early_termination = BanditPolicy(
    slack_amount = 0.2, 
    delay_evaluation = 5, 
    evaluation_interval = 1
)

Stellen Sie sich vor, die primäre Metrik ist die Modellgenauigkeit. Im Auswertungsintervall hat die leistungsstärkste Studie eine Genauigkeit von 0,9. Bei einem Spielraum von 0,2 muss ein weiterer aktiver Versuch einen Wert von mindestens 0,7 melden, um fortzufahren. Die Richtlinie beendet diesen Versuch, wenn seine beste gemeldete Genauigkeit unter den Schwellenwert sinkt; sie stoppt jedoch nicht den Sweep.

Diagramm mit zwei Beispielen bei der Verwendung einer Banditrichtlinie: ein Modell leistet ausreichend gut, das andere leistet schlechter.

Sie können auch eine Banditrichtlinie mit einem Pufferfaktor anwenden, der die Leistungsmetrik als Verhältnis anstelle eines absoluten Werts vergleicht.

Medianstopprichtlinie

Eine Median-Stopp-Politik bricht Versuche ab, bei denen die Zielleistungsmetrik schlechter ist als der Median der laufenden Durchschnitte aller Versuche.

Der folgende Code wendet z. B. eine Median-Stopprichtlinie nach einer Verzögerung von fünf Metrikberichtsintervallen an und wertet die Richtlinie dann in jedem Intervall aus.

from azure.ai.ml.sweep import MedianStoppingPolicy

sweep_job.early_termination = MedianStoppingPolicy(
    delay_evaluation = 5, 
    evaluation_interval = 1
)

Stellen Sie sich vor, die primäre Metrik ist die Modellgenauigkeit. Im sechsten Berichtsintervall vergleicht die Strategie den laufenden Durchschnitt jedes Versuchs mit dem Median der laufenden Durchschnitte aller Versuche. Wenn dieser Median 0,82 ist, stoppt die Richtlinie eine Testversion, deren Ausführungsdurchschnitt unter 0,82 liegt. Weitere Versuche und die umfassende Durchsuchung dauern an.

Diagramm mit zwei Beispielen für die Verwendung einer Median-Stopprichtlinie: Ein Modell liefert ausreichend gute Ergebnisse, das andere bleibt hinter den Erwartungen zurück.

Kürzungsauswahlrichtlinie

Eine Richtlinie für die Auswahl des Abschneidens bricht die leistungsschwächsten X% der Tests bei jedem Auswertungsintervall auf der Grundlage des Werts von truncation_percentage ab, den Sie für X angeben.

Der folgende Code wendet beispielsweise eine Richtlinie für die Auswahl des Abschneidens mit einer Verzögerung von vier Tests an, wertet die Richtlinie in jedem Intervall aus und verwendet einen Abschneidungsprozentsatz von 20 %.

from azure.ai.ml.sweep import TruncationSelectionPolicy

sweep_job.early_termination = TruncationSelectionPolicy(
    evaluation_interval=1, 
    truncation_percentage=20, 
    delay_evaluation=4 
)

Stellen Sie sich vor, die primäre Metrik ist die Modellgenauigkeit. Im fünften Berichtsintervall ordnet die Richtlinie die aktiven Versuche nach Leistung und bricht die leistungsschwächsten 20 % ab. Die verbleibenden Versuche und der gesamte Sweep laufen weiter.

Diagramm mit zwei Beispielen bei Verwendung einer Richtlinie für die Auswahl des Abschneidens: Ein Modell bietet eine ausreichende Leistung, das andere nicht.