Definiowanie przestrzeni wyszukiwania
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) * qQLogUniform(min_value, max_value, q)
: Zwraca wartość, na przykład round(exp(Uniform(min_value, max_value)) / q) * qQNormal(mu, sigma, q)
: Zwraca wartość podobną do round(Normal(mu, sigma) / q) * qQLogNormal(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_valueLogUniform(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żonyNormal(mu, sigma)
: Zwraca wartość rzeczywistą, która jest zwykle rozłożona przy użyciu średniej mu i odchylenia standardowego sigmaLogNormal(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),
)