Classification multi-taguée

imageBonjour, habrozhiteli! Nous avons décidé de citer un extrait du livre d'Andrei Burkov , Machine Learning Without Extra Words , consacré à la classification.

Pour décrire l'image sur la figure, plusieurs étiquettes peuvent être utilisées simultanément: «forêt de conifères», «montagnes», «route». Si le nombre de valeurs possibles pour les étiquettes est important, mais qu'elles ont toutes la même nature que les étiquettes, chaque échantillon étiqueté peut être converti en plusieurs données étiquetées, une pour chaque étiquette. Toutes ces nouvelles données auront les mêmes vecteurs de caractéristiques et une seule étiquette. Par conséquent, la tâche devient un problème de classification multiclasse. Il peut être résolu en utilisant la stratégie «un contre tous». La seule différence avec le problème habituel de classification multiclasse est l'apparition d'un nouveau hyperparamètre: le seuil. Si le score de similitude pour une étiquette est supérieur à une valeur seuil, cette étiquette est affectée au vecteur d'entité en entrée. Dans ce scénario, plusieurs étiquettes peuvent être affectées à un vecteur caractéristique.La valeur seuil est sélectionnée à l'aide de l'ensemble de contrôle.

Pour résoudre le problème de classification avec de nombreuses étiquettes, on peut également appliquer des algorithmes qui sont naturellement transformés en multiclasses (arbres de décision, régression logistique, réseaux de neurones, etc.). Ils renvoient une estimation pour chaque classe, afin que nous puissions définir un seuil puis attribuer plusieurs étiquettes à un vecteur d'entité pour lequel le score de proximité dépasse ce seuil.

Les réseaux de neurones peuvent naturellement être formés aux classifications multi-étiquettes en utilisant l'entropie croisée binaire comme fonction de coût. La couche de sortie du réseau neuronal dans ce cas a un nœud par étiquette. Chaque nœud de la couche de sortie a une fonction d'activation sigmoïde. En conséquence, chaque étiquette l est binaireimageoù l = 1, ..., L et i = 1, ..., N.L'entropie croisée binaire détermine la probabilité imageque l'échantillon xi ait le label l, est défini comme le image

critère de minimisation - une moyenne simple de tous les membres de l'entropie croisée binaire dans tous les échantillons d'apprentissage. et toutes leurs balises.

Dans les cas où le nombre de valeurs d'étiquette possibles est petit, vous pouvez essayer de convertir le problème de classification avec de nombreuses étiquettes en un problème de classification multiclasse. Imaginez le problème suivant. Vous devez attribuer deux types d'étiquettes aux images. Les étiquettes du premier type peuvent avoir deux significations possibles: { photo, peinture }; les marques du deuxième type peuvent avoir trois significations possibles: { portrait, paysage, autre}. Pour chaque combinaison de deux classes source, vous pouvez créer une nouvelle classe factice, par exemple:

image

Maintenant, nous avons les mêmes données balisées, mais nous avons remplacé l'ensemble de vraies étiquettes par une étiquette fictive avec des valeurs de 1 à 6. En pratique, cette approche donne de bons résultats lorsqu'il n'y a pas trop de combinaisons possibles de classes. Sinon, beaucoup plus de données de formation doivent être utilisées pour compenser l'augmentation de l'ensemble des classes.

Le principal avantage de cette dernière approche est que les étiquettes restent corrélées, contrairement aux méthodes décrites ci-dessus, qui prédisent chaque étiquette indépendamment les unes des autres. Dans de nombreuses tâches, la corrélation entre les étiquettes peut être un facteur important. Par exemple, imaginez que vous souhaitez classer les e-mails comme spam et non- spam, et en même temps que ordinaire et important. Vous voudrez probablement exclure des prévisions telles que [ spam, important ].

7.5. Formation d'ensemble


Les algorithmes fondamentaux que nous avons traités au chapitre 3 ont leurs limites. En raison de sa simplicité, ils ne peuvent parfois pas créer un modèle suffisamment efficace pour votre tâche. Dans de tels cas, vous pouvez essayer d'utiliser des réseaux de neurones profonds. Cependant, dans la pratique, les réseaux de neurones profonds nécessitent une quantité importante de données étiquetées, que vous n'avez peut-être pas. Une autre façon d'augmenter l'efficacité d'algorithmes d'apprentissage simples consiste à utiliser la formation d'ensemble .

La formation d'ensemble est un paradigme de formation qui est basé sur la formation non seulement d'un modèle super-correct, mais d'un grand nombre de modèles de faible précision et combinant les prévisions données par ces modèles faibles pour obtenir un métamodèle plus correct .

Les modèles de faible précision sont généralement formés par des algorithmes d'apprentissage faibles qui ne sont pas en mesure de former des modèles complexes et, par conséquent, affichent une vitesse élevée aux étapes de formation et de prévision. Le plus souvent, l'algorithme d'apprentissage de l'arbre de décision est utilisé comme algorithme faible, ce qui arrête généralement de casser l'ensemble d'apprentissage après plusieurs itérations. Le résultat est des arbres petits et pas très réguliers, mais, comme le dit l'idée de former l'ensemble, si les arbres ne sont pas identiques et que chaque arbre est au moins légèrement meilleur que la supposition aléatoire, nous pouvons obtenir une grande précision en combinant un grand nombre de ces arbres.

Pour obtenir les prévisions finales pour l'entrée x, les prévisions de tous les modèles faibles sont combinées à l'aide d'une méthode de vote pondérée. La forme spécifique de pondération des votes dépend de l'algorithme, mais l'essentiel n'en dépend pas: si, collectivement, les modèles faibles prédisent que l'e-mail est du spam, nous attribuons l'étiquette de spam à l'échantillon x . Les deux principales méthodes de formation des ensembles sont le boosting et l' ensachage (agrégation). Les traductions des termes boosting et bagging sont inexactes et peu habituelles.



7.5.1. Boosting et ensachage


La méthode de boosting consiste à utiliser les données de formation initiales et à créer de manière itérative plusieurs modèles à l'aide d'un algorithme faible.

Chaque nouveau modèle diffère des précédents en ce que, en le construisant, un algorithme faible tente de «corriger» les erreurs commises par les modèles précédents. Le modèle d'ensemble final est une combinaison de ces nombreux modèles de construction itérative faibles.

L'essence de l'ensachage est de créer de nombreuses «copies» des données d'entraînement (chaque copie est légèrement différente des autres), puis d'appliquer un algorithme faible à chaque copie afin d'obtenir plusieurs modèles faibles, puis de les combiner. Un algorithme d'apprentissage automatique largement utilisé et efficace basé sur l'idée de l'ensachage est une forêt aléatoire .

7.5.2. Forêt aléatoire


L'algorithme d'ensachage «classique» fonctionne comme suit. B échantillons aléatoires sont créés à partir de l'ensemble d'apprentissage existant image(pour chaque b = 1, ..., B) et un imagemodèle d' imagearbre de décision est construit sur la base de chaque échantillon . Pour obtenir un échantillon imagepour certains b, un échantillon est fait avec remplacement . Autrement dit, un échantillon vide est d'abord créé, puis un échantillon aléatoire est sélectionné dans l'ensemble d'apprentissage, et sa copie exacte est placée dans image, tandis que l'échantillon lui-même reste dans l'ensemble d'apprentissage d'origine. La sélection des données se poursuit jusqu'à ce que la condition soit remplie. image

Suite à la formation, des arbres de décision B sont obtenus . La prévision du nouvel échantillon x , en cas de régression, est déterminée comme la moyenne de B prévisions

image

ou par un vote majoritaire en cas de classement.

La forêt aléatoire n'a qu'une seule différence avec l'ensachage classique. Il utilise un algorithme d'apprentissage d'arbre modifié qui, à chaque fractionnement du processus d'apprentissage, vérifie un sous-ensemble aléatoire de fonctionnalités. Ceci est fait afin d'éliminer la corrélation entre les arbres: si une ou plusieurs entités ont une grande capacité prédictive, de nombreux arbres les choisiront pour fractionner les données. Cela conduira à l'apparition dans la "forêt" d'un grand nombre d'arbres corrélés. La corrélation des signes avec une capacité prédictive élevée empêche la précision de la prédiction d'augmenter. La grande efficacité de l'ensemble des modèles s'explique par le fait que les bons modèles sont plus susceptibles d'être d'accord avec la même prévision, et les mauvais modèles ne sont pas susceptibles d'être d'accord et de donner des prévisions différentes. La corrélation rendra les modèles pauvres plus susceptibles d'être d'accord,ce qui faussera le schéma de vote ou affectera la moyenne.

Les hyperparamètres les plus importants pour le réglage sont le nombre d'arbres B et la taille d'un sous-ensemble aléatoire d'entités qui doivent être prises en compte pour chaque fractionnement.
La forêt aléatoire est l'un des algorithmes d'apprentissage d'ensemble les plus utilisés. Qu'est-ce qui détermine son efficacité? La raison en est qu'en utilisant plusieurs échantillons de l'ensemble de données d'origine, nous réduisons la variance du modèle final. N'oubliez pas qu'une faible variance signifie une faible prédisposition à se recycler. Le recyclage se produit lorsque le modèle essaie d'expliquer de petites variations dans l'ensemble de données, car l'ensemble de données n'est qu'un petit échantillon de tous les exemples possibles du phénomène que nous essayons de simuler. Dans le cas d'une approche infructueuse de la formation de l'ensemble d'entraînement, certains artefacts indésirables (mais inévitables) peuvent y tomber: du bruit, des données anormales et excessivement ou insuffisamment représentatives. En créant plusieurs échantillons aléatoires avec le remplacement de l'ensemble d'apprentissage, nous réduisons l'influence de ces artefacts.

7.5.3. Augmentation du gradient


Un autre algorithme de formation d'ensemble efficace basé sur l'idée de boosting est le boosting de gradient. Tout d'abord, considérez l'utilisation de l'augmentation du gradient dans la régression. Nous allons commencer à construire un modèle de régression efficace avec un modèle constant image(comme nous l'avons fait dans ID3):
image

Modifiez ensuite les étiquettes dans tous les échantillons i = 1, ..., N dans le jeu d'apprentissage:

image

imageest appelé le reste et est le nouveau libellé de l'échantillon image

. Nous utilisons maintenant l'ensemble d'apprentissage modifié avec les restes au lieu des libellés d'origine pour créer un nouveau modèle de l'arbre de décision. imageLe modèle de stimulation est maintenant défini comme imageoù α est la vitesse d'apprentissage (hyperparamètre).

Ensuite, nous recalculons les résidus à l'aide de l'équation 7.2, remplaçons à nouveau les étiquettes dans les données d'apprentissage, enseignons un nouveau modèle de l'arbre de décision, imageredéfinissons le modèle de boost pendant que imagenous répétons le processus, jusqu'à ce que nous combinions le nombre maximum prédéterminé M d' arbres.

Comprenons intuitivement ce qui se passe ici. En calculant les résidus, nous déterminons dans quelle mesure (ou mal) l'objectif de chaque échantillon d'apprentissage est prédit par le modèle actuel f. Ensuite, nous formons un autre arbre pour corriger les erreurs du modèle actuel (c'est pourquoi nous utilisons des restes au lieu d'étiquettes réelles) et ajoutons un nouvel arbre au modèle existant avec un certain poids α. Par conséquent, chaque nouvel arbre ajouté au modèle corrige partiellement les erreurs faites par les arbres précédents. Le processus se poursuit jusqu'à ce que le nombre maximum M (un autre hyperparamètre) des arbres soit combiné.

Essayons maintenant de répondre à la question de savoir pourquoi cet algorithme est appelé renforcement du gradient. En boosting de gradient, nous ne calculons pas le gradient, contrairement à ce que nous avons fait au chapitre 4, en résolvant le problème de régression linéaire. Pour voir les similitudes entre l'augmentation du gradient et la descente du gradient, rappelez-vous pourquoi nous avons calculé le gradient en régression linéaire: pour trouver la direction des valeurs des paramètres afin de minimiser la fonction de coût MSE. Le gradient montre la direction, mais ne montre pas jusqu'où aller dans cette direction, donc à chaque itération, nous avons fait un petit pas, puis déterminé à nouveau la direction. La même chose se produit en boosting de gradient, mais au lieu de calculer directement le gradient, nous utilisons son estimation sous forme de résidus: ils montrent comment le modèle doit être ajusté pour réduire l'erreur (résiduelle).

En boosting de gradient, trois hyperparamètres principaux sont disponibles pour le réglage: le nombre d'arbres, la vitesse d'apprentissage et la profondeur des arbres. Les trois affectent la précision du modèle. La profondeur des arbres affecte également la vitesse d'apprentissage et de prévision: plus la profondeur est petite, plus vite.

On peut montrer que l'apprentissage par résidus optimise le modèle global f pour la norme d'erreur standard. Ici, vous pouvez voir la différence par rapport à l'ensachage: le renforcement réduit le biais (ou le manque d'éducation) au lieu de la variance. En conséquence, le boosting est soumis à un recyclage. Cependant, en ajustant la profondeur et le nombre d'arbres, le recyclage peut être largement évité.

L'amplification du dégradé est similaire pour les tâches de notation, mais les étapes sont légèrement différentes. Prenons le cas de la classification binaire. Supposons qu'il existe M arbres de décision de régression. Par analogie avec la régression logistique, la prévision de l'ensemble des arbres de décision est modélisée à l'aide de la fonction sigmoïde:

image

imageest l'arbre de régression.

Et encore une fois, comme dans la régression logistique, lorsque l'on essaie de trouver un modèle f maximisant image, le principe du maximum de vraisemblance est appliqué. De même, pour éviter un débordement numérique, nous maximisons la somme des logarithmes de vraisemblance, plutôt que le produit de la vraisemblance.

L'algorithme commence par le modèle constant initial imageimage(on peut montrer qu'une telle initialisation est optimale pour la fonction sigmoïde.) Ensuite, à chaque itération m, un nouvel arbre fm est ajouté au modèle. Pour trouver le meilleur arbre imagePour trouver le meilleur arbre image, la dérivée partielle du imagemodèle actuel est d' abord calculée pour chaque i = 1, ..., N:
image

où f est le modèle du classificateur d'ensemble construit sur l'itération précédente m - 1. Pour calculer image, nous devons trouver les dérivées de par imagerapport à f pour tout i. Notez que la imagedérivée par rapport à f du bon terme dans l'équation précédente est
image

Ensuite, l'ensemble d'apprentissage est transformé en remplaçant l'étiquette d'origine de la imagedérivée partielle correspondante image, et une nouvelle arborescence est construite sur la base de l'ensemble d'apprentissage converti. imageEnsuite, l'étape de mise à jour optimale est déterminée imagecomme suit :
image

A la fin de l'itération m, nous mettons à jour le modèle d'ensemble en imageajoutant un nouvel arbreimage
image

Les itérations se poursuivent jusqu'à ce que la condition m = M soit remplie, après quoi la formation est terminée et le modèle d'ensemble f est obtenu.

L'amplification du gradient est l'un des algorithmes d'apprentissage automatique les plus puissants. Non seulement parce qu'il crée des modèles très précis, mais aussi parce qu'il est capable de traiter d'énormes ensembles de données avec des millions de données et de fonctionnalités. En règle générale, sa précision est supérieure à celle d'une forêt aléatoire, mais en raison de sa nature cohérente, elle peut apprendre beaucoup plus lentement.

All Articles