Renforcer les techniques d'apprentissage automatique : améliorer la précision et réduire les erreurs

Publié: 2025-01-16

Le boosting est une puissante technique d'apprentissage d'ensemble en apprentissage automatique (ML) qui améliore la précision du modèle en réduisant les erreurs. En entraînant des modèles séquentiels pour remédier aux lacunes antérieures, le boosting crée des systèmes prédictifs robustes. Ce guide explique comment fonctionne le boosting ; ses avantages, ses défis et ses applications ; et comment cela se compare à l'ensachage.

Table des matières

  • Qu’est-ce que booster ?
  • Biais vs variance
  • Boosting vs ensachage
  • Comment fonctionne le boosting
  • Types d'algorithmes de boosting
  • Applications du boosting
  • Avantages du boosting
  • Défis et limites du boosting

Qu’est-ce que booster ?

Le boosting est une technique d'apprentissage d'ensemble qui entraîne de nouveaux modèles séquentiels pour corriger les erreurs des modèles précédents dans l'ensemble. Les techniques d'apprentissage d'ensemble sont des moyens d'utiliser plusieurs modèles similaires pour améliorer les performances et la précision. En boosting, les nouveaux modèles sont formés uniquement sur les erreurs antérieures de l'ensemble. Ensuite, les nouveaux modèles rejoignent l’ensemble pour l’aider à fournir des prédictions plus précises. Toute nouvelle entrée est transmise aux modèles et agrégée pour réduire les erreurs sur tous les modèles.

La précision est un concept vaste. Le boosting augmente spécifiquement les performances du modèle en réduisant le biais du modèle (et, dans une moindre mesure, la variance). La variance et le biais sont deux concepts importants du ML que nous aborderons dans la section suivante.

Travaillez plus intelligemment avec Grammarly
Le partenaire d'écriture IA pour tous ceux qui ont du travail à faire

Biais vs variance

Le biais et la variance sont deux propriétés fondamentales de l’apprentissage automatique dans son ensemble. L'objectif de tout algorithme de ML est de réduire la variance et les biais des modèles. Compte tenu de leur importance, nous expliquerons davantage chacun d’eux et pourquoi ils sont généralement en désaccord les uns avec les autres.

Pour expliquer chaque concept, prenons l'exemple de la prévision du prix de vente de maisons à partir de données sur leurs caractéristiques (par exemple, superficie en pieds carrés, nombre de chambres, etc.).

Biais

Le biais est une mesure de l’erreur moyenne d’un modèle. Si une maison s'est réellement vendue pour 400 000 $ et que le modèle prédit 300 000 $, le biais pour ce point de données est de −100 000 $. Faites la moyenne du biais sur l'ensemble de données d'entraînement et vous obtenez le biais d'un modèle.

Le biais résulte généralement du fait que les modèles sont trop simples pour saisir les relations complexes entre les caractéristiques et les résultats. Un modèle trop simple peut apprendre à ne considérer que la superficie en pieds carrés et se trompera systématiquement, même sur les données d'entraînement. Dans le langage du ML, cela s'appelle le sous-ajustement.

Variance

La variance mesure dans quelle mesure les sorties d'un modèle diffèrent en fonction d'entrées similaires. Dans la plupart des cas, les maisons situées dans des quartiers similaires et ayant une superficie, un nombre de chambres et un nombre de salles de bains similaires devraient avoir des prix similaires. Mais un modèle présentant une grande variance peut donner des prix très différents. Pourquoi?

Le modèle peut avoir appris de fausses relations à partir des données de formation (par exemple, en pensant que les numéros de maison affectent le prix). Ces relations fallacieuses peuvent alors noyer les relations utiles dans les données. Généralement, les modèles complexes détectent ces relations non pertinentes, ce que l'on appelle le surajustement.

Compromis biais-variance

Idéalement, vous souhaitez un modèle ML à faible biais et à faible variance qui détectera les véritables relations dans les données, mais rien de plus. Cependant, cela est difficile à réaliser en pratique.

Augmenter la sophistication ou la complexité d'un modèle peut réduire son biais en lui donnant le pouvoir de trouver des modèles plus profonds dans les données. Cependant, ce même pouvoir peut également l’aider à trouver des modèles non pertinents et vice versa, ce qui rend ce compromis biais-variance difficile à résoudre.

Le boosting améliore le biais et la variance

Le boosting est une technique d'apprentissage d'ensemble très populaire car elle peut réduire à la fois le biais et la variance (bien que la réduction de la variance ne soit pas aussi courante).

En corrigeant les erreurs antérieures, le boosting réduit le taux d’erreur moyen et la taille de l’ensemble des modèles, réduisant ainsi les biais.

En utilisant plusieurs modèles, les erreurs des modèles individuels peuvent être annulées, conduisant potentiellement à une variance plus faible.

Boosting vs ensachage

Dans l’apprentissage d’ensemble, les deux techniques les plus courantes sont le boosting et le bagging. Le bagging prend l'ensemble de données d'entraînement, en crée des sous-ensembles aléatoires et entraîne un modèle différent sur chaque sous-ensemble. Ensuite, les modèles sont utilisés conjointement pour faire des prédictions. Cela conduit à de nombreuses différences entre le bagging et le boosting, que nous détaillons ci-dessous.

Ensachage Booster
Formation sur modèle Les modèles sont entraînés en parallèle sur différents sous-ensembles de données. Les modèles sont entraînés séquentiellement, chaque modèle se concentrant sur les erreurs du modèle précédent.
Objectif de réduction des erreurs Réduit la variance Réduit les biais
Algorithmes courants Forêt aléatoire, arbres de décision en sac AdaBoost, augmentation de dégradé, XGBoost
Risque de surapprentissage Risque moindre de surapprentissage grâce à l'échantillonnage aléatoire Risque plus élevé de surapprentissage
Complexité du calcul Inférieur Plus haut

Les deux techniques sont courantes, mais le boosting est le choix le plus populaire car il peut réduire les biais et la variance.

Comment fonctionne le boosting

Voyons comment fonctionne le boosting. Essentiellement, le boosting consiste à entraîner chaque nouveau modèle sur les points de données sur lesquels les modèles précédents se sont trompés. Il y a trois parties :

  1. Pondération des données d'entraînement par erreurs
  2. Entraîner un nouveau modèle sur cet ensemble de données d'erreur pondérée
  3. Ajout du nouveau modèle à l'ensemble

Pour commencer, supposons que nous ayons formé le modèle initial (un ensemble d'un seul).

Pondération des données d'entraînement par erreurs

Nous exécutons les données d'entraînement dans l'ensemble existant et notons les entrées pour lesquelles l'ensemble a donné des prédictions incorrectes. Ensuite, nous créons une version modifiée de l'ensemble de données de formation dans laquelle ces entrées gênantes sont plus représentées ou plus importantes.

Formation du nouveau modèle

Nous utilisons l'ensemble de données modifié que nous avons créé pour former un nouveau modèle, qui est du même type que les autres modèles de l'ensemble. Cependant, ce nouveau modèle se concentre davantage sur les exemples concrets issus des données d’entraînement, il sera donc probablement plus performant sur ces derniers. Cette amélioration des performances en matière d’erreurs constitue un élément important de la réduction des biais.

Intégrer le nouveau modèle

Le modèle nouvellement formé est ajouté à l'ensemble et ses prédictions sont pondérées en fonction de leur précision. En parallèle, de nouvelles entrées sont transmises à chaque modèle de l'ensemble, et les sorties finales de chaque modèle sont pondérées pour obtenir la sortie de l'ensemble.

Pour les tâches de classification (généralement le choix entre deux étiquettes dans les problèmes de boosting), la classe avec la somme la plus élevée de votes pondérés pour elle est choisie comme prédiction de l'ensemble.

Pour les tâches de régression, la prédiction de l'ensemble est la moyenne pondérée de la prédiction de chaque modèle.

À ce stade, le processus peut se répéter si le biais est encore trop élevé.

Types d'algorithmes de boosting

Il existe plusieurs variantes d’algorithmes de boosting, avec de grandes différences entre elles. Les plus populaires sont le boosting adaptatif (AdaBoost), le boosting de gradient, le boosting de gradient extrême (XGBoost) et le boost de chat. Nous les couvrirons tour à tour.

AdaBoost

AdaBoost est très similaire à l'algorithme de boosting que nous avons présenté précédemment : les données d'entraînement qui posent des problèmes pour les ensembles précédents sont davantage pondérées lors de l'entraînement du modèle suivant. AdaBoost était l'un des premiers algorithmes de boosting et est connu pour sa simplicité.

AdaBoost est moins sujet au surajustement que les autres algorithmes de boosting, car les nouveaux modèles voient différentes variations (les points de données concrets étant plus courants) de l'ensemble de données d'entraînement. Mais comparée à d’autres techniques de boosting, elle est plus sensible aux données aberrantes et ne réduit pas autant les biais.

Augmentation du dégradé

Le boosting de dégradé est une approche unique du boosting. Contrairement au boosting adaptatif, les nouveaux modèles ne reçoivent pas de version pondérée en fonction des erreurs de l'ensemble de données d'entraînement. Ils obtiennent l'ensemble de données d'origine. Cependant, au lieu d’essayer de prédire les sorties pour les entrées de l’ensemble de données, ils tentent de prédire le gradient négatif de l’ensemble précédent sur chaque entrée.

Le gradient négatif est essentiellement la direction dans laquelle les pondérations et les prévisions du modèle d'ensemble devraient évoluer pour réduire l'erreur et se rapprocher de la bonne réponse. Les gradients négatifs sont ajoutés (avec un facteur de pondération appliqué) à la prédiction de sortie de l'ensemble précédent pour la rapprocher de l'exactitude.

Le boosting de gradient est bien plus performant qu'AdaBoosting, notamment sur des données complexes. Il y a également davantage d’hyperparamètres à régler, ce qui donne aux utilisateurs plus de contrôle mais augmente également le besoin d’expérimentation.

XGBoost

XGBoost (ou extreme gradient boosting) est une version hautement optimisée du gradient boosting. XGBoost rend la formation et l’inférence beaucoup plus parallèles. XGBoost ajoute également une régularisation (c'est-à-dire des pénalités en cas de complexité) pour éviter le surajustement et gère beaucoup mieux les données manquantes. Enfin, XGBoost est beaucoup plus évolutif pour les grands ensembles de données ou charges de travail.

XGBoost est encore plus performant que l'augmentation de gradient et était l'un des algorithmes de ML les plus populaires dans les années 2010. Mais il est également plus difficile à interpréter et beaucoup plus coûteux à exécuter en termes de calcul.

ChatBoost

CatBoost est une forme d'amélioration de gradient conçue pour fonctionner sur des données catégorielles. Les données catégorielles sont des données dont les valeurs peuvent appartenir à quelques groupes limités. Voici quelques exemples :

  • Oui-non données (par exemple, la maison dispose-t-elle d'un garage ?)
  • Catégories de couleurs (par exemple, rouge, bleu, vert)
  • Catégories de produits (par exemple, appareils électroniques, vêtements, meubles)

Les modèles d'augmentation de gradient ne fonctionnent généralement pas bien avec les données catégorielles, contrairement à CatBoost. CatBoost peut également gérer des données continues, ce qui en fait un autre choix de boosting populaire. Comme pour d’autres modèles d’amélioration du gradient, CatBoost souffre d’une complexité informatique et d’un surajustement.

Applications du boosting

Le boosting peut être appliqué à presque tous les problèmes de ML, car les erreurs et les biais sont souvent plus élevés que nous le souhaiterions. La classification et la régression sont deux des grandes subdivisions du ML, et le boosting s'applique aux deux. Les recommandations de contenu et la détection des fraudes sont deux exemples de problèmes de ML auxquels sont confrontées les entreprises et pour lesquels le boosting peut également aider.

Classification et régression

La classification et la régression sont deux des tâches principales du ML. Un utilisateur peut vouloir prédire si une image contient un chien ou un chat (classification), ou prédire le prix de vente d'une maison (régression). Le boosting fonctionne bien pour les deux tâches, en particulier lorsque les modèles sous-jacents sont faibles ou peu complexes.

Recommandations de contenu

Le boosting améliore les recommandations de contenu (par exemple, les films suggérés par Netflix) en améliorant de manière itérative la précision des prédictions en fonction des préférences de l'utilisateur. Lorsqu'un modèle de recommandation ne parvient pas à capturer certains modèles de visionnage (comme les préférences saisonnières ou les choix dépendants du contexte), le boosting crée des modèles supplémentaires qui se concentrent spécifiquement sur ces modèles manqués. Chaque nouveau modèle de la séquence donne un poids supplémentaire aux préférences des utilisateurs précédemment mal prédites, ce qui entraîne une diminution des erreurs.

Détection de fraude

Dans la détection des fraudes, un cas d'utilisation courant pour les sociétés financières, améliorer les performances en apprenant progressivement des transactions mal classées. Si les modèles initiaux ignorent les schémas de fraude sophistiqués, les nouveaux modèles améliorés ciblent spécifiquement ces cas problématiques. La technique s'adapte particulièrement bien à l'évolution des tactiques de fraude en accordant un poids plus élevé aux erreurs de classification récentes, permettant ainsi au système de maintenir des taux de détection élevés.

Avantages du boosting

Le boosting est excellent pour réduire le biais du modèle et, dans une moindre mesure, la variance. Par rapport à d’autres techniques d’ensemble, elle nécessite moins de données et donne aux utilisateurs plus de contrôle sur le surajustement.

Biais et variance réduits

Un biais élevé signifie que les modèles sont souvent erronés. Le boosting est une excellente technique pour réduire les biais dans les modèles. Puisque chaque modèle se concentre sur la correction des erreurs des modèles précédents, l’ensemble dans son ensemble réduit son taux d’erreur.

La variance réduite a également un effet secondaire : les modèles plus récents peuvent avoir des combinaisons de données d'entraînement différentes, permettant aux erreurs des différents modèles de s'annuler.

Nécessite moins de données

Contrairement à d’autres techniques d’ensemble, le boosting n’a pas besoin d’un énorme ensemble de données pour fonctionner correctement. Étant donné que chaque nouveau modèle se concentre principalement sur les erreurs des anciens, son objectif est restreint et ne nécessite pas une tonne de données. Le nouveau modèle peut utiliser les données d'entraînement existantes et s'entraîner de manière répétée sur les erreurs.

Plus de contrôle sur le surapprentissage

Le boosting comporte quelques hyperparamètres qui contrôlent la contribution de chaque nouveau modèle à la prédiction d'ensemble. En modifiant ces hyperparamètres, les utilisateurs peuvent minimiser l'influence des nouveaux modèles. Cela augmenterait le biais mais réduirait potentiellement la variance, donnant aux utilisateurs le contrôle de l'endroit où ils souhaitent se situer dans le compromis biais-variance.

Défis et limites du boosting

Le boosting a cependant ses réserves. Il nécessite plus de temps de formation et d’utilisation, est sensible aux données aberrantes et nécessite davantage de réglages d’hyperparamètres.

Temps de formation plus long

En boosting, chaque nouveau modèle dépend des erreurs de l'ensemble précédent. Cela signifie que les modèles doivent être formés un par un, ce qui entraîne de longues durées de formation. Un autre inconvénient est que l’entraînement séquentiel signifie que vous ne saurez peut-être pas si le boosting sera efficace tant que vous n’aurez pas entraîné une douzaine de modèles.

Sensibilité aux valeurs aberrantes

En boostant, les modèles plus récents se concentrent uniquement sur les erreurs des modèles précédents. Certaines données aberrantes de l’ensemble de formation qui devraient être ignorées pourraient plutôt devenir le seul objectif des modèles ultérieurs. Cela peut dégrader les performances globales de l’ensemble et faire perdre du temps à l’entraînement. Un traitement minutieux des données peut être nécessaire pour contrecarrer les effets des valeurs aberrantes.

Plus de réglage des hyperparamètres

L’avantage de donner aux utilisateurs plus de contrôle sur le surapprentissage signifie également que les utilisateurs doivent ajuster davantage d’hyperparamètres pour trouver un bon équilibre entre biais et variance. Plusieurs expériences de boosting sont souvent nécessaires, ce qui rend l’entraînement séquentiel encore plus fastidieux. Le boosting nécessite beaucoup de ressources informatiques.