Definování vyhledávacího prostoru
Sada hodnot hyperparametrů, které se zkouší během ladění hyperparametrů, se nazývá 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, musíte vybrat hodnotu z konkrétní konečné sady možností. Vyhledávací prostor pro diskrétní parametr můžete definovat pomocí Volba ze seznamu explicitních hodnot, který můžete definovat jako seznamu pythonových (Choice(values=[10,20,30])
), rozsahu (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 ve tvaru 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_value -
LogUniform(min_value, max_value)
: Vrátí hodnotu vytaženou 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),
)