Définition des plages d'hyperparamètres - Amazon SageMaker

Définition des plages d'hyperparamètres

Le réglage des hyperparamètres trouve les meilleures valeurs d'hyperparamètres pour votre modèle en effectuant des recherches sur un ensemble de valeurs que vous spécifiez pour chacun des hyperparamètres qui sont réglables. Le choix des plages et des hyperparamètres influe grandement sur les performances de votre tâche de réglage. Pour plus d'informations sur le choix des plages et des hyperparamètres, consultez Bonnes pratiques pour le réglage des hyper-paramètres.

Pour définir des plages d'hyperparamètres à l'aide de l'API de bas niveau, spécifiez les noms des hyperparamètres et des plages de valeurs dans le champ ParameterRanges du paramètre HyperParameterTuningJobConfig que vous transmettez à l'opération CreateHyperParameterTuningJob. Le champ ParameterRanges possède trois sous-domaines associés aux plages d'hyperparamètres suivantes : catégorie, entier et continu. Vous pouvez définir jusqu'à 20 hyperparamètres pour les recherches. Chaque valeur d'une plage d'hyperparamètres de catégorie compte pour un hyperparamètre par rapport à la limite. Les plages d'hyperparamètres ont la structure suivante :

"ParameterRanges": { "CategoricalParameterRanges": [ { "Name": "tree_method", "Values": ["auto", "exact", "approx", "hist"] } ], "ContinuousParameterRanges": [ { "Name": "eta", "MaxValue" : "0.5", "MinValue": "0", "ScalingType": "Auto" } ], "IntegerParameterRanges": [ { "Name": "max_depth", "MaxValue": "10", "MinValue": "1", "ScalingType": "Auto" } ] }

Mise à l'échelle des hyperparamètres

Pour les plages d'hyperparamètres de type entier et continu, vous pouvez choisir l'échelle qui doit être utilisée par le réglage des hyperparamètres pour rechercher la plage de valeurs en spécifiant une valeur dans le champ ScalingType de la plage des hyperparamètres. Vous pouvez choisir parmi les types d'échelle suivants :

Auto

Le réglage des hyperparamètres SageMaker choisit la meilleure échelle pour l'hyperparamètre.

Linéaire

Le réglage des hyperparamètres recherche les valeurs dans la plage des hyperparamètres à l'aide d'une échelle linéaire. En général, vous choisissez ce type si la plage de l'ensemble des valeurs, de la valeur la plus basse à la valeur la plus élevée, est relativement petite. En effet, une recherche uniforme des valeurs de la plage vous permettra d'effectuer une exploration raisonnable de l'ensemble de la plage.

Logarithmique

Le réglage des hyper-paramètres recherche les valeurs dans la plage des hyper-paramètres à l'aide d'une échelle logarithmique.

L'échelle logarithmique fonctionne uniquement pour les plages n'ont que des valeurs supérieures à 0.

Choisissez la mise à l'échelle logarithmique lorsque vous effectuez une recherche sur une plage très étendue. Par exemple, si vous procédez au réglage d'un modèle Régler un modèle d'apprentissage linéaire et que vous spécifiez une plage de valeurs entre 0,0001 et 1,0 pour l'hyperparamètre learning_rate, une recherche uniforme sur une échelle logarithmique porte sur un meilleur échantillon de l'ensemble de la plage par rapport à une recherche sur une échelle linéaire. En effet, la recherche sur une échelle linéaire consacrerait, en moyenne, 90 % de votre budget d'entraînement aux valeurs comprises entre 0,1 et 1,0, et seulement 10 % aux valeurs entre 0,0001 et 0,1.

Logarithmique inversée

Le réglage des hyper-paramètres recherche les valeurs dans la plage des hyper-paramètres en utilisant une échelle logarithmique inversée, qui est uniquement prise en charge pour les plages d'hyper-paramètres de type continu. Elle n'est pas prise en charge pour les plages d'hyperparamètres de type entier.

La mise à l'échelle logarithmique inversée fonctionne uniquement pour les plages qui sont entièrement comprises dans la plage 0<=x<1,0.

Choisissez l'échelle logarithmique inversée lorsque vous effectuez une recherche sur une plage très sensible aux petites modifications très proches de 1.

Pour obtenir un exemple de bloc-notes qui utilise la mise à l'échelle des hyperparamètres, veuillez consulter https://github.com/awslabs/amazon-sagemaker-examples/blob/master/hyperparameter_tuning/xgboost_random_log/hpo_xgboost_random_log.ipynb.