En apprentissage automatique, le réglage des hyperparamètres, également connu sous le nom d'optimisation des hyperparamètres, est le problème qui consiste à choisir un ensemble d'hyperparamètres optimaux pour un algorithme d'apprentissage. Un hyperparamètre est un paramètre dont la valeur contrôle le processus d'apprentissage et doit être configuré avant le début de l'entraînement, contrairement aux paramètres du modèle qui sont appris pendant l'entraînement. L'objectif est de déterminer l'ensemble d'hyperparamètres qui produit un modèle optimal, minimisant une fonction de perte prédéfinie sur un ensemble de données donné. La fonction objectif prend un ensemble d'hyperparamètres et renvoie la perte associée, et la validation croisée est souvent utilisée pour estimer la performance de généralisation et guider le processus de sélection.
Le réglage des hyperparamètres est distinct de l'entraînement du modèle. Alors que l'entraînement ajuste les poids internes à l'aide d'algorithmes d'optimisation comme les variantes de la descente de gradient stochastique ou l'optimiseur Adam, le réglage opère à un niveau supérieur, définissant des valeurs pour des éléments tels que le programme de taux d'apprentissage, le nombre de couches dans un réseau de neurones, ou la force du abandon. Un réglage efficace est essentiel pour obtenir de bonnes performances, car des hyperparamètres mal choisis peuvent conduire à un sous-apprentissage ou à un sur-apprentissage, indépendamment de la qualité des données d'entraînement ou de la sophistication de l'architecture du modèle.
Recherche par grille
La méthode traditionnelle d'optimisation des hyperparamètres est la recherche par grille, ou balayage de paramètres, qui recherche de manière exhaustive un sous-ensemble spécifié manuellement de l'espace des hyperparamètres. Un algorithme de recherche par grille est guidé par une métrique de performance, généralement mesurée par validation croisée sur l'ensemble d'entraînement ou par évaluation sur un ensemble de validation retenu. Étant donné que l'espace des paramètres peut inclure des valeurs réelles ou non bornées, des bornes manuelles et une discrétisation sont souvent nécessaires.
Par exemple, une machine à vecteurs de support à marge souple typique avec un noyau RBF a au moins deux hyperparamètres : une constante de régularisation C et un hyperparamètre de noyau γ. Les deux sont continus, donc la recherche par grille sélectionne un ensemble fini de valeurs pour chacun, comme C ∈ {10, 100, 1000} et γ ∈ {0,1, 0,2, 0,5, 1,0}. Elle entraîne ensuite une SVM avec chaque paire (C, γ) dans le produit cartésien et évalue la performance. La recherche par grille souffre de la malédiction de la dimensionnalité, mais elle est souvent parallélisable de manière triviale car les réglages des hyperparamètres sont indépendants.
Recherche aléatoire
La recherche aléatoire remplace l'énumération exhaustive en sélectionnant des combinaisons d'hyperparamètres de manière aléatoire. Elle peut être appliquée à des espaces discrets, continus et mixtes. Un avantage par rapport à la recherche par grille est que la recherche aléatoire peut explorer beaucoup plus de valeurs pour les hyperparamètres continus. Elle peut surpasser la recherche par grille, surtout lorsque seulement un petit nombre d'hyperparamètres affectent significativement la performance finale, une situation connue sous le nom de faible dimensionnalité intrinsèque. La recherche aléatoire est également parallélisable de manière triviale et permet d'inclure des connaissances préalables en spécifiant des distributions d'échantillonnage. Malgré sa simplicité, elle reste une référence importante pour comparer de nouvelles méthodes d'optimisation des hyperparamètres.
Optimisation bayésienne
L'optimisation bayésienne est une méthode d'optimisation globale pour les fonctions boîte noire bruitées. Appliquée au réglage des hyperparamètres, elle construit un modèle probabiliste de la fonction qui mappe les valeurs des hyperparamètres à l'objectif évalué sur un ensemble de validation. En évaluant de manière itérative des configurations prometteuses basées sur le modèle actuel et en le mettant à jour, l'optimisation bayésienne vise à recueillir des observations qui révèlent des informations sur la fonction et l'emplacement de son optimum. Elle équilibre l'exploration (hyperparamètres avec des résultats incertains) et l'exploitation (hyperparamètres attendus près de l'optimum). En pratique, l'optimisation bayésienne obtient souvent de meilleurs résultats en moins d'évaluations que la recherche par grille ou la recherche aléatoire, grâce à sa capacité à raisonner sur la qualité des expériences avant de les exécuter.
Optimisation par gradient
Pour certains algorithmes d'apprentissage spécifiques, il est possible de calculer le gradient par rapport aux hyperparamètres et de les optimiser en utilisant la descente de gradient. La première utilisation de ces techniques s'est concentrée sur les réseaux de neurones, et les méthodes ont depuis été étendues à des modèles comme les machines à vecteurs de support et la régression logistique. Une approche différencie les étapes d'un algorithme d'optimisation itératif en utilisant la différenciation automatique. Des travaux plus récents utilisent le théorème de la fonction implicite pour calculer les hypergradients et proposent une approximation stable de l'inverse du Hessien, s'adaptant à des millions d'hyperparamètres avec une mémoire constante.
Une autre approche entraîne un hyperréseau pour approximer la fonction de meilleure réponse, ce qui peut gérer des hyperparamètres discrets. Les réseaux à auto-réglage offrent une version économe en mémoire en choisissant une représentation compacte pour l'hyperréseau. Plus récemment, Δ-STN a amélioré cela en reparamétrant l'hyperréseau pour accélérer l'entraînement et obtenir une meilleure approximation du Jacobien de meilleure réponse. Les méthodes basées sur le gradient peuvent également optimiser des hyperparamètres discrets en adoptant une relaxation continue, comme largement utilisé dans la recherche d'architecture neuronale.
Optimisation évolutionnaire
L'optimisation évolutionnaire est une méthodologie pour l'optimisation globale de fonctions boîte noire bruitées, utilisant des algorithmes évolutionnaires pour rechercher l'espace des hyperparamètres. Elle suit un processus inspiré de l'évolution biologique : créer une population initiale de solutions aléatoires (généralement plus de 100 tuples d'hyperparamètres), évaluer leur aptitude (par exemple, la précision de validation croisée à 10 plis), les classer par aptitude, puis générer une nouvelle population par sélection, croisement et mutation. Ce processus itératif continue jusqu'à ce qu'un critère d'arrêt soit atteint. Les méthodes évolutionnaires sont robustes et peuvent gérer des espaces de recherche complexes et non différentiables, ce qui les rend adaptées au réglage des hyperparamètres dans divers modèles de apprentissage automatique, y compris ceux utilisés dans le apprentissage profond et les grands modèles de langage.
Considérations pratiques
Le réglage des hyperparamètres est une étape critique dans le développement des systèmes d'intelligence artificielle. Le choix de la méthode dépend du budget de calcul, de la dimensionnalité de l'espace des hyperparamètres et de la nature du modèle. Pour les modèles coûteux, tels que les transformeurs utilisés dans l'IA générative, l'optimisation bayésienne est souvent préférée en raison de son efficacité en échantillons. Pour les modèles plus simples ou lorsque les ressources parallèles sont abondantes, la recherche aléatoire ou la recherche par grille peuvent suffire. Les outils et cadres pour le réglage sont largement disponibles, et la recherche continue sur des méthodes plus efficaces, y compris celles qui s'intègrent avec le normalisation par lots et d'autres techniques d'entraînement.