Definiowanie przestrzeni wyszukiwania

Ukończone

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

Dyskretne hiperparametry

Niektóre hiperparametry wymagają wartości dyskretnych — innymi słowy, należy wybrać wartość z określonego zestawu skończonych możliwości. Możesz zdefiniować przestrzeń wyszukiwania dla dyskretnego parametru przy użyciu opcji Wybór 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 rozdzielonych 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ść, na przykład 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ść, na przykład 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 powoduje nieskończoną liczbę 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ść narysowaną zgodnie z wyrażeniem exp(Uniform(min_value, max_value)), tak aby logarytm wartości zwracanej był równomiernie rozłożony
  • Normal(mu, sigma): Zwraca wartość rzeczywistą, która jest zwykle rozłożona przy użyciu średniej mu i odchylenia standardowego sigma
  • LogNormal(mu, sigma): Zwraca wartość narysowaną zgodnie z wyrażeniem (normal(mu, sigma)), tak aby logarytm wartości zwracanej był zwykle dystrybuowany

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 poniższa przestrzeń wyszukiwania wskazuje, że batch_size hiperparametr 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),
)