Intuitive Erklärungen der Unterschiede zwischen Gradient Boosting Trees (GBM) und Adaboost

48

Ich versuche die Unterschiede zwischen GBM und Adaboost zu verstehen.

Folgendes habe ich bisher verstanden:

  • Es gibt beide Boosting-Algorithmen, die aus den Fehlern des Vorgängermodells lernen und schließlich eine gewichtete Summe der Modelle bilden.
  • GBM und Adaboost sind sich bis auf ihre Verlustfunktionen ziemlich ähnlich.

Trotzdem fällt es mir schwer, Unterschiede zu erkennen. Kann mir jemand intuitive Erklärungen geben?

Hee Kyung Yoon
quelle

Antworten:

34

Ich fand, dass diese Einführung einige intuitive Erklärungen liefern kann.

  • Beim Gradienten-Boosting werden "Mängel" (bestehender schwacher Lernender) durch Gradienten identifiziert .
  • In Adaboost werden "Mängel" durch Datenpunkte mit hohem Gewicht identifiziert .

Nach meinem Verständnis ergibt der exponentielle Verlust von Adaboost mehr Gewichte für die Proben, die schlechter angepasst wurden. Wie auch immer, Adaboost wird in Bezug auf die Verlustfunktion als Sonderfall von Gradient Boosting angesehen, wie in der Geschichte von Gradient Boosting in der Einleitung dargestellt.

  1. Invent Adaboost, der erste erfolgreiche Boosting-Algorithmus [Freund et al., 1996, Freund and Schapire, 1997]
  2. Formulieren Sie Adaboost als Gradientenabstieg mit einer speziellen Verlustfunktion [Breiman et al., 1998, Breiman, 1999]
  3. Verallgemeinern Sie Adaboost auf Gradient Boosting, um eine Vielzahl von Verlustfunktionen zu handhaben [Friedman et al., 2000, Friedman, 2001]
Randel
quelle
11

Eine intuitive Erklärung des AdaBoost-Algorithmus

Lassen Sie mich auf der hervorragenden Antwort von @ Randel aufbauen und den folgenden Punkt veranschaulichen


  • In Adaboost werden "Mängel" durch Datenpunkte mit hohem Gewicht identifiziert

AdaBoost Rückblick

Gm(x) m=1,2,...,M

G(x)=sign(α1G1(x)+α2G2(x)+...αMGM(x))=sign(m=1MαmGm(x))
  • Die endgültige Vorhersage ist eine Kombination der Vorhersagen aller Klassifikatoren mit gewichteter Mehrheit

  • αmGm(x)

  • w1,w2,...,wNm
  • m=1wi=1/N

AdaBoost an einem Spielzeugbeispiel

M=10

Bildbeschreibung hier eingeben

Visualisierung der Sequenz schwacher Lernender und der Stichprobengewichte

m=1,2...,6

Bildbeschreibung hier eingeben

Erste Iteration:

  • Die Entscheidungsgrenze ist sehr einfach (linear), da dies schwache Lernende sind
  • Alle Punkte haben erwartungsgemäß die gleiche Größe
  • 6 blaue Punkte liegen im roten Bereich und sind falsch klassifiziert

Zweite Iteration:

  • Die lineare Entscheidungsgrenze hat sich geändert
  • Die zuvor falsch klassifizierten blauen Punkte sind jetzt größer (größeres sample_weight) und haben die Entscheidungsgrenze beeinflusst
  • 9 blaue Punkte sind jetzt falsch klassifiziert

Endergebnis nach 10 Iterationen

αm

([1,041, 0,875, 0,837, 0,781, 1,04, 0,938 ...

Wie erwartet hat die erste Iteration den größten Koeffizienten, da sie die wenigsten Fehlklassifizierungen aufweist.

Nächste Schritte

Eine intuitive Erklärung zur Gradientenanhebung - noch zu vervollständigen

Quellen und weiterführende Literatur:

Xavier Bourret Sicotte
quelle