Définir un espace de recherche

Effectué

L’ensemble de valeurs d’hyperparamètre tenté pendant le réglage d’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 Choix dans une liste de valeurs explicites, que vous pouvez définir sous la forme d’une liste Python (Choice(values=[10,20,30])), d’une plage (Choice(values=range(1,10))) ou d’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 à partir des distributions discrètes suivantes :

  • QUniform(min_value, max_value, q) : retourne une valeur comme 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 comme round(Normal(mu, sigma) / q) * q
  • QLogNormal(mu, sigma, q) : retourne une valeur comme round(exp(Normal(mu, sigma)) / q) * q

Hyperparamètres continus

Certains hyperparamètres sont continus. En d’autres termes, vous pouvez utiliser la valeur de votre choix sur une échelle, ce qui entraîne un nombre infini de possibilités. Pour définir un espace de recherche pour ces types de valeur, 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 calculée en fonction de exp(uniform(min_value, max_value)), de sorte que le logarithme de la valeur de retour présente une distribution uniforme
  • Normal(mu, sigma) : retourne une valeur réelle qui est normalement répartie avec la moyenne mu et l’écart type sigma
  • LogNormal(mu, sigma) : retourne une valeur calculée en fonction de exp(normal(mu, sigma)), de sorte que le logarithme de la valeur de retour est normalement réparti

Définition d’un espace de recherche

Pour définir un espace de recherche pour le réglage 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 l’hyperparamètre batch_size peut avoir la valeur 16, 32 ou 64, et 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),
)