Date de publication : 23 juillet 2024
Contributeurs : Ivan Belcic, Cole Stryker
Le réglage des hyperparamètres consiste à identifier et à sélectionner les meilleurs hyperparamètres à utiliser pour entraîner un modèle de machine learning. Un réglage efficace des hyperparamètres permet de minimiser la fonction de perte des modèles de machine learning, ce qui veut dire que ces derniers sont entraînés pour être aussi précis que possible.
Le réglage des hyperparamètres est une pratique expérimentale : chaque itération teste différentes valeurs jusqu’à ce que les meilleures soient identifiées. Ce processus est essentiel pour garantir la performance du modèle, car les hyperparamètres régissent son processus d’apprentissage. Parmi les exemples d’hyperparamètres, citons le nombre de neurones dans un réseau neuronal, le taux d’apprentissage des modèles d’IA générative ou encore la taille du noyau d’une machine à vecteurs de support.
Un bon réglage des hyperparamètres permet d’améliorer la performance globale du modèle de machine learning en fonction des indicateurs associés à la tâche prévue. C’est pourquoi le réglage des hyperparamètres est également connu sous le nom d’optimisation des hyperparamètres.
Les hyperparamètres sont des variables de configuration que les data scientists définissent à l’avance pour gérer le processus d’entraînement d’un modèle de machine learning. L’IA générative et d’autres modèles probabilistes appliquent les enseignements tirés des données d’entraînement pour prédire le résultat le plus probable d’une tâche. Trouver la bonne combinaison d’hyperparamètres est essentiel pour optimiser la performance des modèles d’apprentissage supervisé et d’apprentissage non supervisé.
Les hyperparamètres de régularisation contrôlent la capacité ou la flexibilité du modèle, c'est-à-dire la marge de manœuvre dont il dispose lors de l'interprétation des données. Si vous appliquez une main trop légère le modèle ne sera pas assez précis pour faire de bonnes prédictions. Si vous allez trop loin, le modèle sera surajusté : loesqu'il s'adapte trop à ses données d'entraînement et finit par devenir trop spécialisé pour une utilisation dans le monde réel.
La principale différence entre les hyperparamètres et les paramètres des modèles en science des données est que pendant que les modèles apprennent ou estiment des paramètres à partir des jeux de données d'entraînement qu'ils ingèrent, les data scientists définissent les hyperparamètres de l'algorithme du modèle avant le début du processus d'entraînement. Les modèles continuent de mettre à jour les paramètres au fur et à mesure qu'ils fonctionnent, tandis que les valeurs optimales des hyperparamètres d'un modèle sont identifiées et définies à l'avance.
Le réglage des hyperparamètres est important, car il jette les bases de la structure d’un modèle, de l’efficacité de l’entraînement et des performances. Les configurations optimales des hyperparamètres permettent d'obtenir de bonnes performances du modèle dans le monde réel. Les opérations de grands modèles de langage (LLMOps) mettent l’accent sur l’efficacité du réglage, en insistant sur la réduction des besoins en puissance de calcul.
Le réglage des hyperparamètres vise à concilier biais et variance. Le biais est la divergence entre les prévisions du modèle et la réalité. Si le réglage est insuffisant, les modèles échouent à identifier les relations clés entre les points de données et sont incapables de tirer les conclusions nécessaires pour être précis.
La variance est la sensibilité des modèles aux nouvelles données. Pour être fiables, les modèles doivent fournir des résultats cohérents lorsqu’ils passent de leurs données d’entraînement vers d’autres jeux de données. Néanmoins, les modèles présentant un niveau de variance élevé sont trop complexes : trop ajustés à leurs jeux de données d’entraînement, ils peinent à gérer les nouvelles données.
Les modèles à faible biais sont précis, tandis que les modèles à faible variance sont cohérents. Un bon réglage des hyperparamètres permet d’optimiser la création du meilleur modèle pour la tâche, d’optimiser l’efficacité des ressources de calcul pendant l’entraînement.
Chaque algorithme d'apprentissage automatique privilégie son propre ensemble d'hyperparamètres, et il n'est pas nécessaire de les maximiser dans tous les cas. Parfois, une approche plus prudente lors du réglage des hyperparamètres permet d’obtenir de meilleures performances.
Les réseaux neuronaux s'inspirent du cerveau humain et sont composés de nœuds interconnectés qui s'envoient des signaux. En général, voici quelques-uns des hyperparamètres les plus courants pour la formation des modèles de réseaux neuronaux :
Le taux d’apprentissage définit la vitesse à laquelle un modèle ajuste ses paramètres à chaque itération. Ces ajustements sont appelés des étapes. Un taux d'apprentissage élevé signifie qu'un modèle s'ajustera plus rapidement, mais avec le risque d'une performance instable et d'une dérive des données. En revanche, si un faible taux d'apprentissage est plus long et nécessite plus de données, il rend plus probable que les data scientists identifient la perte minimale d'un modèle. L’optimisation de la descente de gradient est un exemple d’indicateur d’entraînement nécessitant un taux d’apprentissage défini.
La décroissance du taux d'apprentissage définit la vitesse à laquelle le taux d'apprentissage d'un réseau diminue au fil du temps, permettant ainsi au modèle d'apprendre plus rapidement. La progression d'entraînement d'un algorithme depuis son activation initiale jusqu'à ses performances idéales est connue sous le nom de convergence.
La taille des lots définit la quantité d’échantillons que le modèle calculera avant de mettre à jour ses paramètres. Cela a un effet significatif sur l’efficacité des calculs et sur la précision du processus d’entraînement. En soi, une taille de lot plus élevée nuit aux performances globales, mais l’ajustement du taux d’apprentissage en fonction de la taille du lot peut atténuer cette perte.
Le nombre de couches cachées dans un réseau neuronal détermine sa profondeur, ce qui affecte sa complexité et sa capacité d'apprentissage. Moins de couches permettent un modèle plus simple et plus rapide, mais plus de couches, comme dans les réseaux d'apprentissage profond, permet une meilleure classification des données d’entrée. L'identification de la valeur optimale des hyperparamètres à partir de toutes les combinaisons possibles est un compromis entre la rapidité et la précision.
Le nombre de nœuds ou de neurones par couche définit la largeur du modèle. Plus il y a de nœuds ou de neurones par couche, plus le modèle est large et mieux il est capable de décrire des relations complexes entre les points de données.
La dynamique est la mesure dans laquelle les modèles mettent à jour les paramètres dans la même direction que les itérations précédentes, plutôt que d’inverser le cap. La plupart des data scientists commencent par une valeur d'hyperparamètre inférieure pour la dynamique, puis la modifient à la hausse si nécessaire pour maintenir le cap du modèle en tenant compte des données d'entraînement.
Les époques sont un hyperparamètre qui définit le nombre de fois où un modèle est exposé à l'ensemble de son jeu de données d'entraînement pendant le processus d'entraînement. Une plus grande exposition peut conduire à une amélioration des performances, mais présente un risque de surajustement.
La fonction d’activation confère une non-linéarité aux modèles pour leur permettre de gérer les jeux de données plus complexes. Les modèles non linéaires peuvent se généraliser pour s’adapter à une plus grande variété de données.
La machine à vecteurs de support (SVM) est un algorithme de machine learning spécialisé dans la classification des données, la regression et la détection des données aberrantes. Elle possède ses propres hyperparamètres essentiels :
C est le rapport entre la marge d’erreur acceptable et le nombre d’erreurs résultant lorsqu’un modèle agit comme un classificateur de données. Une valeur C plus faible établit une limite de décision fluide avec une tolérance aux erreurs plus élevée et des performances plus génériques, mais avec un risque de classification incorrecte des données. Parallèlement, une valeur C élevée crée une limite de décision nette pour des résultats d’entraînement plus précis, mais avec un surajustement potentiel.
Le noyau est une fonction qui établit la nature des relations entre les points de données et les sépare en groupes en conséquence. Selon le noyau utilisé, les points de données afficheront différentes relations, ce qui peut fortement affecter la performance globale du modèle SVM. Les grains linéaires, polynomiaux, radiaux et sigmoïdes sont quelques-uns des noyaux les plus couramment utilisés. Les noyaux linéaires sont plus simples et idéaux pour les données facilement séparables, tandis que les noyaux non linéaires sont meilleurs pour les jeux de données plus complexes.
Gamma définit le niveau d'influence des vecteurs de soutien sur la frontière de décision. Les vecteurs de support sont les points de données les plus proches de l’hyperplan : la frontière entre les groupes de données. Les valeurs élevées tirent une forte influence des vecteurs proches, tandis que les valeurs faibles limitent l’influence des vecteurs plus distants. Une valeur de gamma trop élevée peut entraîner un surajustement, tandis qu'une valeur trop faible peut brouiller les limites de la décision..
XGBoost signifie « amplification du gradient extrême ». Il s'agit d'un algorithme d'ensemble qui associe les prédictions de plusieurs modèles plus faibles, appelés Decision trees, pour un résultat plus précis. Les algorithmes optimisés par gradient ont tendance à surpasser les modèles de forêts d’arbres décisionnels, un autre type d'algorithme d'ensemble composé de plusieurs Decision trees.
Les hyperparamètres les plus importants pour XGBoost sont les suivants :
learning_rate est similaire à l’hyperparamètre du taux d’apprentissage utilisé par les réseaux neuronaux. Cette fonction contrôle le niveau de correction effectué à chaque cycle d'entraînement. Les valeurs potentielles vont de 0 à 1, 0,3 étant la valeur par défaut.
n_estimators définit le nombre d’arbres dans le modèle. Cet hyperparamètre est connu sous le nom de num_boost_rounds dans le XGBoost original, tandis que la populaire API Python scikit-learn a introduit le nom n_estimators.
max_depth détermine l'architecture des Decision Trees, en fixant le nombre maximum de nœuds des Decision Trees à chaque feuille - le classificateur final. Un plus grand nombre de nœuds permet une classification des données plus nuancée, tandis que les arbres plus petits évitent facilement les surajustements.
min_child_weight s’agit du poids minimum (l’importance d’une classe donnée dans le processus global d’entraînement du modèle) nécessaire pour générer un nouvel arbre. Des poids minimums plus faibles créent plus d’arbres, mais avec un surajustement potentiel, tandis que des poids plus élevés réduisent la complexité en nécessitant plus de données pour diviser les arbres.
Le sous-échantillon définit le pourcentage d’échantillons de données utilisés lors de chaque cycle d’entraînement et colsample_bytree fixe le pourcentage de fonctionnalités à utiliser dans la construction d’arbres.
Le réglage des hyperparamètres s’articule autour de la fonction objective, qui analyse un groupe, ou tuple, d’hyperparamètres et calcule la perte projetée. Le réglage optimal des hyperparamètres permet de minimiser les pertes en fonction des mesures choisies. Les résultats sont confirmés par une validation croisée, qui mesure leur degré de généralisation à d'autres jeux de données en dehors de l'instance de formation spécifique.
Les data scientists disposent de diverses méthodes de réglage des hyperparamètres, chacune ayant ses forces et ses faiblesses respectives. Le réglage des hyperparamètres peut être effectué manuellement ou automatisé dans le cadre d’une stratégie AutoML (Automated Machine Learning) .
La recherche par grille est une méthode de réglage des hyperparamètres complète et exhaustive. Une fois que les data scientists ont établi toutes les valeurs possibles pour chaque hyperparamètre, une recherche par grille construit des modèles pour chaque configuration possible de ces valeurs d’hyperparamètres discrets. Ces modèles sont chacun évalués en termes de performances et comparés les uns aux autres, le meilleur modèle étant finalement sélectionné pour l'entraînement.
De cette manière, la recherche de grille est similaire à la force brute sur un code PIN, en saisissant chaque combinaison potentielle de nombres jusqu'à ce que la séquence correcte soit découverte. Bien qu'elle permette aux data scientists de prendre en compte toutes les configurations possibles dans l'espace hyperparamètre, la recherche de grille est inefficace et gourmande en ressources de calcul.
La recherche aléatoire diffère de la recherche par grille dans la mesure où les data scientists fournissent des distributions statistiques au lieu de valeurs discrètes pour chaque hyperparamètre. Une recherche aléatoire extrait des échantillons de chaque gamme et construit des modèles pour chaque combinaison. Au cours de plusieurs itérations, les modèles sont pondérés les uns par rapport aux autres jusqu’à ce que le meilleur modèle soit trouvé.
La recherche aléatoire est préférable à la recherche par grille dans les situations où l'espace de recherche des hyperparamètres contient de grandes distributions : il faudrait simplement trop d'efforts pour tester chaque valeur discrète. Les algorithmes de recherche aléatoire peuvent renvoyer des résultats comparables à ceux d'une recherche pR grille en beaucoup moins de temps, bien qu'il ne soit pas garanti de trouver la configuration d'hyperparamètres la plus optimale.
L’optimisation bayésienne est un algorithme d’optimisation basé sur un modèle séquentiel (SMBO, acronyme anglais de Sequentielle Model Optimization) dans lequel chaque itération de test améliore la méthode d’échantillonnage de la prochaine. Les recherches par grille et les recherches aléatoires peuvent être effectuées simultanément, mais chaque test est effectué indépendamment : les data scientists ne peuvent pas utiliser ce qu’ils ont appris pour éclairer les tests ultérieurs.
Sur la base de tests antérieurs, l'optimisation bayésienne sélectionne de manière probabiliste un nouvel ensemble de valeurs d'hyperparamètres susceptibles de fournir de meilleurs résultats. Le modèle probabiliste est appelé modèle de substitution de la fonction objective d’origine. Les modèles de substitution étant efficaces en termes de calcul, ils sont généralement mis à jour et améliorés chaque fois que la fonction objectif est exécutée.
Plus il est efficace pour prédire les hyperparamètres optimaux, plus le processus est rapide et moins de tests de fonctions objectifs sont nécessaires. Cela rend l’optimisation bayésienne beaucoup plus efficace que les autres méthodes, car vous ne perdez pas de temps sur des combinaisons inappropriées de valeurs d’hyperparamètres.
Le processus consistant à déterminer statistiquement la relation entre un résultat (dans ce cas, la meilleure performance du modèle) et un ensemble de variables est connu sous le nom d'analyse de régression. Les processus gaussiens sont l'un des SMBO les plus populaires auprès des data scientists.
Lancé en 2016, Hyperband (lien externe à ibm.com) est conçu pour améliorer la recherche aléatoire en tronquant l'utilisation de configurations d'entraînement qui ne donnent pas de bons résultats tout en allouant plus de ressources aux configurations positives.
Cet « arrêt anticipé » est obtenu par des réductions successives de moitié, un processus qui réduit l'ensemble des configurations en éliminant la moitié la moins performante après chaque cycle d'apprentissage. Les 50 % les plus performants de chaque lot sont transférés dans l’itération suivante jusqu'à ce qu'il ne reste plus qu'une configuration optimale d'hyperparamètres.
Un studio d’IA nouvelle génération conçu pour permettre aux entreprises d’entraîner, de valider, d’optimiser et de déployer des modèles d’intelligence artificielle est désormais disponible.
Explorez la bibliothèque de modèles de fondation d’IBM sur la plateforme watsonx pour déployer efficacement l’IA générative au sein de votre entreprise.
IBM Granite est une famille de modèles d'intelligence artificielle (IA) spécialement conçus de toutes pièces pour les entreprises pour garantir la confiance et l'évolutivité des applications pilotées par l'IA. Les modèles Granite open source sont disponibles dès aujourd’hui.