O que se entende por 'aprendiz fraco'?

34

Alguém pode me dizer o que significa a frase "aprendiz fraco"? É suposto ser uma hipótese fraca? Estou confuso sobre a relação entre um aprendiz fraco e um classificador fraco. Os dois são iguais ou há alguma diferença?

No algoritmo adaboost T=10,. O que isso significa? Por que nós selecionamos T=10?

vrushali
fonte
1
Bem-vindo ao site, @vrushali. Eu editei isso para tornar o inglês mais suave; por favor, verifique se ele ainda diz o que você quer dizer. Além disso, não tenho certeza se o segundo conjunto de perguntas (sobre adaboost) é o mesmo que o primeiro conjunto de perguntas; pode fazer mais sentido separá-los em segmentos diferentes.
gung - Restabelece Monica

Respostas:

35

Um aluno 'fraco' (classificador, preditor etc.) é apenas aquele que apresenta desempenho relativamente fraco - sua precisão está acima do acaso, mas apenas por pouco. Existe frequentemente, mas nem sempre, a implicação adicional de que é computacionalmente simples. O aluno fraco também sugere que muitas instâncias do algoritmo estão sendo agrupadas (por meio de reforço, empacotamento etc.) para criar um classificador de conjunto "forte".

É mencionado no artigo original do AdaBoost de Freund & Schapire:

Talvez a mais surpreendente dessas aplicações seja a derivação de uma nova aplicação para "impulsionar", ou seja, converter um algoritmo de aprendizado de PAC "fraco" que executa apenas um pouco melhor do que a adivinhação aleatória em um com precisão arbitrariamente alta. - (Freund e Schapire, 1995)

mas acho que a frase é realmente mais antiga que isso - já vi pessoas citarem um artigo (?!) de Michael Kearns, da década de 1980.

O exemplo clássico de um aprendiz fraco é um coto de decisão, uma árvore de decisão de um nível (1R ou OneR é outro aprendiz fraco comumente usado; é bastante semelhante). Seria um pouco estranho chamar um SVM de 'aprendiz fraco', mesmo em situações em que ele tenha um desempenho ruim, mas seria perfeitamente razoável chamar uma única decisão de coto de aprendiz fraco, mesmo quando o desempenho fosse surpreendentemente bom por si só.


O Adaboost é um algoritmo iterativo e Tnormalmente denota o número de iterações ou "rodadas". O algoritmo começa treinando / testando um aluno fraco nos dados, ponderando cada exemplo igualmente. Os exemplos que são classificados incorretamente aumentam seus pesos para a (s) próxima (s) rodada (s), enquanto aqueles classificados corretamente recebem seus pesos diminuídos.

Não sei se há algo mágico sobre T=10. In the 1995 paper, T is given as a free parameter (i.e., you set it yourself).

Matt Krause
fonte
As far as I know a DecisionStump is different from 1Rule. A Decision Stump is always a binary 1-level tree (for both nominal and numeric attributes). 1Rule can have more than 2 children (for both nominal and numeric) and for numeric attributes have a more complex test than binary split by a value. Also, in WEKA there are 2 different implementations: DecisionStump and OneR.
rapaio
Hmmm...I guess you're right. The original 1R paper says "The specific kind of rules examined in this paper, called 1-Rules, are rules that classify an object on the basis of a single attribute (i.e., they are 1-level decision trees." but decision trees can be implemented in a lot of different ways. I'll edit clear that up.
Matt Krause
There is also a native OneR implementation: The OneR package, on CRAN: CRAN.R-project.org/package=OneR, here is the vignette: cran.r-project.org/web/packages/OneR/vignettes/OneR.html (full disclosure: I am the author of this package).
vonjd
7

Weak learner is a learner that no matter what the distribution over the training data is will always do better than chance, when it tries to label the data. Doing better than chance means we are always going to have an error rate which is less than 1/2.

This means that the learner algorithm is always going to learn something, not always completely accurate i.e., it is weak and poor when it comes to learning the relationships between X (inputs) and Y (target).

But then comes boosting, in which we start by looking over the training data and generate some distributions, then find some set of Weak Learners (classifiers) with low errors, and each learner outputs some hypothesis, Hx. This generates some Y (class label), and at the end combines the set of good hypotheses to generate a final hypothesis.

This eventually improves the weak learners and converts them to strong learners.

For more information: https://youtu.be/zUXJb1hdU0k.

Anish Singh Walia
fonte
Welcome to CV. Since you're new here, you may want to take our tour, which has information for new users. . This answer does not seem to provide something new or improve over the previous answers. Do you think there is something missing in the previous ones?
T.E.G. - Reinstate Monica
why should it be below 1/2. If the error rate is above 1/2 it should be weak classifier, too.
Code Pope
@CodePope , I got your point, but actually a "weak learner" is formally defined in such terms. I agree any model which has error more than 50% is also poor and weak as well. But speaking of formal definitions as defined by scientists, a weak learner is one which has error less than 1/2 or 50%.
Anish Singh Walia
1

Weak learner is the same as weak classifier, or weak predictor. The idea is that you use a classifier that is, well..., not that good, but at least better than random. The benefit is that the classifier will be robust in overfitting. Of course you don't use just one but a large set of those, each one slightly better than random. The exact way you select/combine them depends on the methodology/algorithm, e.g. AdaBoost.

In practice as weak classifier you use something like a simple threshold on a single feature. If feature is above the threshold then you predict it belongs to the positives otherwise you decide it belongs to the negatives. Not sure about the T=10, since there is no context, but I can assume it is an example on thresholding some feature.

iliasfl
fonte