Klassifizierung mit mehreren Tags

BildHallo habrozhiteli! Wir haben beschlossen, einen Auszug aus dem Buch von Andrei Burkov , Maschinelles Lernen ohne zusätzliche Wörter , zu zitieren , das der Klassifizierung gewidmet ist.

Zur Beschreibung des Bildes in der Abbildung können mehrere Bezeichnungen gleichzeitig verwendet werden: „Nadelwald“, „Berge“, „Straße“. Wenn die Anzahl der möglichen Werte für Beschriftungen groß ist, sie jedoch alle dieselbe Natur wie Tags haben, kann jedes markierte Beispiel in mehrere markierte Daten konvertiert werden, eines für jedes Tag. Alle diese neuen Daten haben dieselben Merkmalsvektoren und nur eine Bezeichnung. Infolgedessen wird die Aufgabe zu einem Klassifizierungsproblem für mehrere Klassen. Es kann mit der Strategie „Eins gegen alle“ gelöst werden. Der einzige Unterschied zum üblichen Problem der Klassifizierung mehrerer Klassen besteht im Auftreten eines neuen Hyperparameters: der Schwelle. Wenn die Ähnlichkeitsbewertung für ein Etikett über einem Schwellenwert liegt, wird dieses Etikett dem Eingabe-Feature-Vektor zugewiesen. In diesem Szenario können einem charakteristischen Vektor mehrere Beschriftungen zugewiesen werden.Der Schwellenwert wird mit dem Regelsatz ausgewählt.

Um das Klassifizierungsproblem mit vielen Bezeichnungen zu lösen, kann man auf ähnliche Weise Algorithmen anwenden, die natürlich in mehrere Klassen konvertiert werden (Entscheidungsbäume, logistische Regression, neuronale Netze usw.). Sie geben eine Schätzung für jede Klasse zurück, sodass wir einen Schwellenwert definieren und dann einem Merkmalsvektor mehrere Bezeichnungen zuweisen können, für die der Proximity-Score diesen Schwellenwert überschreitet.

Neuronale Netze können natürlich in Multi-Label-Klassifikationen unter Verwendung der binären Kreuzentropie als Kostenfunktion trainiert werden. Die Ausgabeschicht des neuronalen Netzwerks hat in diesem Fall einen Knoten pro Etikett. Jeder Knoten in der Ausgabeschicht verfügt über eine Sigmoid-Aktivierungsfunktion. Dementsprechend ist jedes Etikett l binärBildwobei l = 1, ..., L und i = 1, ..., N. Die binäre Kreuzentropie der Wahrscheinlichkeit, Bilddass die Probe xi mit l bezeichnet wird, definiert als das Bild

Kriterium der Minimierung - der einfache Durchschnitt aller Mitglieder der binären Kreuzentropie in allen Trainingsproben und alle ihre Tags.

In Fällen, in denen die Anzahl der möglichen Etikettenwerte gering ist, können Sie versuchen, das Klassifizierungsproblem mit vielen Etiketten in ein Klassifizierungsproblem für mehrere Klassen umzuwandeln. Stellen Sie sich das folgende Problem vor. Sie müssen Bildern zwei Arten von Beschriftungen zuweisen. Etiketten des ersten Typs können zwei mögliche Bedeutungen haben: { Foto, Malerei }; Markierungen des zweiten Typs können drei mögliche Bedeutungen haben: { Porträt, Landschaft, andere}. Für jede Kombination von zwei Quellklassen können Sie eine neue Dummy-Klasse erstellen, zum Beispiel:

Bild

Jetzt haben wir die gleichen markierten Daten, aber wir haben den Satz der echten Beschriftungen durch eine Dummy-Beschriftung mit Werten von 1 bis 6 ersetzt. In der Praxis liefert dieser Ansatz gute Ergebnisse, wenn nicht zu viele mögliche Kombinationen von Klassen vorhanden sind. Andernfalls müssen viel mehr Trainingsdaten verwendet werden, um die Zunahme der Klassen zu kompensieren.

Der Hauptvorteil dieses letzteren Ansatzes besteht darin, dass die Markierungen im Gegensatz zu den oben beschriebenen Methoden, die jede Markierung unabhängig voneinander vorhersagen, korreliert bleiben. Bei vielen Aufgaben kann die Korrelation zwischen Etiketten ein wesentlicher Faktor sein. Stellen Sie sich beispielsweise vor, Sie möchten E-Mails als Spam und Nicht- Spam klassifizierenund gleichzeitig wie gewöhnlich und wichtig. Sie möchten wahrscheinlich Prognosen wie [ Spam, wichtig ] ausschließen.

7.5. Ensemble-Training


Die grundlegenden Algorithmen, die wir in Kapitel 3 behandelt haben, haben ihre Grenzen. Aufgrund seiner Einfachheit können sie manchmal kein Modell erstellen, das für Ihre Aufgabe effektiv genug ist. In solchen Fällen können Sie versuchen, tiefe neuronale Netze zu verwenden. In der Praxis erfordern tiefe neuronale Netze jedoch eine erhebliche Menge an beschrifteten Daten, über die Sie möglicherweise nicht verfügen. Eine andere Möglichkeit, die Effektivität einfacher Lernalgorithmen zu erhöhen, ist das Ensemble-Training .

Ensemble-Training ist ein Trainingsparadigma, das darauf basiert, nicht nur ein superkorrektes Modell, sondern eine große Anzahl von Modellen mit geringer Genauigkeit zu trainieren und die Prognosen dieser schwachen Modelle zu kombinieren, um ein korrekteres Metamodell zu erhalten .

Modelle mit geringer Genauigkeit werden normalerweise durch schwache Lernalgorithmen trainiert , die keine komplexen Modelle trainieren können und daher in der Trainings- und Prognosephase eine hohe Geschwindigkeit aufweisen. Am häufigsten wird der Entscheidungsbaum-Lernalgorithmus als schwacher Algorithmus verwendet, der normalerweise nach mehreren Iterationen aufhört, den Trainingssatz zu unterbrechen. Das Ergebnis sind kleine und nicht sehr regelmäßige Bäume, aber wie die Idee, das Ensemble zu lernen, besagt, können wir durch die Kombination einer großen Anzahl solcher Bäume eine hohe Genauigkeit erzielen, wenn die Bäume nicht identisch sind und jeder Baum zumindest geringfügig besser als zufällige Vermutungen ist.

Um die endgültige Prognose für Eintrag x zu erhaltenPrognosen aller schwachen Modelle werden mit einer gewichteten Abstimmungsmethode kombiniert. Die spezifische Form der Gewichtung der Stimmen hängt vom Algorithmus ab, aber das Wesentliche hängt nicht davon ab: Wenn insgesamt schwache Modelle vorhersagen, dass es sich bei der E-Mail um Spam handelt, weisen wir Probe x das Spam- Label zu .

Die beiden Hauptmethoden für das Training von Ensembles sind Boosten und Absacken (Aggregation). Übersetzungen der Begriffe Boosten und Absacken sind ungenau und nicht gewohnt.

7.5.1. Boosten und Absacken


Die Boosting-Methode besteht darin, die anfänglichen Trainingsdaten zu verwenden und iterativ mehrere Modelle unter Verwendung eines schwachen Algorithmus zu erstellen.

Jedes neue Modell unterscheidet sich von den vorherigen darin, dass ein schwacher Algorithmus bei seiner Konstruktion versucht, die von früheren Modellen gemachten Fehler zu „beheben“. Das endgültige Ensemblemodell ist eine Kombination dieser vielen schwachen iterativ konstruierten Modelle.

Das Wesentliche beim Absacken besteht darin, viele „Kopien“ von Trainingsdaten zu erstellen (jede Kopie unterscheidet sich geringfügig von den anderen) und dann auf jede Kopie einen schwachen Algorithmus anzuwenden, um mehrere schwache Modelle zu erhalten, und diese dann zu kombinieren. Ein weit verbreiteter und effizienter Algorithmus für maschinelles Lernen, der auf der Idee des Absackens basiert, ist eine zufällige Gesamtstruktur .

7.5.2. Zufälliger Wald


Der "klassische" Absackalgorithmus funktioniert wie folgt. B Stichproben aus dem bestehenden Trainingssatz erzeugt Bild(für jeden b = 1, ..., B) und ein Entscheidungsbaum - BildModell ist aufgebaut auf der Basis von jeder Probe Bild. Um eine Probe Bildfür einige b zu erhalten, wird eine Probe mit Ersatz erstellt . Das heißt, zuerst wird eine leere Stichprobe erstellt, und dann wird eine zufällige Stichprobe aus dem Trainingssatz ausgewählt und ihre genaue Kopie wird abgelegt Bild, während die Stichprobe selbst im ursprünglichen Trainingssatz verbleibt. Die Auswahl der Daten wird fortgesetzt, bis die Bedingung erfüllt ist. Bild

Als Ergebnis des Trainings werden B- Entscheidungsbäume erhalten . Die Prognose für die neue Stichprobe x im Falle einer Regression wird als Durchschnitt von B bestimmt Prognosen

Bild

oder mit Stimmenmehrheit bei Einstufung.

Zufälliger Wald hat nur einen Unterschied zum klassischen Absacken. Es wird ein modifizierter Baumlernalgorithmus verwendet, der bei jeder Aufteilung im Lernprozess eine zufällige Teilmenge von Merkmalen überprüft. Dies geschieht, um die Korrelation zwischen Bäumen zu beseitigen: Wenn ein oder mehrere Features eine große Vorhersagefähigkeit aufweisen, werden sie von vielen Bäumen zum Aufteilen von Daten ausgewählt. Dies wird dazu führen, dass im "Wald" eine große Anzahl korrelierter Bäume erscheint. Die Vorzeichenkorrelation mit hoher Vorhersagefähigkeit verhindert, dass die Vorhersagegenauigkeit zunimmt. Die hohe Effizienz des Modellensembles erklärt sich aus der Tatsache, dass gute Modelle höchstwahrscheinlich mit derselben Prognose übereinstimmen und schlechte Modelle wahrscheinlich nicht übereinstimmen und unterschiedliche Prognosen liefern. Durch die Korrelation werden schlechte Modelle eher zustimmen.Dies verzerrt das Abstimmungsmuster oder beeinflusst den Durchschnitt.

Die wichtigsten Hyperparameter für die Optimierung sind die Anzahl der Bäume B und die Größe einer zufälligen Teilmenge von Merkmalen, die bei jeder Aufteilung berücksichtigt werden müssen.
Random Forest ist einer der am häufigsten verwendeten Ensemble-Lernalgorithmen. Was bestimmt seine Wirksamkeit? Der Grund dafür ist, dass wir durch die Verwendung mehrerer Stichproben aus dem Originaldatensatz die Varianz des endgültigen Modells reduzieren . Denken Sie daran, dass eine geringe Varianz eine schwache Veranlagung zur Umschulung bedeutet. Eine Umschulung erfolgt, wenn das Modell versucht, kleine Abweichungen im Datensatz zu erklären, da der Datensatz nur eine kleine Auswahl aller möglichen Beispiele für das Phänomen ist, das wir simulieren möchten. Im Falle eines erfolglosen Ansatzes zur Bildung des Trainingssatzes können einige unerwünschte (aber unvermeidliche) Artefakte in den Satz fallen: Rauschen, abnormale und übermäßig oder unzureichend repräsentative Daten. Indem wir mit dem Ersetzen des Trainingssatzes mehrere Zufallsstichproben erstellen, reduzieren wir den Einfluss dieser Artefakte.

7.5.3. Gradientenverstärkung


Ein weiterer effektiver Ensemble-Trainingsalgorithmus, der auf der Idee des Boostings basiert, ist das Gradienten-Boosting. Betrachten Sie zunächst die Verwendung der Gradientenverstärkung bei der Regression. Wir werden mit dem Aufbau eines effektiven Regressionsmodells mit einem konstanten Modell beginnen Bild(wie wir es in ID3 getan haben):
Bild

Ändern Sie dann die Beschriftungen in allen Proben i = 1, ..., N im Trainingssatz:

Bild

wo Bilddie aufgerufen wird , Rest und ist das neue Label der Probe Bild

verwenden wir nun das modifizierte Trainingssatz mit den anstelle der Originaletiketten bleibt ein neues Modell des Entscheidungsbaums zu bauen. BildDie Verstärkungs Modell jetzt ist definiert als Bildwobei α die Lerngeschwindigkeit (Hyper).

Dann berechnen wir die Residuen unter Verwendung von Gleichung 7.2 neu, ersetzen die Beschriftungen in den Trainingsdaten erneut, lehren ein neues Modell des Entscheidungsbaums, Bilddefinieren das Boost-Modell neu, während Bildwir den Prozess wiederholen, bis wir die vorbestimmte maximale Anzahl M von Bäumen kombinieren .

Lassen Sie uns intuitiv verstehen, was hier passiert. Durch Berechnung der Residuen bestimmen wir, wie gut (oder schlecht) das Ziel jeder Trainingsstichprobe vom aktuellen Modell f vorhergesagt wird. Dann trainieren wir einen anderen Baum, um die Fehler des aktuellen Modells zu korrigieren (weshalb wir Reste anstelle der tatsächlichen Beschriftungen verwenden) und fügen dem vorhandenen Modell einen neuen Baum mit einem gewissen Gewicht α hinzu. Infolgedessen korrigiert jeder neue Baum, der dem Modell hinzugefügt wird, teilweise die Fehler, die von vorherigen Bäumen gemacht wurden. Der Prozess wird fortgesetzt, bis die maximale Anzahl M (ein weiterer Hyperparameter) der Bäume kombiniert ist.

Versuchen wir nun, die Frage zu beantworten, warum dieser Algorithmus als Gradientenverstärkung bezeichnet wird. Bei der Gradientenverstärkung berechnen wir den Gradienten nicht, anders als in Kapitel 4, um das Problem der linearen Regression zu lösen. Um die Ähnlichkeiten zwischen Gradientenverstärkung und Gradientenabstieg zu erkennen, denken Sie daran, warum wir den Gradienten in linearer Regression berechnet haben: Um die Richtung der Parameterwerte herauszufinden, um die MSE-Kostenfunktion zu minimieren. Der Gradient zeigt die Richtung an, zeigt jedoch nicht, wie weit in diese Richtung zu gehen ist. Daher haben wir in jeder Iteration einen kleinen Schritt gemacht und dann erneut die Richtung bestimmt. Dasselbe passiert bei der Gradientenverstärkung, aber anstatt den Gradienten direkt zu berechnen, verwenden wir seine Schätzung in Form von Residuen: Sie zeigen, wie das Modell angepasst werden sollte, um den Fehler (Residuum) zu reduzieren.

Bei der Gradientenverstärkung stehen drei Haupthyperparameter zur Abstimmung zur Verfügung: die Anzahl der Bäume, die Lerngeschwindigkeit und die Tiefe der Bäume. Alle drei beeinflussen die Genauigkeit des Modells. Die Tiefe der Bäume beeinflusst auch die Lern- und Prognosegeschwindigkeit: Je kleiner die Tiefe, desto schneller.

Es kann gezeigt werden, dass das Lernen durch Residuen das Gesamtmodell f für den Standardfehlerstandard optimiert. Hier sehen Sie den Unterschied zum Absacken: Durch das Boosten werden Verzerrungen (oder mangelnde Bildung) anstelle von Varianz verringert. Infolgedessen muss das Boosten umgeschult werden. Durch Anpassen der Tiefe und Anzahl der Bäume kann jedoch eine Umschulung weitgehend vermieden werden.

Die Gradientenverstärkung ist für Bewertungsaufgaben ähnlich, die Schritte unterscheiden sich jedoch geringfügig. Betrachten Sie den Fall der binären Klassifizierung. Angenommen, es gibt M Regressionsentscheidungsbäume. In Analogie zur logistischen Regression wird die Vorhersage des Ensembles von Entscheidungsbäumen mithilfe der Sigmoid-Funktion modelliert:

Bild

Wo Bildist der Regressionsbaum?

Und wieder wird, wie bei der logistischen Regression, beim Versuch, ein Modell für die Maximierung zu finden Bild, das Prinzip der maximalen Wahrscheinlichkeit angewendet. Um einen numerischen Überlauf zu vermeiden, maximieren wir in ähnlicher Weise die Summe der Wahrscheinlichkeitslogarithmen und nicht das Produkt der Wahrscheinlichkeit.

Der Algorithmus beginnt mit dem anfänglichen konstanten Modell, Bildwobei Bild(Es kann gezeigt werden, dass eine solche Initialisierung für die Sigmoidfunktion optimal ist.) Dann wird bei jeder Iteration m ein neuer Baum fm zum Modell hinzugefügt. Um den besten Baum Bildzu finden Um den besten Baum zu finden Bild, wird zuerst die partielle Ableitung des Bildaktuellen Modells für jedes i = 1, ..., N berechnet :
Bild

Dabei ist f das Modell des Ensemble-Klassifikators, der auf der vorherigen Iteration m - 1 basiert. Um zu berechnen Bild, müssen wir die Ableitungen von in BildBezug auf f für alle i finden. Es ist zu beachten, dass die BildAbleitung in Bezug auf f des richtigen Terms in der vorherigen Gleichung ist
Bild

Dann wird der Trainingssatz transformiert, indem das ursprüngliche Etikett der Bildentsprechenden partiellen Ableitung ersetzt wird Bild, und ein neuer Baum wird auf der Basis des konvertierten Trainingssatzes erstellt. BildAls nächstes wird der optimale Aktualisierungsschritt wie folgt bestimmt Bild:
Bild

Am Ende von Iteration m aktualisieren wir das Ensemble-Modell, Bildindem wir einen neuen Baum hinzufügenBild
Bild

Die Iterationen werden fortgesetzt, bis die Bedingung m = M erfüllt ist. Danach stoppt das Training und das Ensemblemodell f wird erhalten.

Gradient Boosting ist einer der leistungsstärksten Algorithmen für maschinelles Lernen. Nicht nur, weil es sehr genaue Modelle erstellt, sondern auch, weil es in der Lage ist, große Datenmengen mit Millionen von Daten und Funktionen zu verarbeiten. In der Regel ist es einem zufälligen Wald in seiner Genauigkeit überlegen, aber aufgrund der konsistenten Natur kann es viel langsamer lernen.

All Articles