Siehe auch eine ähnliche Frage zu stats.SE .
Bei Boosting- Algorithmen wie AdaBoost und LPBoost ist bekannt, dass die zu kombinierenden "schwachen" Lernenden nur bessere Leistungen erbringen müssen als der Zufall, um nützlich zu sein.
Die verwendeten Klassifizierer können schwach sein (dh eine erhebliche Fehlerrate aufweisen), aber solange ihre Leistung nicht zufällig ist (was zu einer Fehlerrate von 0,5 für die binäre Klassifizierung führt), verbessern sie das endgültige Modell. Sogar Klassifizierer mit einer höheren Fehlerrate als von einem Zufallsklassifizierer erwartet, sind nützlich, da sie in der endgültigen linearen Kombination von Klassifizierern negative Koeffizienten aufweisen und sich daher wie ihre Umkehrungen verhalten.
Was sind die Vorteile von schwachen Lernenden gegenüber starken Lernenden? (zB warum nicht mit "starken" Lernmethoden aufladen - sind wir anfälliger für Überanpassung?)
Gibt es eine Art "optimale" Stärke für die schwachen Lernenden? Und hängt dies mit der Anzahl der Lernenden im Ensemble zusammen?
Gibt es eine Theorie, um die Antworten auf diese Fragen zu stützen?
Antworten:
Boosten ist also ein Lernalgorithmus, der unter Verwendung eines anderen Algorithmus als Subroutine hochgenaue Vorhersagen erzeugen kann, die wiederum Hypothesen nur geringfügig besser (durch ein inverses Polynom) erzeugen können als zufälliges Erraten.
Der Hauptvorteil ist die Geschwindigkeit.
Als Schapire es 1990 vorstellte, war es ein Durchbruch, als gezeigt wurde, dass ein Polynom-Zeitlerner, der Hypothesen mit Fehlern von etwas weniger als 1/2 erzeugt, in einen Polynom-Zeitlerner umgewandelt werden kann, der Hypothesen mit einem willkürlich kleinen Fehler erzeugt.
Die Theorie, die Ihre Frage stützt, ist "Die Stärke der schwachen Lernfähigkeit" ( pdf ), wo er im Grunde zeigte, dass das "starke" und das "schwache" Lernen gleichwertig sind.
Und vielleicht lautet die Antwort auf die ursprüngliche Frage: "Es macht keinen Sinn, starke Lerner zu konstruieren, wenn Sie schwache billiger konstruieren können."
In den jüngsten Veröffentlichungen heißt es: "Über die Äquivalenz von schwacher Lernfähigkeit und linearer Trennbarkeit: Neue Relaxations- und effiziente Verstärkungsalgorithmen" ( pdf ), die ich nicht verstehe, aber die verwandt zu sein scheint und die für besser ausgebildete Menschen von Interesse sein könnten :)
quelle
Ich werde die noch nicht erwähnte Überanpassung mit einer intuitiveren Erklärung behandeln. Ihre erste Frage war:
Die Hauptgründe sind meines Erachtens:
Boosten bedeutet, viele verschiedene Hypothesen aus dem Hypothesenraum zu kombinieren , um eine bessere endgültige Hypothese zu erhalten. Die große Kraft der Steigerung ergibt sich daher aus der Vielfalt der Hypothese zusammen.
Wenn wir einen starken Lernenden verwenden, nimmt diese Vielfalt tendenziell ab: Nach jeder Iteration treten nicht viele Fehler auf (da das Modell komplex ist), wodurch die neue Hypothese nicht wesentlich geändert werden kann. Mit einer sehr ähnlichen Hypothese wird das Ensemble einem einzelnen komplexen Modell sehr ähnlich sein, das wiederum zu Überanpassung neigt!
quelle
Beim Boosten setzen wir vor allem schwache Lernende ein, da diese im Vergleich zu starken Lernenden schneller trainiert werden. Denk darüber nach. Wenn ich als Lerner Multi-Layer Neural Network benutze, muss ich viele davon trainieren. Andererseits kann ein Entscheidungsbaum viel schneller sein, dann kann ich viele von ihnen trainieren.
Angenommen, ich benutze 100 Lernende. Ich trainiere NN in 100 Sekunden und Entscheidungsbaum in 10 Sekunden. Mein erstes Boosten mit NN dauert 100 * 100 Sekunden, während das zweite Boosten mit Entscheidungsbaum 100 * 10 Sekunden dauert.
Das heißt, ich habe Artikel gesehen, die starke Lernende beim Boosten einsetzen. Aber in diesen Problemen waren meiner Meinung nach starke Lerner schnell.
Ich habe versucht, MLP mit dem KDD99 Intrusion Detection Dataset (4+ Millionen) mithilfe von Weka zu trainieren. Es dauerte mehr als 72 Stunden auf meiner Maschine. Das Boosten (AdaBoostM1 mit Decision Tree - Decision Stump) dauerte jedoch nur 3 Stunden. Bei diesem Problem ist es klar, dass ich Boosten bei einem starken Lernenden nicht anwenden kann, das ist ein Lernender, der zu viel Zeit in Anspruch nimmt.
quelle