Definování vyhledávacího prostoru
Sada hodnot hyperparametrů se pokusila během ladění hyperparametrů se označuje jako vyhledávací prostor. Definice rozsahu možných hodnot, které lze zvolit, závisí na typu hyperparametru.
Diskrétní hyperparametry
Některé hyperparametry vyžadují diskrétní hodnoty – jinými slovy, je nutné vybrat hodnotu z konkrétní konečné sady možností. Vyhledávací prostor pro diskrétní parametr můžete definovat pomocí volby ze seznamu explicitních hodnot, který můžete definovat jako seznam Pythonu (), oblast (Choice(values=[10,20,30])
Choice(values=range(1,10))
) nebo libovolnou sadu hodnot oddělených čárkami (Choice(values=(30,50,100))
).
Můžete také vybrat diskrétní hodnoty z některého z následujících diskrétních rozdělení:
QUniform(min_value, max_value, q)
: Vrátí hodnotu jako round(Uniform(min_value; max_value) / q) * q.QLogUniform(min_value, max_value, q)
: Vrátí hodnotu jako round(exp(Uniform(min_value; max_value)) / q) * q.QNormal(mu, sigma, q)
: Vrátí hodnotu jako round(Normal(mu, sigma) / q) * q.QLogNormal(mu, sigma, q)
: Vrátí hodnotu jako round(exp(Normal(mu, sigma)) / q) * q.
Průběžné hyperparametry
Některé hyperparametry jsou souvislé – jinými slovy můžete použít libovolnou hodnotu ve škále, což vede k nekonečnému počtu možností. Pokud chcete definovat vyhledávací prostor pro tyto druhy hodnot, můžete použít některý z následujících typů rozdělení:
Uniform(min_value, max_value)
: Vrátí hodnotu rovnoměrně rozdělenou mezi min_value a max_valueLogUniform(min_value, max_value)
: Vrátí hodnotu nakreslenou podle hodnoty exp(Uniform(min_value, max_value)), aby logaritmus návratové hodnoty byl rovnoměrně rozložen.Normal(mu, sigma)
: Vrátí reálnou hodnotu, která je normálně distribuovaná střední mí a směrodatnou odchylkou sigma.LogNormal(mu, sigma)
: Vrátí hodnotu nakreslenou podle hodnoty exp(normal(mu, sigma)), aby logaritmus návratové hodnoty byl normálně distribuován.
Definování vyhledávacího prostoru
Pokud chcete definovat vyhledávací prostor pro ladění hyperparametrů, vytvořte slovník s odpovídajícím výrazem parametru pro každý pojmenovaný hyperparametr.
Například následující vyhledávací prostor označuje, že batch_size
hyperparametr může mít hodnotu 16, 32 nebo 64 a learning_rate
hyperparametr může mít libovolnou hodnotu z normálního rozdělení se střední hodnotou 10 a směrodatnou odchylkou 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),
)