Mode de fonctionnement du réglage d'hyperparamètres - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Mode de fonctionnement du réglage d'hyperparamètres

Lorsque vous créez des systèmes de machine learning complexes, tels que des réseaux neuronaux deep learning, il n'est pas possible d'explorer toutes les combinaisons. Le réglage des hyperparamètres peut accélérer votre productivité en testant de nombreuses variantes d'un modèle. Il recherche automatiquement le meilleur modèle en se concentrant sur les combinaisons les plus prometteuses des valeurs des hyperparamètres dans les plages que vous spécifiez. Pour obtenir de bons résultats, vous devez choisir les bonnes plages à explorer.

Utilisez le guide de référence d'API pour comprendre comment interagir avec le réglage des hyperparamètres. Les exemples présentés sur cette page se trouvent dans les API HyperParameterTuningJobConfig et HyperbandStrategyConfig.

Note

Étant donné que l'algorithme lui-même est stochastique, il est possible que le modèle de réglage des hyperparamètres ne parviendra pas à converger vers la meilleure réponse. Cela peut se produire même si la meilleure combinaison de valeurs possible figure dans les plages que vous choisissez.

Lorsque vous utilisez la recherche par quadrillage, le réglage des hyperparamètres sélectionne des combinaisons de valeurs parmi la plage de valeurs catégorielles que vous spécifiez lors de la création de la tâche. Seuls les paramètres catégoriels sont pris en charge lors de l'utilisation de la stratégie de recherche par quadrillage. Vous n'avez pas besoin de spécifier les MaxNumberOfTrainingJobs. Le nombre de tâches d'entraînement créées par la tâche de réglage sera automatiquement calculé comme étant le nombre total de combinaisons catégorielles distinctes possibles. Si elle est spécifiée, la valeur de MaxNumberOfTrainingJobs doit être égale au nombre total de combinaisons catégorielles distinctes possibles.

Lorsque vous utilisez la recherche aléatoire, le réglage des hyperparamètres choisit une combinaison aléatoire de valeurs dans les plages que vous spécifiez pour les hyperparamètres pour chaque tâche d'entraînement lancée. Comme le choix des valeurs des hyperparamètres ne repose pas sur les résultats des tâches d'entraînement précédentes, vous pouvez exécuter le nombre maximal de tâches d'entraînement simultanées sans affecter la performance du réglage.

Pour un exemple de bloc-notes utilisant la recherche aléatoire, consultez le bloc-notes Recherche aléatoire et mise à l'échelle des hyperparamètres avec SageMaker XGBoost et Automatic Model Tuning.

Optimisation bayésienne

L'optimisation bayésienne traite le réglage des hyperparamètres comme un problème de régression. À partir d'un ensemble de caractéristiques d'entrée (les hyperparamètres), le réglage des hyperparamètres optimise un modèle pour la métrique que vous choisissez. Pour résoudre un problème de régression, le réglage des hyperparamètres permet d'évaluer les combinaisons d'hyperparamètres qui sont susceptibles de donner les meilleurs résultats et exécute les tâches d'entraînement pour tester ces valeurs. Après avoir testé un ensemble de valeurs d'hyperparamètres, le réglage des hyperparamètres utilise la régression pour choisir l'ensemble suivant de valeurs d'hyperparamètres à tester.

Le réglage des hyperparamètres utilise une SageMaker implémentation Amazon de l'optimisation bayésienne.

Lorsque vous choisissez les meilleurs hyperparamètres pour la tâche d'entraînement suivante, le réglage des hyperparamètres tient compte de tous les éléments connus concernant ce problème. Il choisit parfois une combinaison de valeurs d'hyperparamètres proche de celle ayant permis d'obtenir la meilleure tâche d'entraînement précédente afin d'améliorer les performances de façon incrémentielle. Ceci permet au réglage des hyperparamètres d'exploiter les meilleurs résultats connus. Ou bien il choisit un ensemble de valeurs d'hyperparamètres éloigné de ce qu'il a déjà essayé. Cela lui permet d'explorer la plage des valeurs d'hyperparamètres pour essayer de trouver de nouvelles zones encore méconnues. Le compromis explorer/exploiter est courant dans de nombreux problèmes de machine learning.

Pour plus d'informations sur les optimisations bayésiennes, consultez les ressources suivantes :

Hyperband

Hyperband est une stratégie de réglage basée sur la multifidélité qui réalloue dynamiquement les ressources. Hyperband utilise les résultats intermédiaires et finaux des tâches d'entraînement pour réallouer des époques aux configurations d'hyperparamètres bien utilisées et arrêter automatiquement celles qui ne sont pas performantes. Il s'adapte également parfaitement à l'utilisation de nombreuses tâches d'entraînement parallèles. Ces fonctionnalités peuvent considérablement accélérer le réglage des hyperparamètres par rapport aux stratégies de recherche aléatoire et d'optimisation bayésienne.

Hyperband ne doit être utilisé que pour régler des algorithmes itératifs qui publient des résultats à différents niveaux de ressources. Par exemple, Hyperband peut être utilisé pour régler un réseau neuronal pour la classification des images qui publie des métriques de précision après chaque époque.

Pour plus d'informations sur Hyperband, consultez les liens suivants :

Hyperband avec arrêt anticipé

Les tâches d'entraînement peuvent être arrêtées de manière anticipée lorsqu'elles ont peu de chances d'améliorer la métrique objective de la tâche de réglage des hyperparamètres. Cela aide à réduire le temps de calcul et à éviter un surajustement de votre modèle. Hyperband utilise un mécanisme interne avancé pour appliquer un arrêt anticipé. Ainsi, le paramètre TrainingJobEarlyStoppingType dans l'API HyperParameterTuningJobConfig doit être défini sur OFF lors de l'utilisation de la fonctionnalité d'arrêt anticipé interne d'Hyperband.

Note

Le réglage des hyperparamètres n'améliorera pas forcément votre modèle. Il s'agit d'un outil avancé pour créer des solutions automatisées. En tant que tel, il doit être considéré comme faisant partie du processus de développement scientifique.