Définir un espace de recherche

Effectué

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) * q
  • QLogUniform(min_value, max_value, q) : retourne une valeur comme round(exp(Uniform(min_value, max_value)) / q) * q
  • QNormal(mu, sigma, q): retourne une valeur telle que round(normal(mu, sigma) / q) * q
  • QLogNormal(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_value
  • LogUniform(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 sigma
  • LogNormal(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),
)