Algorithme AdaBoost

La traduction de l'article a été préparée à la veille du début du cours avancé "Mathématiques pour la science des données" .



introduction


L'algorithme AdaBoost peut être utilisé pour améliorer les performances de tout algorithme d'apprentissage automatique. L'apprentissage automatique est devenu un outil puissant pour faire des prédictions basées sur de grandes quantités de données. Il est devenu si populaire aujourd'hui que les applications d' apprentissage automatique trouvent leur application même dans les tâches quotidiennes. Un des exemples les plus courants est celui des recommandations de produits basées sur des achats antérieurs effectués par un client. L'apprentissage automatique, souvent appelé analyse prédictive ou modélisation prédictive, peut être défini comme la capacité des ordinateurs à apprendre sans programmation explicite. L'apprentissage automatique utilise des algorithmes prédéfinis pour analyser les données d'entrée afin de faire des prédictions basées sur certains critères.

Qu'est-ce que l'algorithme AdaBoost?


Dans l'apprentissage automatique, le boost est nécessaire pour convertir les classificateurs faibles en classificateurs forts. Un algorithme ou classificateur d'apprentissage faible est un algorithme d'apprentissage qui fonctionne mieux que la devinette aléatoire, et il fonctionnera bien en cas de recyclage, car avec un grand nombre de classificateurs faibles, tout classificateur faible fonctionnera mieux que l'échantillonnage aléatoire. En tant que classificateur faible, l'habituel est souvent utilisé thresholdselon un certain critère. Si le signe est plus élevé threshold(valeur seuil) que ce qui avait été prévu, il se réfère à la zone positive, sinon - au négatif.

AdaBoost signifie «Boosting adaptatif» ou boosting adaptatif. Il transforme les algorithmes d'apprentissage faibles en algorithmes forts pour résoudre les problèmes de classification.

L'équation finale pour la classification peut être la suivante:



Ici f m est le m-ème classificateur faible, où m est responsable du poids correspondant.

Comment fonctionne l'algorithme AdaBoost?


AdaBoost peut être utilisé pour améliorer les performances des algorithmes d' apprentissage automatique . Il fonctionne mieux avec des algorithmes d'apprentissage faibles, de sorte que ces modèles peuvent atteindre une précision bien supérieure à l'aléatoire lors de la résolution du problème de classification. Les algorithmes les plus couramment utilisés avec AdaBoost sont des arbres de décision à un niveau . Un algorithme d'apprentissage faible est un classificateur ou algorithme de prédiction qui fonctionne relativement mal en termes de précision. De plus, nous pouvons dire que les classificateurs faibles sont faciles à calculer, vous pouvez donc combiner de nombreuses entités de l'algorithme pour créer un classificateur plus fort en utilisant le boosting.

Si nous avons un ensemble de données dans lequel n est le nombre de points et



Où -1 est la classe négative et 1 est le positif. Ensuite, le poids de chaque point sera initialisé, comme indiqué ci-dessous:



Chaque m dans l'expression suivante variera de 1 à M.
Vous devez d'abord sélectionner un classificateur faible avec la plus petite erreur de classification pondérée, en appliquant le classificateur à l'ensemble de données.



Ensuite, nous calculons le poids du mième classificateur faible, comme indiqué ci-dessous:



Le poids est positif pour tout classificateur avec une précision supérieure à 50%. Plus le poids est élevé, plus le classificateur est précis. Le poids devient négatif lorsque la précision tombe en dessous de 50%. Les prédictions peuvent être combinées en inversant le signe. Ainsi, un classificateur avec une précision de 40% peut être converti en un classificateur avec une précision de 60%. Ainsi, le classificateur contribuera à la prédiction finale, même si cela a fonctionné pire que la supposition aléatoire. Cependant, le résultat final ne changera en aucune façon sous l'influence d'un classificateur dont la précision est de 50%.

L'exposant dans le numérateur sera toujours supérieur à 1 en cas de classification incorrecte du classificateur avec un poids positif. Après l'itération, le poids des objets mal classés augmentera. Les classificateurs avec un poids négatif se comporteront de la même manière. Il y a une différence dans l'inversion des signes: la classification correcte deviendra incorrecte. La prévision finale peut être calculée en tenant compte de la contribution de chaque classificateur et en calculant la somme de leurs prévisions pondérées.

Le poids de chaque point sera mis à jour comme suit:



Ici Z m est un paramètre de normalisation. Il est nécessaire de s'assurer que la somme de tous les poids d'instance est 1.

Où l'algorithme AdaBoost est-il utilisé?


AdaBoost peut être utilisé pour la reconnaissance faciale, car il s'agit d'un algorithme standard pour de telles tâches. Il utilise une cascade de rejet composée de plusieurs couches de classificateurs. Lorsque la zone de reconnaissance ne détecte aucun visage sur aucun calque, elle est rejetée. Le premier classificateur de la région rejette la région négative pour minimiser le coût de calcul. Bien qu'AdaBoost soit utilisé pour combiner des classificateurs faibles, les principes AdaBoost sont également utilisés pour trouver les meilleures fonctionnalités pour chaque couche de la cascade.

Avantages et inconvénients de l'algorithme AdaBoost


L'un des nombreux avantages de l'algorithme AdaBoost est qu'il est facile, rapide et facile à programmer. De plus, il est suffisamment flexible pour le combiner avec n'importe quel algorithme d'apprentissage automatique sans définir de paramètres, à l'exception du paramètre T.Il est extensible à des tâches d'apprentissage plus compliquées que la classification binaire, et est suffisamment universel car il peut être utilisé avec des données numériques ou textuelles.

AdaBoost présente également plusieurs inconvénients, au moins le fait que cet algorithme est prouvé empiriquement et est très vulnérable au bruit uniformément réparti. Des classificateurs faibles s'ils sont trop faibles peuvent conduire à de mauvais résultats et à un recyclage.

Exemple d'algorithme AdaBoost


Par exemple, prenons la campagne d'admission de l'université, où un candidat peut être admis à l'université ou non. Ici, vous pouvez prendre diverses données quantitatives et qualitatives. Par exemple, le résultat de l'admission, qui peut être exprimé par «oui» ou «non», peut être quantifié, tandis que les compétences et les passe-temps des étudiants peuvent être déterminés qualitativement. Nous pouvons facilement trouver la classification correcte des données de formation. Supposons que si un étudiant se montre bien dans une certaine discipline, il sera accepté avec une probabilité plus élevée. Cependant, prédire avec une grande précision est une question compliquée et c'est ici que les classificateurs faibles aident.

Conclusion


AdaBoost aide à choisir un ensemble de formation pour chaque classificateur, qui est formé sur la base des résultats du classificateur précédent. Quant à la combinaison des résultats, l'algorithme détermine le poids à attribuer à chaque classificateur en fonction de la réponse reçue. Il combine des classificateurs faibles pour créer des erreurs de classification fortes et correctes, et est également un algorithme de renforcement extrêmement efficace pour les problèmes de classification binaire.



En savoir plus sur le cours.



All Articles