Définir un espace de recherche
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) * 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 comme round(Normal(mu, sigma) / q) * qQLogNormal(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_valueLogUniform(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 uniformeNormal(mu, sigma)
: retourne une valeur réelle qui est normalement répartie avec la moyenne mu et l’écart type sigmaLogNormal(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),
)