Konfigurace předčasného ukončení

Dokončeno

Ladění hyperparametrů vám pomůže vyladit model a vybrat hodnoty hyperparametrů, díky kterým bude váš model fungovat co nejlépe.

Abyste však našli nejlepší model, může být nikdy nekončící dobytí. Vždy je potřeba zvážit, jestli stojí za to a náklady na testování nových hodnot hyperparametrů, abyste našli model, který by mohl lépe fungovat.

Každá zkušební verze v úloze úklidu, nový model se vytrénuje s novou kombinací hodnot hyperparametrů. Pokud trénování nového modelu nemá za následek výrazně lepší model, možná budete chtít zastavit úlohu úklidu a použít model, který zatím fungoval nejlépe.

Když nakonfigurujete úlohu uklidení na Učení Azure Machine, můžete také nastavit maximální počet zkušebních verzí. Složitějším přístupem může být zastavení úlohy úklidu v případě, že novější modely nevygenerují výrazně lepší výsledky. Pokud chcete zastavit úlohu úklidu na základě výkonu modelů, můžete použít zásady předčasného ukončení.

Kdy použít zásadu předčasného ukončení

Jestli chcete použít zásadu předčasného ukončení, může záviset na vyhledávacím prostoru a metodě vzorkování, se kterou pracujete.

Můžete se například rozhodnout použít metodu vzorkování mřížky přes diskrétní prostor hledání, který vede k maximálně šesti pokusům. Při šesti pokusech se vytrénuje maximálně šest modelů a zásady předčasného ukončení nemusí být potřeba.

Zásady předčasného ukončení můžou být užitečné zejména při práci s nepřetržitými hyperparametry ve vyhledávacím prostoru. Nepřetržité hyperparametry představují neomezený počet možných hodnot, ze které si můžete vybrat. Při práci s průběžnými hyperparametry a metodou náhodného nebo bayesského vzorkování budete pravděpodobně chtít použít zásadu předčasného ukončení.

Konfigurace zásad předčasného ukončení

Pokud se rozhodnete použít zásadu předčasného ukončení, existují dva hlavní parametry:

  • evaluation_interval: Určuje, v jakém intervalu má být zásada vyhodnocena. Pokaždé, když se primární metrika zaprotokoluje pro zkušební období, se počítá jako interval.
  • delay_evaluation: Určuje, kdy se má zásada začít vyhodnocovat. Tento parametr umožňuje alespoň minimálně zkušební verze dokončit bez zásady předčasného ukončení, které je ovlivňují.

Nové modely můžou i nadále fungovat jen mírně lépe než předchozí modely. Pokud chcete zjistit, do jaké míry by model měl fungovat lépe než předchozí zkušební verze, existují tři možnosti předčasného ukončení:

  • Zásady bandit: Používá slack_factor (relativní) nebo slack_amount(absolutní). Každý nový model musí provádět v rozsahu slack nejlepšího modelu.
  • Zásady zastavení mediánu: Používá medián průměrů primární metriky. Každý nový model musí fungovat lépe než medián.
  • Zásady výběru zkrácení: Používá truncation_percentageprocento nejnižších pokusů o provedení. Každý nový model musí fungovat lépe než nejnižší pokusy o provedení.

Zásady bandit

Zásady bandit můžete použít k zastavení zkušební verze, pokud cílová metrika výkonu nedosáhne nejlepší zkušební verze doposud podle zadaného okraje.

Například následující kód použije zásadu bandit se zpožděním pěti pokusů, vyhodnotí zásadu v každém intervalu a umožňuje absolutní časovou rezervu 0,2.

from azure.ai.ml.sweep import BanditPolicy

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

Představte si, že primární metrikou je přesnost modelu. Když po prvních pěti pokusech má model s nejlepším výkonem přesnost 0,9, musí každý nový model fungovat lépe než (0,9–0,2) nebo 0,7. Pokud je přesnost nového modelu vyšší než 0,7, úloha úklidu bude pokračovat. Pokud má nový model skóre přesnosti nižší než 0,7, zásada ukončí úlohu úklidu.

Diagram of two examples when using a bandit policy: one model performs sufficiently good, the other underperforms.

Zásady bandit můžete použít také pomocí faktoru slack, který porovnává metriku výkonu jako poměr místo absolutní hodnoty.

Zásady zastavení mediánu

Medián zastavení zásad opouští pokusy, kdy je cílová metrika výkonu horší než medián průběžných průměrů pro všechny pokusy.

Následující kód například použije medián zastavení zásad se zpožděním pěti pokusů a vyhodnotí zásadu v každém intervalu.

from azure.ai.ml.sweep import MedianStoppingPolicy

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

Představte si, že primární metrikou je přesnost modelu. Pokud je přesnost zaprotokolována pro šestou zkušební verzi, musí být metrika vyšší než medián skóre přesnosti dosud. Předpokládejme, že medián skóre přesnosti je zatím 0,82. Pokud je přesnost nového modelu vyšší než 0,82, úloha úklidu bude pokračovat. Pokud má nový model skóre přesnosti nižší než 0,82, zásada zastaví úlohu úklidu a nebudou natrénovány žádné nové modely.

Diagram of two examples when using a median stopping policy: one model performs sufficiently good, the other underperforms.

Zásady výběru zkrácení

Zásada výběru zkrácení zruší nejnižší výkon X% pokusů v každém intervalu vyhodnocení na základě hodnoty truncation_percentage , kterou zadáte pro X.

Následující kód například použije zásadu výběru zkrácení se zpožděním čtyř pokusů, vyhodnotí zásadu v každém intervalu a použije procento zkrácení 20 %.

from azure.ai.ml.sweep import TruncationSelectionPolicy

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

Představte si, že primární metrikou je přesnost modelu. Při protokolování přesnosti pro pátý pokus by metrika neměla být v nejhorších 20 % dosud zkoušek. V tomto případě se 20 % převede na jednu zkušební verzi. Jinými slovy, pokud pátý proces zatím není modelem s nejhorším výkonem, bude úloha úklidu pokračovat. Pokud má pátá zkušební skóre s nejnižší přesností všech dosud případných pokusů, úloha úklidu se zastaví.

Diagram of two examples when using a truncation selection policy: one model performs sufficiently good, the other underperforms.