Définir un espace de recherche
L’ensemble de valeurs d’hyperparamètres tentées pendant le réglage des hyperparamètres est appelé espace de recherche . La définition de la plage de valeurs possibles pouvant être choisies dépend du type d’hyperparamètre.
Hyperparamètres discrets
Certains hyperparamètres requièrent des valeurs discrètes. En d’autres termes, vous devez sélectionner la valeur à partir d’un ensemble fini de possibilités particulier. Vous pouvez définir un espace de recherche pour un paramètre discret à l’aide d’un Choice à partir d’une liste de valeurs explicites, que vous pouvez définir comme une liste de Python (Choice(values=[10,20,30])), une plage de (Choice(values=range(1,10))) ou un ensemble arbitraire de valeurs séparées par des virgules (Choice(values=(30,50,100)))
Vous pouvez également sélectionner des valeurs discrètes dans l’une des distributions discrètes suivantes :
QUniform(min_value, max_value, q): retourne une valeur telle que round(Uniform(min_value, max_value) / q) * qQLogUniform(min_value, max_value, q): retourne une valeur comme round(exp(Uniform(min_value, max_value)) / q) * qQNormal(mu, sigma, q): retourne une valeur telle que round(normal(mu, sigma) / q) * qQLogNormal(mu, sigma, q): retourne une valeur telle que round(exp(Normal(mu, sigma)) / q) * q
Hyperparamètres continus
Certains hyperparamètres sont continus , en d’autres termes, vous pouvez utiliser n’importe quelle valeur le long d’une échelle, ce qui entraîne une infini nombre de possibilités. Pour définir un espace de recherche pour ces types de valeurs, vous pouvez utiliser l’un des types de distribution suivants :
Uniform(min_value, max_value): retourne une valeur répartie uniformément entre min_value et max_valueLogUniform(min_value, max_value): retourne une valeur dessinée en fonction d’exp(Uniform(min_value, max_value)) afin que le logarithme de la valeur de retour soit uniformément distribuéNormal(mu, sigma): retourne une valeur réelle qui est normalement distribuée avec mu moyen et écart type sigmaLogNormal(mu, sigma): retourne une valeur dessinée en fonction d’exp(normal(mu, sigma)) afin que le logarithme de la valeur de retour soit normalement distribué
Définition d’un espace de recherche
Pour définir un espace de recherche pour l’optimisation des hyperparamètres, créez un dictionnaire avec l’expression de paramètre appropriée pour chaque hyperparamètre nommé.
Par exemple, l’espace de recherche suivant indique que le batch_size hyperparamètre peut avoir la valeur 16, 32 ou 64, et que l’hyperparamètre learning_rate peut avoir n’importe quelle valeur d’une distribution normale avec une moyenne de 10 et un écart type de 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),
)