Techniken im maschinellen Lernen fördern: Genauigkeit verbessern und Fehler reduzieren
Veröffentlicht: 2025-01-16Boosting ist eine leistungsstarke Ensemble-Lerntechnik im maschinellen Lernen (ML), die die Modellgenauigkeit durch Reduzierung von Fehlern verbessert. Durch das Training sequenzieller Modelle zur Behebung früherer Mängel werden durch Boosting robuste Vorhersagesysteme geschaffen. In diesem Leitfaden erfahren Sie, wie Boosting funktioniert. seine Vorteile, Herausforderungen und Anwendungen; und wie es mit dem Absacken verglichen wird.
Inhaltsverzeichnis
- Was ist Boosten?
- Bias vs. Varianz
- Boosten vs. Absacken
- So funktioniert Boosting
- Arten von Boosting-Algorithmen
- Anwendungen von Boosting
- Vorteile des Boostens
- Herausforderungen und Grenzen des Boostings
Was ist Boosten?
Boosting ist eine Ensemble-Lerntechnik, die neue, sequentielle Modelle trainiert, um die Fehler der vorherigen Modelle im Ensemble zu korrigieren. Ensemble-Lerntechniken sind Möglichkeiten, mehrere ähnliche Modelle zu verwenden, um Leistung und Genauigkeit zu verbessern. Beim Boosten werden die neuen Modelle ausschließlich auf die vorherigen Fehler des Ensembles trainiert. Dann werden die neuen Modelle dem Ensemble hinzugefügt, um genauere Vorhersagen zu ermöglichen. Alle neuen Eingaben werden durch die Modelle geleitet und aggregiert, um die Fehler in allen Modellen zu reduzieren.
Genauigkeit ist ein weit gefasster Begriff. Boosting erhöht gezielt die Modellleistung, indem es die Modellverzerrung (und in geringerem Maße die Varianz) verringert. Varianz und Bias sind zwei wichtige ML-Konzepte, die wir im nächsten Abschnitt behandeln werden.
Bias vs. Varianz
Bias und Varianz sind zwei grundlegende Eigenschaften des maschinellen Lernens insgesamt. Das Ziel jedes ML-Algorithmus besteht darin, die Varianz und Verzerrung von Modellen zu reduzieren. Angesichts ihrer Bedeutung erklären wir mehr über sie und warum sie normalerweise im Widerspruch zueinander stehen.
Um jedes Konzept zu erklären, nehmen wir das Beispiel der Vorhersage des Verkaufspreises von Häusern anhand von Daten über deren Merkmale (z. B. Quadratmeterzahl, Anzahl der Schlafzimmer usw.).
Voreingenommenheit
Der Bias ist ein Maß dafür, wie falsch ein Modell im Durchschnitt liegt. Wenn ein Haus tatsächlich für 400.000 US-Dollar verkauft wurde und das Modell 300.000 US-Dollar vorhersagte, beträgt die Abweichung für diesen Datenpunkt –100.000 US-Dollar. Wenn Sie den Bias über den gesamten Trainingsdatensatz mitteln, erhalten Sie den Bias eines Modells.
Verzerrungen resultieren in der Regel daraus, dass Modelle zu einfach sind, um die komplexen Beziehungen zwischen Features und Ausgaben zu erfassen. Ein zu einfaches Modell lernt möglicherweise, nur die Quadratmeterzahl zu berücksichtigen, und wird selbst bei den Trainingsdaten ständig falsch liegen. Im ML-Sprachgebrauch wird dies als Unteranpassung bezeichnet.
Varianz
Die Varianz misst, wie stark sich die Ergebnisse eines Modells bei ähnlichen Eingaben unterscheiden. In den meisten Fällen sollten Häuser in ähnlichen Vierteln und mit ähnlicher Quadratmeterzahl, Anzahl der Schlafzimmer und Anzahl der Badezimmer ähnliche Preise haben. Ein Modell mit hoher Varianz kann jedoch zu völlig unterschiedlichen Preisen führen. Warum?
Das Modell hat möglicherweise falsche Zusammenhänge aus den Trainingsdaten gelernt (z. B. durch die Annahme, dass Hausnummern einen Einfluss auf den Preis haben). Diese falschen Beziehungen können dann die nützlichen Beziehungen in den Daten übertönen. Im Allgemeinen greifen komplexe Modelle diese irrelevanten Beziehungen auf, was als Überanpassung bezeichnet wird.
Bias-Varianz-Kompromiss
Idealerweise möchten Sie ein ML-Modell mit geringer Verzerrung und geringer Varianz, das die wahren Beziehungen in den Daten erfasst, aber nicht mehr. Dies ist jedoch in der Praxis schwer umzusetzen.
Die Erhöhung der Ausgereiftheit oder Komplexität eines Modells kann seine Verzerrung verringern, indem es ihm die Möglichkeit gibt, tiefere Muster in den Daten zu finden. Dieselbe Fähigkeit kann jedoch auch dabei helfen, irrelevante Muster zu finden und umgekehrt, wodurch dieser Kompromiss zwischen Bias und Varianz schwer zu lösen ist.
Boosting verbessert Bias und Varianz
Boosting ist eine sehr beliebte Ensemble-Lerntechnik, da es sowohl Bias als auch Varianz reduzieren kann (obwohl Varianzreduktion nicht so häufig vorkommt).
Durch die Korrektur früherer Fehler reduziert Boosting die durchschnittliche Fehlerrate und Größe des Modellensembles und verringert so die Verzerrung.
Durch die Verwendung mehrerer Modelle können die Fehler einzelner Modelle ausgeglichen werden, was möglicherweise zu einer geringeren Varianz führt.
Boosten vs. Absacken
Beim Ensemble-Lernen sind Boosting und Bagging die beiden gebräuchlichsten Techniken. Bagging nimmt den Trainingsdatensatz, erstellt daraus randomisierte Teilmengen und trainiert für jede Teilmenge ein anderes Modell. Dann werden die Modelle zusammen verwendet, um Vorhersagen zu treffen. Daraus ergeben sich einige Unterschiede zwischen Absacken und Boosten, auf die wir im Folgenden näher eingehen.
Absacken | Boosten | |
Modelltraining | Modelle werden parallel auf verschiedenen Teilmengen von Daten trainiert. | Modelle werden nacheinander trainiert, wobei sich jedes Modell auf die Fehler des vorherigen Modells konzentriert. |
Fokus auf Fehlerreduzierung | Reduziert die Varianz | Reduziert Voreingenommenheit |
Gängige Algorithmen | Zufälliger Wald, eingesackte Entscheidungsbäume | AdaBoost, Gradient Boosting, XGBoost |
Überanpassungsrisiko | Geringeres Risiko einer Überanpassung aufgrund von Zufallsstichproben | Höheres Risiko einer Überanpassung |
Berechnungskomplexität | Untere | Höher |
Beide Techniken sind üblich, Boosting ist jedoch die beliebtere Wahl, da dadurch Voreingenommenheit und Varianz verringert werden können.
So funktioniert Boosting
Schauen wir uns an, wie Boosting funktioniert. Im Wesentlichen besteht Boosting darin, jedes neue Modell anhand der Datenpunkte zu trainieren, die die vorherigen Modelle falsch gemacht haben. Es gibt drei Teile:
- Gewichtung der Trainingsdaten nach Fehlern
- Trainieren eines neuen Modells anhand dieses gewichteten Fehlerdatensatzes
- Hinzufügen des neuen Modells zum Ensemble
Nehmen wir zunächst an, wir hätten das ursprüngliche Modell (ein Ensemble von einem) trainiert.
Gewichtung der Trainingsdaten nach Fehlern
Wir lassen die Trainingsdaten durch das vorhandene Ensemble laufen und notieren, für welche Eingaben das Ensemble falsche Vorhersagen gemacht hat. Dann erstellen wir eine modifizierte Version des Trainingsdatensatzes, in der diese problematischen Eingaben stärker vertreten oder wichtiger sind.
Training des neuen Modells
Wir verwenden den von uns erstellten modifizierten Datensatz, um ein neues Modell zu trainieren, das vom gleichen Typ ist wie die anderen Modelle im Ensemble. Allerdings konzentriert sich dieses neue Modell mehr auf die harten Beispiele aus den Trainingsdaten, sodass es bei diesen wahrscheinlich eine bessere Leistung erbringen wird. Diese Verbesserung der Fehlerleistung ist ein wichtiger Teil der Reduzierung von Verzerrungen.
Einbindung des neuen Modells
Das neu trainierte Modell wird dem Ensemble hinzugefügt und seine Vorhersagen werden entsprechend ihrer Genauigkeit gewichtet. Parallel dazu werden neue Eingaben an jedes Modell im Ensemble weitergeleitet und die endgültigen Ausgaben jedes Modells werden gewichtet, um die Ausgabe des Ensembles zu erhalten.
Für Klassifizierungsaufgaben (normalerweise die Wahl zwischen zwei Bezeichnungen bei Boosting-Problemen) wird die Klasse mit der höchsten Summe gewichteter Stimmen dafür als Vorhersage des Ensembles ausgewählt.
Bei Regressionsaufgaben ist die Vorhersage des Ensembles der gewichtete Durchschnitt der Vorhersagen jedes Modells.
An diesem Punkt kann der Vorgang wiederholt werden, wenn die Vorspannung immer noch zu hoch ist.
Arten von Boosting-Algorithmen
Es gibt verschiedene Varianten von Boosting-Algorithmen mit teilweise erheblichen Unterschieden. Am beliebtesten sind Adaptive Boosting (AdaBoost), Gradient Boosting, Extreme Gradient Boosting (XGBoost) und Cat Boost. Wir werden sie nacheinander behandeln.
AdaBoost
AdaBoost ist dem Boosting-Algorithmus, den wir zuvor dargelegt haben, sehr ähnlich: Trainingsdaten, die für frühere Ensembles Probleme bereiten, werden beim Training des nächsten Modells stärker gewichtet. AdaBoost war einer der ursprünglichen Boosting-Algorithmen und ist für seine Einfachheit bekannt.
AdaBoost ist weniger anfällig für Überanpassung als andere Boosting-Algorithmen, da neue Modelle unterschiedliche Variationen (wobei harte Datenpunkte häufiger vorkommen) des Trainingsdatensatzes erkennen. Im Vergleich zu anderen Boosting-Techniken reagiert es jedoch empfindlicher auf Ausreißerdaten und reduziert die Verzerrung nicht so stark.
Gradientenverstärkung
Gradient Boosting ist ein einzigartiger Boosting-Ansatz. Im Gegensatz zum adaptiven Boosting erhalten neue Modelle keine fehlergewichtete Version des Trainingsdatensatzes. Sie erhalten den Originaldatensatz. Anstatt jedoch zu versuchen, die Ausgaben für die Eingaben im Datensatz vorherzusagen, versuchen sie, den negativen Gradienten des vorherigen Ensembles für jede Eingabe vorherzusagen.
Der negative Gradient ist im Wesentlichen die Richtung, in die sich die Modellgewichte und Vorhersagen des Ensembles bewegen müssten, um den Fehler zu verringern – um der richtigen Antwort näher zu kommen. Die negativen Gradienten werden (unter Anwendung eines Gewichtungsfaktors) zur Ausgabevorhersage des vorherigen Ensembles hinzugefügt, um sie näher an die Richtigkeit heranzuführen.
Gradient Boosting ist weitaus leistungsfähiger als AdaBoosting, insbesondere bei komplexen Daten. Außerdem müssen mehr Hyperparameter angepasst werden, was den Menschen mehr Kontrolle gibt, aber auch den Experimentierbedarf erhöht.
XGBoost
XGBoost (oder Extreme Gradient Boosting) ist eine hochoptimierte Version des Gradient Boosting. XGBoost macht das Gradienten-Boosting-Training und die Inferenz viel paralleler. XGBoost fügt außerdem eine Regularisierung (d. h. Strafen für die Komplexität) hinzu, um eine Überanpassung zu verhindern, und geht viel besser mit fehlenden Daten um. Schließlich ist XGBoost für große Datenmengen oder Arbeitslasten viel besser skalierbar.
XGBoost ist sogar leistungsfähiger als Gradient Boosting und war in den 2010er Jahren einer der beliebtesten ML-Algorithmen. Aber es ist auch schwieriger zu interpretieren und viel rechenintensiver in der Ausführung.
CatBoost
CatBoost ist eine Form der Gradientenverstärkung, die für die Arbeit mit kategorialen Daten entwickelt wurde. Kategoriale Daten sind Daten, bei denen die Werte in wenigen, begrenzten Gruppen vorliegen können. Hier einige Beispiele:
- Ja–Nein-Daten (z. B. verfügt das Haus über eine Garage?)
- Farbkategorien (z. B. Rot, Blau, Grün)
- Produktkategorien (z. B. Elektronik, Kleidung, Möbel)
Gradient-Boosting-Modelle funktionieren im Allgemeinen nicht gut mit kategorialen Daten, während CatBoost dies tut. CatBoost kann auch kontinuierliche Daten verarbeiten, was es zu einer weiteren beliebten Boosting-Option macht. Wie bei anderen Gradient-Boosting-Modellen leidet CatBoost unter rechnerischer Komplexität und Überanpassung.
Anwendungen von Boosting
Boosting kann auf fast jedes ML-Problem angewendet werden, da Fehler und Verzerrungen oft höher sind, als uns lieb ist. Klassifizierung und Regression sind zwei der großen Unterteilungen von ML, und Boosting gilt für beide. Inhaltsempfehlungen und Betrugserkennung sind zwei Beispiele für ML-Probleme, mit denen Unternehmen konfrontiert sind und bei denen Boosting ebenfalls hilfreich sein kann.
Klassifizierung und Regression
Klassifizierung und Regression sind zwei der Kernaufgaben des ML. Ein Benutzer möchte möglicherweise vorhersagen, ob ein Bild einen Hund oder eine Katze enthält (Klassifizierung), oder er möchte den Verkaufspreis eines Hauses vorhersagen (Regression). Boosting funktioniert für beide Aufgaben gut, insbesondere wenn die zugrunde liegenden Modelle schwach oder nicht komplex sind.
Inhaltsempfehlungen
Boosting verbessert Inhaltsempfehlungen (z. B. die von Netflix für Sie vorgeschlagenen Filme), indem die Vorhersagegenauigkeit für Benutzerpräferenzen iterativ verbessert wird. Wenn ein Empfehlungsmodell bestimmte Sehmuster (z. B. saisonale Vorlieben oder kontextabhängige Entscheidungen) nicht erfassen kann, werden durch Boosting zusätzliche Modelle erstellt, die sich speziell auf diese übersehenen Muster konzentrieren. Jedes neue Modell in der Sequenz verleiht zuvor schlecht vorhergesagten Benutzerpräferenzen zusätzliches Gewicht, was zu geringeren Fehlern führt.
Betrugserkennung
Bei der Betrugserkennung, einem häufigen Anwendungsfall für Finanzunternehmen, werden die Leistungen gesteigert, indem nach und nach aus falsch klassifizierten Transaktionen gelernt wird. Während den ersten Modellen ausgefeilte Betrugsmuster entgehen, zielen die neueren, verstärkten Modelle speziell auf diese problematischen Fälle ab. Die Technik passt sich besonders gut an sich ändernde Betrugstaktiken an, indem sie jüngsten Fehlklassifizierungen ein höheres Gewicht verleiht, sodass das System hohe Erkennungsraten aufrechterhalten kann.
Vorteile des Boostens
Boosting eignet sich hervorragend zur Reduzierung der Modellverzerrung und in geringerem Maße der Varianz. Im Vergleich zu anderen Ensemble-Techniken erfordert es weniger Daten und gibt den Benutzern mehr Kontrolle über die Überanpassung.
Reduzierte Voreingenommenheit und Varianz
Eine hohe Voreingenommenheit bedeutet, dass Modelle oft falsch sind. Boosting ist eine großartige Technik, um Verzerrungen in Modellen zu reduzieren. Da sich jedes Modell auf die Korrektur der Fehler der Vorgängermodelle konzentriert, reduziert das Ensemble als Ganzes seine Fehlerquote.
Die verringerte Varianz hat auch einen Nebeneffekt: Neuere Modelle können unterschiedliche Trainingsdatenmischungen aufweisen, wodurch sich Fehler in verschiedenen Modellen gegenseitig aufheben können.
Benötigt weniger Daten
Im Gegensatz zu anderen Ensemble-Techniken benötigt Boosting keinen großen Datensatz, um gut zu funktionieren. Da sich jedes neue Modell in erster Linie auf die Fehler der älteren Modelle konzentriert, hat es ein enges Ziel und benötigt nicht viele Daten. Das neue Modell kann die vorhandenen Trainingsdaten nutzen und die Fehler wiederholt trainieren.
Mehr Kontrolle über Überanpassung
Boosting verfügt über einige Hyperparameter, die steuern, wie viel jedes neue Modell zur Ensemblevorhersage beiträgt. Durch die Änderung dieser Hyperparameter können Benutzer den Einfluss neuer Modelle abschwächen. Dies würde die Verzerrung erhöhen, aber möglicherweise die Varianz verringern, sodass Benutzer die Kontrolle darüber haben, wo sie im Kompromiss zwischen Bias und Varianz landen möchten.
Herausforderungen und Grenzen des Boostings
Boosting hat jedoch seine Vorbehalte. Das Training und die Verwendung erfordern mehr Zeit, reagieren empfindlich auf Ausreißerdaten und erfordern eine stärkere Abstimmung der Hyperparameter.
Längere Trainingszeit
Beim Boosten hängt jedes neue Modell von den Fehlern des vorherigen Ensembles ab. Das bedeutet, dass die Modelle einzeln trainiert werden müssen, was zu langen Trainingszeiten führt. Ein weiterer Nachteil besteht darin, dass Sie beim sequentiellen Training möglicherweise erst dann wissen, ob die Steigerung wirksam ist, wenn Sie ein Dutzend Modelle trainiert haben.
Ausreißerempfindlichkeit
Beim Boosten konzentrieren sich neuere Modelle ausschließlich auf die Fehler früherer Modelle. Einige Ausreißerdaten im Trainingssatz, die ignoriert werden sollten, könnten stattdessen zum alleinigen Fokus späterer Modelle werden. Dies kann die Gesamtleistung des Ensembles beeinträchtigen und Trainingszeit verschwenden. Möglicherweise ist eine sorgfältige Datenverarbeitung erforderlich, um den Auswirkungen von Ausreißern entgegenzuwirken.
Mehr Hyperparameter-Tuning
Der Vorteil, den Benutzern mehr Kontrolle über die Überanpassung zu geben, bedeutet auch, dass Benutzer mehr Hyperparameter anpassen müssen, um ein gutes Gleichgewicht zwischen Bias und Varianz zu finden. Oft sind mehrere Boosting-Experimente erforderlich, was das sequentielle Training noch mühsamer macht. Boosting erfordert viele Rechenressourcen.