Warum sind die Lernenden beim Boosten „schwach“?


28

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?


Schwache Lernende vermeiden auch eine Überanpassung an Trainingsdaten
Aman Deep Gautam,

Antworten:


15

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 :)


1
+1 nette Referenzen. Die Antwort lautet also vielleicht: "Es macht keinen Sinn, starke Lerner zu konstruieren, wenn Sie schwache billiger konstruieren können"?
tdc

Ja, hört sich so an - ich habe die Antwort aktualisiert! Wenn ich das richtig verstehe, hängt das auch nicht von der Stärke Ihrer schwachen Lernenden ab - sie müssen nur "etwas" besser als zufällig sein.
Andreister

1
Ich denke, was Sie beide wirklich meinen, ist: Es hat keinen Sinn, teure starke Lernende zu konstruieren, wenn ähnliche oder sogar bessere Fähigkeiten einfach durch die Kombination vieler billiger schwacher Lernender erreicht werden können . In der Tat, wenn die Fertigkeiten, die starke Lernende erlangten, viel höher waren als die Fertigkeiten, die schwache Lernende erlangten, dann konnte ich es durchaus verstehen, starke Lernende zu konstruieren ...
Antoine

9

Ich werde die noch nicht erwähnte Überanpassung mit einer intuitiveren Erklärung behandeln. Ihre erste Frage war:

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?)

Die Hauptgründe sind meines Erachtens:

  • Geschwindigkeit , wie in den anderen Antworten ziemlich gut beschrieben;
  • Verbesserung der Genauigkeit : Wenn Sie bereits einen starken Lernenden haben, sind die Vorteile des Boostings weniger relevant.
  • Vermeiden Sie eine Überanpassung , wie Sie vermutet haben. Denken Sie so darüber nach:

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!


4
Das ist die wahre Antwort.
Matthew Drury

6

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.


1
"Ich habe Artikel gesehen, die starke Lernende beim Boosten einsetzen" - irgendwelche Referenzen?
tdc
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.