Voir aussi une question similaire sur stats.SE .
En stimulant les algorithmes tels que AdaBoost et LPBoost, il est connu que les apprenants "faibles" à combiner n'ont qu'à mieux performer que la chance d'être utiles, de Wikipedia:
Les classificateurs qu'il utilise peuvent être faibles (c'est-à-dire afficher un taux d'erreur substantiel), mais tant que leurs performances ne sont pas aléatoires (entraînant un taux d'erreur de 0,5 pour la classification binaire), ils amélioreront le modèle final. Même les classificateurs dont le taux d'erreur est supérieur à celui attendu d'un classificateur aléatoire seront utiles, car ils auront des coefficients négatifs dans la combinaison linéaire finale des classificateurs et se comporteront donc comme leurs inverses.
Quels sont les avantages d'utiliser des apprenants faibles plutôt que des apprenants forts? (par exemple, pourquoi ne pas augmenter avec des méthodes d'apprentissage "fortes" - sommes-nous plus enclins à sur-adapter?)
Existe-t-il une sorte de force «optimale» pour les apprenants faibles? Et est-ce lié au nombre d'apprenants dans l'ensemble?
Existe-t-il une théorie pour étayer les réponses à ces questions?
Réponses:
Ainsi, le boosting est un algorithme d'apprentissage, qui peut générer des prédictions de haute précision en utilisant comme sous-programme un autre algorithme, qui à son tour peut générer efficacement des hypothèses légèrement meilleures (par un polynôme inverse) que la devinette aléatoire.
Son principal avantage est la vitesse.
Lorsque Schapire l'a présenté en 1990, il s'agissait d'une percée dans la mesure où il a montré qu'un apprenant en temps polynomial générant des hypothèses avec des erreurs légèrement inférieures à 1/2 peut être transformé en un apprenant en temps polynomial générant des hypothèses avec une erreur arbitrairement petite.
Ainsi, la théorie pour étayer votre question se trouve dans "La force de la faible capacité d'apprentissage" ( pdf ) où il a essentiellement montré que l'apprentissage "fort" et "faible" sont équivalents.
Et peut-être que la réponse à la question initiale est: "il est inutile de construire des apprenants forts quand on peut en construire des plus faibles à moindre coût".
Des articles relativement récents, il y a "Sur l'équivalence d'une faible capacité d'apprentissage et d'une séparabilité linéaire: de nouvelles relaxations et des algorithmes de boosting efficaces" ( pdf ) que je ne comprends pas mais qui semblent liés et qui peuvent intéresser des personnes plus éduquées :)
la source
J'aborderai le surajustement, qui n'a pas encore été mentionné, avec une explication plus intuitive. Votre première question était:
Selon moi, les principales raisons sont les suivantes:
Ce que la stimulation fait est de combiner de nombreuses hypothèses différentes de l'espace d'hypothèses afin que nous nous retrouvions avec une meilleure hypothèse finale. Le grand pouvoir de boosting vient donc de la diversité des hypothèses combinées.
Si nous utilisons un apprenant fort, cette diversité a tendance à diminuer: après chaque itération, il n'y aura pas beaucoup d'erreurs (car le modèle est complexe), ce qui ne fera pas beaucoup changer la nouvelle hypothèse. Avec une hypothèse très similaire, l'ensemble sera très similaire à un modèle complexe unique, qui à son tour a tendance à sur-équiper!
la source
Pour stimuler, nous utilisons principalement des apprenants faibles car ils sont formés plus rapidement que les apprenants forts. Penses-y. Si j'utilise Multi-Layer Neural Network en tant qu'apprenant, alors je dois en former beaucoup. D'un autre côté, un arbre de décision peut être beaucoup plus rapide, alors je peux en former beaucoup.
Disons que j'utilise 100 apprenants. Je forme NN en 100 secondes et l'arbre de décision en 10 secondes. Mon premier boosting avec NN prendra 100 * 100 secondes tandis que le second boosting avec arbre de décision prendra 100 * 10 secondes.
Cela dit, j'ai vu des articles, qui utilisent des apprenants forts pour stimuler. Mais dans ces problèmes, les apprenants forts étaient rapides à mon avis.
J'ai essayé de former MLP sur KDD99 Intrusion Detection Dataset, (4+ Million) en utilisant Weka. Cela a pris plus de 72 heures sur ma machine. Mais le boosting (AdaBoostM1 avec Decision Tree - Decision Stump) n'a pris que 3 heures. Dans ce problème, il est clair que je ne peux pas utiliser le boosting avec un apprenant fort, c'est-à-dire un apprenant qui prend trop de temps.
la source