IA 101
Qu’est-ce que le Gradient Boosting ?

Un type courant de modèle d’apprentissage automatique qui s’est avéré extrêmement utile dans les compétitions de science des données est un modèle de boosting de gradient. Le boosting de gradient est fondamentalement le processus de conversion de modèles d’apprentissage faibles en modèles d’apprentissage forts. Mais comment cela est-il accompli exactement ? Examinons de plus près les algorithmes de boosting de gradient et comprenons mieux comment un modèle de boosting de gradient convertit les apprenants faibles en apprenants forts.
Définition du Boosting de Gradient
Cet article vise à vous donner une bonne intuition de ce qu’est le boosting de gradient, sans trop de décomposition des mathématiques qui sous-tendent les algorithmes. Une fois que vous avez une appréciation de la façon dont le boosting de gradient fonctionne à un niveau élevé, vous êtes encouragé à aller plus loin et à explorer les mathématiques qui le rendent possible.
Commençons par définir ce que signifie « booster » un apprenant. Les apprenants faibles sont convertis en apprenants forts en ajustant les propriétés du modèle d’apprentissage. Quel algorithme d’apprentissage est exactement boosté ?
Les modèles de boosting fonctionnent en augmentant un autre modèle d’apprentissage automatique courant, un arbre de décision.
Un modèle d’arbre de décision fonctionne en divisant un ensemble de données en portions de plus en plus petites, et une fois que les sous-ensembles ne peuvent plus être divisés, le résultat est un arbre avec des nœuds et des feuilles. Les nœuds dans un arbre de décision sont les endroits où les décisions concernant les points de données sont prises à l’aide de différents critères de filtrage. Les feuilles dans un arbre de décision sont les points de données qui ont été classés. Les algorithmes d’arbre de décision peuvent gérer à la fois les données numériques et catégorielles, et les divisions dans l’arbre sont basées sur des variables/caractéristiques spécifiques.

Illustration de la façon dont les modèles de boosting sont formés.
Photo : SeattleDataBuy via Wikimedia Commons, CC 4.0 (https://commons.wikimedia.org/wiki/File:Boosting.png)
Un type d’algorithme de boosting est l’algorithme AdaBoost. Les algorithmes AdaBoost commencent par former un modèle d’arbre de décision et attribuer un poids égal à chaque observation. Après que le premier arbre a été évalué pour la précision, les poids pour les différentes observations sont ajustés. Les observations qui étaient faciles à classer voient leur poids réduit, tandis que les observations qui étaient difficiles à classer voient leur poids augmenté. Un deuxième arbre est créé à l’aide de ces poids ajustés, dans le but que les prédictions du deuxième arbre soient plus précises que les prédictions du premier arbre.
Le modèle se compose maintenant des prédictions pour l’arbre d’origine et le nouvel arbre (ou Arbre 1 + Arbre 2). La précision de la classification est évaluée une fois de plus sur la base du nouveau modèle. Un troisième arbre est créé sur la base de l’erreur calculée pour le modèle, et les poids sont à nouveau ajustés. Ce processus se poursuit pendant un nombre donné d’itérations, et le modèle final est un modèle d’ensemble qui utilise la somme pondérée des prédictions faites par tous les arbres précédemment construits.
Le processus décrit ci-dessus utilise des arbres de décision et les prédicteurs de base/modèles, mais une approche de boosting peut être effectuée avec une large gamme de modèles comme de nombreux classifieurs et régresseurs standard. Les concepts clés à comprendre sont que les prédicteurs suivants apprennent des erreurs commises par les précédents et que les prédicteurs sont créés de manière séquentielle.
L’avantage principal des algorithmes de boosting est qu’ils mettent moins de temps pour trouver les prédictions actuelles par rapport à d’autres modèles d’apprentissage automatique. Cependant, il faut faire preuve de prudence lors de l’utilisation des algorithmes de boosting, car ils sont sujets à la surajustement.
Boosting de Gradient
Nous allons maintenant examiner l’un des algorithmes de boosting les plus courants. Les modèles de boosting de gradient (GBM) sont connus pour leur grande précision, et ils augmentent les principes généraux utilisés dans AdaBoost.
La principale différence entre un modèle de boosting de gradient et AdaBoost est que les GBM utilisent une méthode différente pour calculer lesquels des apprenants identifient mal les points de données. AdaBoost calcule où un modèle est sous-performant en examinant les points de données qui sont fortement pondérés. Les GBM utilisent des gradients pour déterminer la précision des apprenants, en appliquant une fonction de perte à un modèle. Les fonctions de perte sont un moyen de mesurer la précision de l’ajustement d’un modèle sur l’ensemble de données, en calculant une erreur et en optimisant le modèle pour réduire cette erreur. Les GBM permettent à l’utilisateur d’optimiser une fonction de perte spécifiée en fonction de son objectif souhaité.
En prenant la fonction de perte la plus courante – l’erreur quadratique moyenne (MSE) – comme exemple, la descente de gradient est utilisée pour mettre à jour les prédictions en fonction d’un taux d’apprentissage prédéfini, dans le but de trouver les valeurs où la perte est minimale.
Pour clarifier :
Nouvelles prédictions du modèle = variables de sortie – anciennes prédictions imparfaites.
Dans un sens plus statistique, les GBM visent à trouver des modèles pertinents dans les résidus d’un modèle, en ajustant le modèle pour s’adapter au modèle et en rapprochant les résidus autant que possible de zéro. Si vous effectuiez une régression sur les prédictions du modèle, les résidus seraient distribués autour de 0 (ajustement parfait), et les GBM trouvent des modèles dans les résidus et mettent à jour le modèle autour de ces modèles.
En d’autres termes, les prédictions sont mises à jour de telle sorte que la somme de tous les résidus soit aussi proche que possible de 0, ce qui signifie que les valeurs prédites seront très proches des valeurs réelles.
Notez qu’une grande variété d’autres fonctions de perte (comme la perte logarithmique) peuvent être utilisées par un GBM. La MSE a été sélectionnée ci-dessus à des fins de simplicité.
Variations sur les Modèles de Boosting de Gradient
Les modèles de boosting de gradient sont des algorithmes gloutons qui sont sujets à la surajustement sur un ensemble de données. Cela peut être évité avec plusieurs méthodes différentes qui peuvent améliorer les performances d’un GBM.
Les GBM peuvent être régularisés avec quatre méthodes différentes : Shrinkage, Contraintes d’arbre, Boosting de gradient stochastique et Apprentissage pénalisé.
Shrinkage
Comme mentionné précédemment, dans les GBM, les prédictions sont additionnées de manière séquentielle. Dans le « Shrinkage », les ajouts de chaque arbre à la somme globale sont ajustés. Des poids sont appliqués qui ralentissent le taux d’apprentissage de l’algorithme, nécessitant que plus d’arbres soient ajoutés au modèle, ce qui améliore généralement la robustesse et les performances du modèle. Le compromis est que le modèle prend plus de temps à former.
Contraintes d’arbre
Contraindre l’arbre avec diverses modifications comme ajouter plus de profondeur à l’arbre ou augmenter le nombre de nœuds ou de feuilles dans l’arbre peut rendre plus difficile pour le modèle la surajustement. Imposer une contrainte sur le nombre minimum d’observations par division a un effet similaire. Une fois de plus, le compromis est que le modèle prend plus de temps à former.
Échantillonnage aléatoire
Les apprenants individuels peuvent être créés à l’aide d’un processus stochastique, basé sur des sous-échantillons aléatoires de l’ensemble de données de formation. Cela a pour effet de réduire les corrélations entre les arbres, ce qui protège contre la surajustement. L’ensemble de données peut être sous-échantillonné avant de créer les arbres ou avant de considérer une division dans l’arbre.
Apprentissage pénalisé
Au-delà de la contrainte du modèle en limitant la structure de l’arbre, il est possible d’utiliser un arbre de régression. Les arbres de régression ont des valeurs numériques attachées à chaque feuille, et celles-ci fonctionnent comme des poids et peuvent être ajustées avec des fonctions de régularisation communes comme la régularisation L1 et L2.












