Definiowanie przestrzeni wyszukiwania

Ukończone

Zestaw wartości hiperparametrów wypróbowanych podczas dostrajania hiperparametrów jest znany jako obszar wyszukiwania . Definicja zakresu możliwych wartości, które można wybrać, zależy od typu hiperparametru.

Dyskretne hiperparametry

Niektóre hiperparametry wymagają dyskretnych wartości — innymi słowy, należy wybrać wartość z określonego skończonego zestawu możliwości. Obszar wyszukiwania dla parametru dyskretnego można zdefiniować przy użyciu Choice z listy jawnych wartości, które można zdefiniować jako listę języka Python (Choice(values=[10,20,30])), zakres (Choice(values=range(1,10))) lub dowolny zestaw wartości rozdzielanych przecinkami (Choice(values=(30,50,100)))

Można również wybrać wartości dyskretne z dowolnego z następujących dystrybucji dyskretnych:

  • QUniform(min_value, max_value, q): zwraca wartość podobną do round(Uniform(min_value, max_value) / q) * q
  • QLogUniform(min_value, max_value, q): zwraca wartość podobną do round(exp(Uniform(min_value, max_value)) / q) * q
  • QNormal(mu, sigma, q): zwraca wartość podobną do round(Normal(mu, sigma) / q) * q
  • QLogNormal(mu, sigma, q): zwraca wartość podobną do round(exp(Normal(mu, sigma)) / q) * q

Hiperparametry ciągłe

Niektóre hiperparametry są ciągłe — innymi słowy, można użyć dowolnej wartości wzdłuż skali, co prowadzi do nieskończonej liczby możliwości. Aby zdefiniować miejsce wyszukiwania dla tego rodzaju wartości, można użyć dowolnego z następujących typów dystrybucji:

  • Uniform(min_value, max_value): zwraca wartość równomiernie rozłożoną między min_value a max_value
  • LogUniform(min_value, max_value): zwraca wartość wylosowaną według exp(Uniform(min_value, max_value)), tak aby logarytm wartości zwracanej był równomiernie rozłożony
  • Normal(mu, sigma): Zwraca wartość rzeczywistą w rozkładzie normalnym ze średnią mu oraz odchyleniem standardowym sigma
  • LogNormal(mu, sigma): Zwraca wartość losowaną zgodnie z rozkładem exp(Normal(mu, sigma)), tak aby logarytm wartości zwracanej miał rozkład normalny.

Definiowanie przestrzeni wyszukiwania

Aby zdefiniować miejsce wyszukiwania na potrzeby dostrajania hiperparametrów, utwórz słownik z odpowiednim wyrażeniem parametru dla każdego nazwanego hiperparametru.

Na przykład następująca przestrzeń wyszukiwania wskazuje, że hiperparametr batch_size może mieć wartość 16, 32 lub 64, a learning_rate hiperparametr może mieć dowolną wartość z rozkładu normalnego ze średnią 10 i odchylenie standardowe 3.

from azure.ai.ml.sweep import Choice, Normal

command_job_for_sweep = job(
    batch_size=Choice(values=[16, 32, 64]),    
    learning_rate=Normal(mu=10, sigma=3),
)