Qu'entend-on par «apprenant faible»?

34

Quelqu'un peut-il me dire ce que l'on entend par l'expression «apprenant faible»? Est-ce supposé être une hypothèse faible? Je suis confus quant à la relation entre un apprenant faible et un classificateur faible. Les deux sont les mêmes ou y a-t-il une différence?

Dans l'algorithme AdaBoost, T=10. Que veut-on dire par là? Pourquoi choisissons-nous T=10?

Vrushali
la source
1
Bienvenue sur le site, @vrushali. J'ai édité ceci pour rendre l'anglais plus lisse; s'il vous plaît assurez-vous qu'il dit toujours ce que vous voulez dire. De plus, je ne suis pas sûr si la deuxième série de questions (sur adaboost) est la même que la première série de questions; il peut être plus logique de les séparer en différents fils.
gung - Rétablir Monica

Réponses:

35

Un apprenant «faible» (classificateur, prédicteur, etc.) en est un qui fonctionne relativement mal - sa précision est au dessus de la chance, mais à peine. Il y a souvent, mais pas toujours, l’implication supplémentaire que c’est simple en calcul. Un apprenant faible suggère également que de nombreuses instances de l'algorithme sont regroupées (via boosting, bagging, etc.) pour créer un classifieur d'ensemble "fort".

Il est mentionné dans le document original AdaBoost de Freund & Schapire:

La plus surprenante de ces applications est peut-être la dérivation d’une nouvelle application pour "booster", c’est-à-dire convertir un algorithme "faible" d’apprentissage PAC qui fonctionne à peine mieux que la devinette aléatoire en un algorithme avec une précision arbitrairement élevée. - (Freund & Schapire, 1995)

mais je pense que la phrase est en réalité plus ancienne que celle-là - j'ai vu des gens citer un terme (?!) de Michael Kearns des années 1980.

L'exemple classique d'un apprenant faible est un Decision Stump, un arbre de décision à un niveau (1R ou OneR est un autre apprenant faible couramment utilisé; il est assez similaire). Il serait un peu étrange d'appeler un SVM un «apprenant faible», même dans les situations où ses performances sont médiocres, mais il serait parfaitement raisonnable d'appeler une seule souche décisionnelle un apprenant faible, même si ses performances sont étonnamment bonnes.


Adaboost est un algorithme itératif et désigne généralement le nombre d'itérations ou "tours". L'algorithme commence par former / tester un apprenant faible sur les données, en pondérant chaque exemple de manière égale. Les exemples mal classés voient leur poids augmenter pour le ou les prochains rounds, alors que ceux qui sont correctement classés voient leur poids diminué.T

Je ne suis pas sûr qu'il y ait quelque chose de magique à propos de . Dans le document de 1995, T est donné comme paramètre libre (c’est-à-dire que vous le définissez vous-même).T=dixT

Matt Krause
la source
Pour autant que je sache, DecisionStump est différent de 1Rule. Un Decision Stump est toujours un arbre binaire à 1 niveau (pour les attributs nominaux et numériques). 1Rule peut avoir plus de 2 enfants (à la fois nominaux et numériques) et, pour les attributs numériques, un test plus complexe que la division binaire par une valeur. En outre, dans WEKA, il existe 2 implémentations différentes: DecisionStump et OneR.
rapaio
Hmmm ... je suppose que vous avez raison. Le document 1R d'origine indiquait que "Le type de règles examiné dans ce document, appelé 1-Règles, est une règle qui classe un objet sur la base d'un attribut unique (c'est-à-dire qu'il s'agit d'arbres de décision à un niveau."). être mis en œuvre de nombreuses façons différentes. Je vais clarifier cela
Matt Krause
Il existe également une implémentation OneR native: Le package OneR, sur CRAN: CRAN.R-project.org/package=OneR , voici la vignette: cran.r-project.org/web/packages/OneR/vignettes/OneR. html (divulgation complète: je suis l'auteur de ce paquet).
vonjd
7

Un apprenant faible est un apprenant qui, quelle que soit sa répartition sur les données de formation, fera toujours mieux que le hasard, lorsqu'il tente d'étiqueter les données. Faire mieux que le hasard signifie que nous aurons toujours un taux d'erreur inférieur à 1/2.

XY

HXY

Cela améliore éventuellement les apprenants faibles et les convertit en apprenants forts.

Pour plus d'informations: https://youtu.be/zUXJb1hdU0k .

Anish Singh Walia
la source
Bienvenue sur CV. Puisque vous êtes nouveau ici, vous voudrez peut-être faire notre tour , qui contient des informations pour les nouveaux utilisateurs. . Cette réponse ne semble pas apporter quelque chose de nouveau ni améliorer les réponses précédentes. Pensez-vous qu'il manque quelque chose dans les précédents?
TEG - Réintégrer Monica
pourquoi devrait-il être inférieur à 1/2. Si le taux d'erreur est supérieur à 1/2, il doit également s'agir d'un classifieur faible.
Code Pope
@CodePope, j'ai compris votre point de vue, mais en réalité un "apprenant faible" est formellement défini en ces termes. Je conviens que tout modèle comportant une erreur supérieure à 50% est également pauvre et faible. Mais en parlant de définitions formelles telles que définies par les scientifiques, un faible apprenant est celui qui a une erreur inférieure à 1/2 ou 50%.
Anish Singh Walia
1

Un apprenant faible est identique à un classificateur faible ou à un prédicteur faible. L'idée est que vous utilisiez un classificateur qui est, eh bien ... pas si bon, mais au moins meilleur que le hasard. L'avantage est que le classificateur sera robuste en surajustement. Bien sûr, vous n’utilisez pas un seul mais un grand ensemble, chacun légèrement supérieur à l’aléatoire. La manière exacte dont vous les sélectionnez / combinez dépend de la méthodologie / de l'algorithme, par exemple AdaBoost.

En pratique, en tant que classificateur faible, vous utilisez quelque chose comme un simple seuil pour une seule caractéristique. Si la fonctionnalité est supérieure au seuil, vous prédisez qu'elle appartient aux positifs, sinon vous décidez qu'elle appartient aux négatifs. Pas sûr du T = 10, car il n'y a pas de contexte, mais je peux supposer que c'est un exemple de seuillage de certaines fonctionnalités.

iliasfl
la source