Ensemble Learning Methods for Deep Learning Neural Networks

Tweet Share Share

Last Updated on August 6, 2019

How to Improve Performance By Combining Predictions From Multiple Models.

Deep Learning Neural Networks sind nichtlineare Methoden.

Sie bieten erhöhte Flexibilität und können proportional zur Menge der verfügbaren Trainingsdaten skalieren. Ein Nachteil dieser Flexibilität ist, dass sie über einen stochastischen Trainingsalgorithmus lernen, was bedeutet, dass sie empfindlich auf die Besonderheiten der Trainingsdaten reagieren und bei jedem Training einen anderen Satz von Gewichten finden können, was wiederum zu anderen Vorhersagen führt.

Dies wird allgemein als hohe Varianz neuronaler Netze bezeichnet und kann frustrierend sein, wenn man versucht, ein endgültiges Modell für die Erstellung von Vorhersagen zu entwickeln.

Ein erfolgreicher Ansatz zur Verringerung der Varianz neuronaler Netzmodelle besteht darin, mehrere Modelle anstelle eines einzigen zu trainieren und die Vorhersagen aus diesen Modellen zu kombinieren. Dies wird als Ensemble-Lernen bezeichnet und reduziert nicht nur die Varianz der Vorhersagen, sondern kann auch zu Vorhersagen führen, die besser sind als jedes einzelne Modell.

In diesem Beitrag werden Sie Methoden für neuronale Netze mit tiefem Lernen entdecken, um die Varianz zu reduzieren und die Vorhersageleistung zu verbessern.

Nach der Lektüre dieses Beitrags werden Sie wissen:

  • Neuronale Netzwerkmodelle sind nichtlinear und haben eine hohe Varianz, was bei der Erstellung eines endgültigen Modells für die Erstellung von Vorhersagen frustrierend sein kann.
  • Ensemble-Lernen kombiniert die Vorhersagen von mehreren neuronalen Netzwerkmodellen, um die Varianz der Vorhersagen zu reduzieren und den Generalisierungsfehler zu verringern.
  • Techniken für das Ensemble-Lernen können nach dem Element gruppiert werden, das variiert wird, wie z. B. Trainingsdaten, das Modell und die Art und Weise, wie Vorhersagen kombiniert werden.

Starten Sie Ihr Projekt mit meinem neuen Buch Better Deep Learning, das Schritt-für-Schritt-Tutorials und die Python-Quellcode-Dateien für alle Beispiele enthält.

Lassen Sie uns loslegen.

Ensemble Methods to Reduce Variance and Improve Performance of Deep Learning Neural Networks

Ensemble Methods to Reduce Variance and Improve Performance of Deep Learning Neural Networks
Photo by University of San Francisco’s Performing Arts, some rights reserved.

Overview

This tutorial is divided into four parts; they are:

  1. High Variance of Neural Network Models
  2. Reduce Variance Using an Ensemble of Models
  3. How to Ensemble Neural Network Models
  4. Summary of Ensemble Techniques

High Variance of Neural Network Models

Training deep neural networks can be very computationally expensive.

Very deep networks trained on millions of examples may take days, weeks, and sometimes months to train.

Googles Basismodell war ein tiefes neuronales Faltungsnetzwerk, das etwa sechs Monate lang mit asynchronem stochastischem Gradientenabstieg auf einer großen Anzahl von Kernen trainiert wurde.

– Distilling the Knowledge in a Neural Network, 2015.

Nach der Investition von so viel Zeit und Ressourcen gibt es keine Garantie dafür, dass das endgültige Modell einen geringen Generalisierungsfehler aufweist und bei Beispielen, die während des Trainings nicht gesehen wurden, gut funktioniert.

… viele verschiedene Kandidatennetzwerke zu trainieren und dann das beste auszuwählen und den Rest zu verwerfen. Ein solcher Ansatz hat zwei Nachteile. Erstens ist der gesamte Aufwand für das Training der übrigen Netze umsonst. Zweitens kann es sein, dass das Netz, das in der Validierungsmenge die beste Leistung erzielt hat, nicht dasjenige mit der besten Leistung bei neuen Testdaten ist.

– Seiten 364-365, Neural Networks for Pattern Recognition, 1995.

Neuronale Netzmodelle sind eine nichtlineare Methode. Das bedeutet, dass sie komplexe nichtlineare Beziehungen in den Daten lernen können. Ein Nachteil dieser Flexibilität ist, dass sie empfindlich auf die Anfangsbedingungen reagieren, sowohl in Bezug auf die anfänglichen Zufallsgewichte als auch auf das statistische Rauschen im Trainingsdatensatz.

Diese stochastische Natur des Lernalgorithmus bedeutet, dass bei jedem Training eines neuronalen Netzmodells eine leicht (oder dramatisch) andere Version der Abbildungsfunktion von Eingaben zu Ausgaben erlernt werden kann, die wiederum eine unterschiedliche Leistung auf den Trainings- und Holdout-Datensätzen aufweist.

Als solches können wir uns ein neuronales Netz als eine Methode vorstellen, die eine geringe Verzerrung und hohe Varianz aufweist. Selbst wenn es auf großen Datensätzen trainiert wird, um die hohe Varianz zu befriedigen, kann es frustrierend sein, wenn ein endgültiges Modell, das für Vorhersagen verwendet werden soll, überhaupt keine Varianz aufweist.

Wollen Sie bessere Ergebnisse mit Deep Learning?

Nehmen Sie jetzt an meinem kostenlosen 7-Tage-E-Mail-Crashkurs teil (mit Beispielcode).

Klicken Sie, um sich anzumelden und auch eine kostenlose PDF-Ebook-Version des Kurses zu erhalten.

Laden Sie sich Ihren KOSTENLOSEN Mini-Kurs herunter

Reduzieren Sie die Varianz mit einem Ensemble von Modellen

Eine Lösung für die hohe Varianz neuronaler Netze besteht darin, mehrere Modelle zu trainieren und ihre Vorhersagen zu kombinieren.

Die Idee ist, die Vorhersagen von mehreren guten, aber unterschiedlichen Modellen zu kombinieren.

Ein gutes Modell verfügt über Fähigkeiten, was bedeutet, dass seine Vorhersagen besser sind als der Zufall. Wichtig ist, dass die Modelle auf unterschiedliche Weise gut sein müssen; sie müssen unterschiedliche Vorhersagefehler machen.

Der Grund, warum die Modellmittelung funktioniert, ist, dass verschiedene Modelle in der Regel nicht alle die gleichen Fehler in der Testmenge machen.

– Seite 256, Deep Learning, 2016.

Die Kombination der Vorhersagen von mehreren neuronalen Netzen fügt eine Verzerrung hinzu, die wiederum der Varianz eines einzelnen trainierten neuronalen Netzmodells entgegenwirkt. Das Ergebnis sind Vorhersagen, die weniger empfindlich auf die Besonderheiten der Trainingsdaten, die Wahl des Trainingsschemas und die Zufälligkeit eines einzelnen Trainingslaufs reagieren.

Neben der Verringerung der Varianz in der Vorhersage kann das Ensemble auch zu besseren Vorhersagen führen als ein einzelnes bestes Modell.

… die Leistung eines Komitees kann besser sein als die Leistung des besten isoliert verwendeten Einzelnetzwerks.

– Seite 365, Neural Networks for Pattern Recognition, 1995.

Dieser Ansatz gehört zu einer allgemeinen Klasse von Methoden, die als „Ensemble-Lernen“ bezeichnet werden und Methoden beschreiben, die versuchen, die Vorhersagen von mehreren Modellen, die für dasselbe Problem erstellt wurden, optimal zu nutzen.

Beim Ensemble-Lernen wird im Allgemeinen mehr als ein Netzwerk auf demselben Datensatz trainiert, dann wird jedes der trainierten Modelle verwendet, um eine Vorhersage zu machen, bevor die Vorhersagen auf irgendeine Weise kombiniert werden, um ein endgültiges Ergebnis oder eine Vorhersage zu machen.

In der Tat ist die Zusammenstellung von Modellen ein Standardansatz beim angewandten maschinellen Lernen, um sicherzustellen, dass die stabilste und bestmögliche Vorhersage gemacht wird.

Alex Krizhevsky et al. haben beispielsweise in ihrer berühmten Arbeit aus dem Jahr 2012 mit dem Titel „Imagenet classification with deep convolutional neural networks“ (Klassifizierung von Bildern mit tiefen neuronalen Netzen), in der sehr tiefe neuronale Netze für die Fotoklassifizierung eingeführt wurden (d. h. AlexNet), eine Modellmittelung über mehrere gut funktionierende CNN-Modelle vorgenommen, um die zu diesem Zeitpunkt besten Ergebnisse zu erzielen. Die Leistung eines Modells wurde mit den durchschnittlichen Vorhersagen von zwei, fünf und sieben verschiedenen Modellen verglichen.

Wenn man die Vorhersagen von fünf ähnlichen CNNs mittelt, ergibt sich eine Fehlerquote von 16,4 %. Der Durchschnitt der Vorhersagen von zwei CNNs, die mit den oben genannten fünf CNNs trainiert wurden, ergibt eine Fehlerquote von 15,3 %.

Ensembling ist auch der Ansatz, der von den Gewinnern von Wettbewerben für maschinelles Lernen verwendet wird.

Eine weitere leistungsstarke Technik, um die bestmöglichen Ergebnisse bei einer Aufgabe zu erzielen, ist Modell-Ensembling. Wenn Sie sich Wettbewerbe zum maschinellen Lernen ansehen, insbesondere auf Kaggle, werden Sie sehen, dass die Gewinner sehr große Ensembles von Modellen verwenden, die unweigerlich jedes einzelne Modell schlagen, egal wie gut es ist.

– Seite 264, Deep Learning With Python, 2017.

How to Ensemble Neural Network Models

Der vielleicht älteste und immer noch am häufigsten verwendete Ansatz für das Ensembling neuronaler Netze wird als „Komitee von Netzen“ bezeichnet.

Eine Sammlung von Netzen mit derselben Konfiguration und unterschiedlichen anfänglichen Zufallsgewichten wird auf demselben Datensatz trainiert. Jedes Modell wird dann für eine Vorhersage verwendet, und die tatsächliche Vorhersage wird als Durchschnitt der Vorhersagen berechnet.

Die Anzahl der Modelle im Ensemble wird oft klein gehalten, sowohl wegen des Rechenaufwands beim Trainieren der Modelle als auch wegen der abnehmenden Leistung beim Hinzufügen weiterer Ensemblemitglieder. Ensembles können so klein sein wie drei, fünf oder 10 trainierte Modelle.

Das Gebiet des Ensemble-Lernens ist gut erforscht und es gibt viele Variationen dieses einfachen Themas.

Es kann hilfreich sein, jedes der drei Hauptelemente der Ensemble-Methode zu variieren; zum Beispiel:

  • Trainingsdaten: Variieren Sie die Auswahl der Daten, die zum Trainieren der einzelnen Modelle des Ensembles verwendet werden.
  • Ensemble-Modelle: Variieren Sie die Auswahl der Modelle, die im Ensemble verwendet werden.
  • Kombinationen: Variieren Sie die Art und Weise, wie die Ergebnisse der Ensemble-Mitglieder kombiniert werden.

Lassen Sie uns jedes Element der Reihe nach näher betrachten.

Variierende Trainingsdaten

Die Daten, die zum Training der einzelnen Ensemble-Mitglieder verwendet werden, können variiert werden.

Der einfachste Ansatz wäre die k-fache Kreuzvalidierung, um den Generalisierungsfehler der gewählten Modellkonfiguration zu schätzen. Bei diesem Verfahren werden k verschiedene Modelle auf k verschiedenen Teilmengen der Trainingsdaten trainiert. Diese k Modelle können dann gespeichert und als Mitglieder eines Ensembles verwendet werden.

Ein anderer beliebter Ansatz ist das Resampling des Trainingsdatensatzes mit Ersetzung und das anschließende Training eines Netzes mit dem resampelten Datensatz. Das Resampling-Verfahren bedeutet, dass die Zusammensetzung jedes Trainingsdatensatzes unterschiedlich ist, wobei die Möglichkeit besteht, dass die Beispiele dupliziert werden, so dass das auf dem Datensatz trainierte Modell eine etwas andere Erwartung an die Dichte der Stichproben und damit einen anderen Generalisierungsfehler hat.

Dieser Ansatz wird Bootstrap-Aggregation oder kurz Bagging genannt und wurde für die Verwendung mit nicht beschnittenen Entscheidungsbäumen mit hoher Varianz und geringer Verzerrung entwickelt. In der Regel wird eine große Anzahl von Entscheidungsbäumen verwendet, z. B. Hunderte oder Tausende, da sie schnell zu erstellen sind.

… ein natürlicher Weg zur Verringerung der Varianz und damit zur Erhöhung der Vorhersagegenauigkeit einer statistischen Lernmethode besteht darin, viele Trainingssätze aus der Grundgesamtheit zu nehmen, ein separates Vorhersagemodell unter Verwendung jedes Trainingssatzes zu erstellen und die resultierenden Vorhersagen zu mitteln. Dies ist natürlich nicht praktikabel, da wir im Allgemeinen keinen Zugang zu mehreren Trainingssätzen haben. Stattdessen können wir Bootstrap verwenden, indem wir wiederholte Stichproben aus dem (einzigen) Trainingsdatensatz nehmen.

– Seiten 216-317, An Introduction to Statistical Learning with Applications in R, 2013.

Ein gleichwertiger Ansatz könnte darin bestehen, eine kleinere Teilmenge des Trainingsdatensatzes ohne Regularisierung zu verwenden, um ein schnelleres Training und ein gewisses Overfitting zu ermöglichen.

Der Wunsch nach leicht unteroptimierten Modellen gilt ganz allgemein für die Auswahl von Ensemblemitgliedern.

… die Mitglieder des Komitees sollten nicht einzeln ausgewählt werden, um einen optimalen Kompromiss zwischen Verzerrung und Varianz zu erreichen, sondern sollten eine relativ geringere Verzerrung aufweisen, da die zusätzliche Varianz durch Mittelwertbildung entfernt werden kann.

– Seite 366, Neural Networks for Pattern Recognition, 1995.

Andere Ansätze können die Auswahl eines zufälligen Unterraums des Eingaberaums beinhalten, der jedem Modell zugewiesen wird, wie z.B. eine Untermenge des Hypervolumens im Eingaberaum oder eine Untermenge von Eingabefunktionen.

Ensemble Tutorials

Beispiele für Deep-Learning-Ensembles, die die Trainingsdaten variieren, finden Sie unter:

  • Wie man ein Random-Split-, Cross-Validation- und Bagging-Ensemble für Deep Learning entwickelt

Variierende Modelle

Das Training desselben eingeschränkten Modells auf denselben Daten mit unterschiedlichen Anfangsbedingungen wird angesichts der Schwierigkeit des Problems und der stochastischen Natur des Lernalgorithmus zu unterschiedlichen Modellen führen.

Das liegt daran, dass das Optimierungsproblem, das das Netz zu lösen versucht, so schwierig ist, dass es viele „gute“ und „unterschiedliche“ Lösungen gibt, um die Eingaben auf die Ausgaben abzubilden.

Die meisten Algorithmen für neuronale Netze erreichen eine suboptimale Leistung, weil es eine überwältigende Anzahl von suboptimalen lokalen Minima gibt. Nimmt man eine Reihe von neuronalen Netzen, die zu lokalen Minima konvergiert haben, und wendet eine Mittelwertbildung an, kann man eine verbesserte Schätzung erstellen. Eine Möglichkeit, diese Tatsache zu verstehen, ist die Überlegung, dass Netze, die in verschiedene lokale Minima gefallen sind, im Allgemeinen in verschiedenen Regionen des Merkmalsraums schlecht abschneiden und ihre Fehlerterme daher nicht stark korreliert sind.

– Wenn Netze nicht übereinstimmen: Ensemble-Methoden für hybride neuronale Netze, 1995.

Dies kann zu einer geringeren Varianz führen, aber den Generalisierungsfehler nicht wesentlich verbessern. Die von den Modellen gemachten Fehler können immer noch zu stark korreliert sein, weil die Modelle alle ähnliche Abbildungsfunktionen gelernt haben.

Ein alternativer Ansatz könnte darin bestehen, die Konfiguration jedes Ensemblemodells zu variieren, wie z.B. die Verwendung von Netzen mit unterschiedlicher Kapazität (z.B. Anzahl der Schichten oder Knoten) oder von Modellen, die unter unterschiedlichen Bedingungen (z.B. Lernrate oder Regularisierung) trainiert wurden.

Das Ergebnis kann ein Ensemble von Modellen sein, die eine heterogenere Sammlung von Abbildungsfunktionen gelernt haben und die wiederum eine geringere Korrelation in ihren Vorhersagen und Vorhersagefehlern aufweisen.

Unterschiede in der zufälligen Initialisierung, die zufällige Auswahl von Minibatches, Unterschiede in den Hyperparametern oder unterschiedliche Ergebnisse von nichtdeterministischen Implementierungen neuronaler Netze reichen oft aus, um verschiedene Mitglieder des Ensembles zu teilweise unabhängigen Fehlern zu veranlassen.

– Seiten 257-258, Deep Learning, 2016.

Ein solches Ensemble von unterschiedlich konfigurierten Modellen kann durch den normalen Prozess der Entwicklung des Netzwerks und der Abstimmung seiner Hyperparameter erreicht werden. Jedes Modell könnte während dieses Prozesses gespeichert und eine Teilmenge der besseren Modelle ausgewählt werden, um das Ensemble zu bilden.

Leicht minderwertig trainierte Netzwerke sind ein kostenloses Nebenprodukt der meisten Tuning-Algorithmen; es ist wünschenswert, solche zusätzlichen Kopien zu verwenden, selbst wenn ihre Leistung deutlich schlechter ist als die beste gefundene Leistung. Eine bessere Leistung kann jedoch durch sorgfältige Planung einer Ensemble-Klassifikation erreicht werden, indem die besten verfügbaren Parameter verwendet und verschiedene Exemplare auf verschiedenen Teilmengen der verfügbaren Datenbank trainiert werden.

– Neural Network Ensembles, 1990.

In Fällen, in denen das Training eines einzelnen Modells Wochen oder Monate dauern kann, kann eine andere Alternative darin bestehen, das beste Modell während des Trainingsprozesses regelmäßig zu speichern, so genannte Snapshot- oder Checkpoint-Modelle, und dann Ensemble-Mitglieder unter den gespeicherten Modellen auszuwählen. Dies hat den Vorteil, dass mehrere Modelle auf denselben Daten trainiert werden, auch wenn sie in einem einzigen Trainingslauf gesammelt wurden.

Snapshot Ensembling erzeugt ein Ensemble von genauen und unterschiedlichen Modellen aus einem einzigen Trainingsprozess. Das Herzstück von Snapshot Ensembling ist ein Optimierungsprozess, der mehrere lokale Minima besucht, bevor er zu einer endgültigen Lösung konvergiert. Wir nehmen Modell-Snapshots an diesen verschiedenen Minima und mitteln ihre Vorhersagen zur Testzeit.

– Snapshot Ensembles: Train 1, get M for free, 2017.

Eine Variante des Snapshot-Ensembles besteht darin, Modelle aus einer Reihe von Epochen zu speichern, die vielleicht durch die Überprüfung der Lernkurven der Modellleistung auf den Trainings- und Validierungsdatensätzen während des Trainings ermittelt wurden. Ensembles aus solchen zusammenhängenden Sequenzen von Modellen werden als horizontale Ensembles bezeichnet.

Zunächst werden Netzwerke ausgewählt, die für einen relativ stabilen Bereich von Epochen trainiert wurden. Die Vorhersagen der Wahrscheinlichkeit jeder Bezeichnung werden von Standardklassifizierern für die ausgewählte Epoche erstellt und dann gemittelt.

– Horizontales und vertikales Ensemble mit tiefer Repräsentation für die Klassifizierung, 2013.

Eine weitere Verbesserung des Snapshot-Ensembles besteht darin, das Optimierungsverfahren während des Trainings systematisch zu variieren, um verschiedene Lösungen (d. h. Sätze von Gewichten) zu erzwingen, von denen die besten in Kontrollpunkten gespeichert werden können. Dies könnte bedeuten, dass eine oszillierende Menge an Rauschen über die Trainingsepochen injiziert wird oder die Lernrate während der Trainingsepochen oszilliert. Eine Variante dieses Ansatzes mit der Bezeichnung Stochastic Gradient Descent with Warm Restarts (SGDR) hat bei Standardaufgaben der Fotoklassifikation ein schnelleres Lernen und Ergebnisse auf dem neuesten Stand der Technik gezeigt.

Unser SGDR simuliert warme Neustarts, indem es die Lernrate so einstellt, dass konkurrenzfähige Ergebnisse etwa zwei- bis viermal schneller erzielt werden. Wir haben mit SGDR auch neue State-of-the-Art-Resultate erzielt, vor allem durch die Verwendung noch breiterer und mehrerer Schnappschüsse aus der Trajektorie von SGDR.

– SGDR: Stochastic Gradient Descent with Warm Restarts, 2016.

Ein Vorteil sehr tiefer neuronaler Netze ist, dass die versteckten Zwischenschichten eine gelernte Repräsentation der niedrig aufgelösten Eingabedaten liefern. Die versteckten Schichten können ihre internen Repräsentationen direkt ausgeben, und die Ausgabe einer oder mehrerer versteckter Schichten eines sehr tiefen Netzes kann als Eingabe für ein neues Klassifizierungsmodell verwendet werden. Dies ist vielleicht am effektivsten, wenn das tiefe Modell mit einem Autoencoder-Modell trainiert wird. Diese Art von Ensemble wird als vertikales Ensemble bezeichnet.

Diese Methode stellt eine Reihe von Klassifizierern zusammen, deren Eingaben die Darstellung von Zwischenschichten sind. Es wird eine niedrigere Fehlerquote erwartet, da diese Merkmale vielfältig erscheinen.

– Horizontales und vertikales Ensemble mit tiefer Repräsentation zur Klassifizierung, 2013.

Ensemble Tutorials

Beispiele für Deep-Learning-Ensembles, die Modelle variieren, finden Sie unter:

  • Wie man ein Snapshot-Ensemble für Deep Learning entwickelt
  • Wie man ein horizontales Voting-Ensemble für Deep Learning entwickelt

Variierende Kombinationen

Die einfachste Art, die Vorhersagen zu kombinieren, ist die Berechnung des Durchschnitts der Vorhersagen der Ensemblemitglieder.

Dies kann leicht verbessert werden, indem die Vorhersagen der einzelnen Modelle gewichtet werden, wobei die Gewichte anhand eines Hold-out-Validierungsdatensatzes optimiert werden. Auf diese Weise erhält man ein gewichtetes Durchschnittsensemble, das manchmal auch als Model Blending bezeichnet wird.

… könnte man erwarten, dass einige Mitglieder des Ausschusses typischerweise bessere Vorhersagen machen als andere Mitglieder. Wir würden daher erwarten, dass wir den Fehler noch weiter reduzieren können, wenn wir einigen Ausschussmitgliedern mehr Gewicht geben als anderen. Wir betrachten also eine verallgemeinerte Ausschussvorhersage, die durch eine gewichtete Kombination der Vorhersagen der Mitglieder gegeben ist …

– Seite 367, Neural Networks for Pattern Recognition, 1995.

Ein weiterer Schritt in der Komplexität besteht darin, ein neues Modell zu verwenden, um zu lernen, wie die Vorhersagen der einzelnen Ensemblemitglieder am besten kombiniert werden können.

Das Modell könnte ein einfaches lineares Modell sein (z.B. ähnlich wie der gewichtete Durchschnitt), es könnte aber auch ein ausgeklügeltes nichtlineares Verfahren sein, das zusätzlich zu den Vorhersagen der einzelnen Mitglieder auch die spezifische Eingabeprobe berücksichtigt. Dieser allgemeine Ansatz zum Erlernen eines neuen Modells wird als Modellstapelung oder gestapelte Verallgemeinerung bezeichnet.

Die gestapelte Verallgemeinerung funktioniert durch Ableitung der Verzerrungen des/der Verallgemeinerer(s) in Bezug auf eine vorgegebene Lernmenge. Diese Ableitung erfolgt durch Verallgemeinerung in einem zweiten Raum, dessen Eingaben (zum Beispiel) die Vermutungen der ursprünglichen Verallgemeinerer sind, wenn sie mit einem Teil der Lernmenge gelehrt werden und versuchen, den Rest zu erraten, und dessen Ausgabe (zum Beispiel) die richtige Vermutung ist. Bei Verwendung eines einzelnen Generalisierers ist die gestapelte Generalisierung ein Schema zur Schätzung (und anschließenden Korrektur) des Fehlers eines Generalisierers, der mit einer bestimmten Lernmenge trainiert und dann mit einer bestimmten Frage konfrontiert wurde.

– Gestapelte Generalisierung, 1992.

Es gibt ausgefeiltere Methoden für das Stapeln von Modellen, wie z.B. das Boosting, bei dem Ensemble-Mitglieder nacheinander hinzugefügt werden, um die Fehler früherer Modelle zu korrigieren. Aufgrund der zusätzlichen Komplexität wird dieser Ansatz bei großen neuronalen Netzmodellen seltener verwendet.

Eine andere, etwas andere Kombination besteht darin, die Gewichte mehrerer neuronaler Netze mit derselben Struktur zu kombinieren. Die Gewichte mehrerer Netze können gemittelt werden, was hoffentlich zu einem neuen Einzelmodell führt, das eine bessere Gesamtleistung als das ursprüngliche Modell aufweist. Dieser Ansatz wird als Mittelung der Modellgewichte bezeichnet.

… legt nahe, dass es vielversprechend ist, diese Punkte im Gewichtsraum zu mitteln und ein Netzwerk mit diesen gemittelten Gewichten zu verwenden, anstatt ein Ensemble zu bilden, indem die Ausgaben der Netzwerke im Modellraum gemittelt werden

– Averaging Weights Leads to Wider Optima and Better Generalization, 2018.

Ensemble Tutorials

Beispiele für Deep-Learning-Ensembles mit unterschiedlichen Kombinationen siehe:

  • How to Develop a Model Averaging Ensemble for Deep Learning
  • How to Develop a Weighted Average Ensemble for Deep Learning
  • How to Develop a Stacking Ensemble for Deep Learning
  • How to Create a Polyak-Ruppert Ensemble for Deep Learning

Summary of Ensemble Techniques

Zusammengefasst, we can list some of the more common and interesting ensemble methods for neural networks organized by each element of the method that can be varied, as follows:

  • Varying Training Data
    • k-fold Cross-Validation Ensemble
    • Bootstrap Aggregation (bagging) Ensemble
    • Random Training Subset Ensemble
  • Varying Models
    • Multiple Training Run Ensemble
    • Hyperparameter Tuning Ensemble
    • Snapshot Ensemble
    • Horizontal Epochs Ensemble
    • Vertical Representational Ensemble
  • Varying Combinations
    • Model Averaging Ensemble
    • Weighted Average Ensemble
    • Stacked Generalization (stacking) Ensemble
    • Boosting Ensemble
    • Model Weight Averaging Ensemble

There is no single best ensemble method; perhaps experiment with a few approaches or let the constraints of your project guide you.

Further Reading

This section provides more resources on the topic if you are looking to go deeper.

Books

  • Section 9.6 Committees of networks, Neural Networks for Pattern Recognition, 1995.
  • Section 7.11 Bagging and Other Ensemble Methods, Deep Learning, 2016.
  • Section 7.3.3 Model ensembling, Deep Learning With Python, 2017.
  • Section 8.2 Bagging, Random Forests, Boosting, An Introduction to Statistical Learning with Applications in R, 2013.

Papers

  • Neural Network Ensembles, 1990.
  • Neural Network Ensembles, Cross Validation, and Active Learning, 1994.
  • When networks disagree: Ensemble methods for hybrid neural networks, 1995.
  • Snapshot Ensembles: Train 1, get M for free, 2017.
  • SGDR: Stochastic Gradient Descent with Warm Restarts, 2016.
  • Horizontal and vertical ensemble with deep representation for classification, 2013.
  • Stacked generalization, 1992.
  • Averaging Weights Leads to Wider Optima and Better Generalization, 2018.

Articles

  • Ensemble learning, Wikipedia.
  • Bootstrap aggregating, Wikipedia.
  • Boosting (machine learning), Wikipedia.

Summary

In this post, you discovered ensemble methods for deep learning neural networks to reduce variance and improve prediction performance.

Specifically, you learned:

  • Neural network models are nonlinear and have a high variance, which can be frustrating when preparing a final model for making predictions.
  • Ensemble-Lernen kombiniert die Vorhersagen von mehreren neuronalen Netzwerkmodellen, um die Varianz der Vorhersagen zu verringern und den Generalisierungsfehler zu reduzieren.
  • Techniken für das Ensemble-Lernen können nach dem Element gruppiert werden, das variiert wird, wie z. B. Trainingsdaten, das Modell und die Art und Weise, wie Vorhersagen kombiniert werden.

Sind noch Fragen offen?
Stellen Sie Ihre Fragen in den Kommentaren unten und ich werde mein Bestes tun, um zu antworten.

Entwickeln Sie noch heute bessere Deep Learning Modelle!

Besseres Deep Learning

Schneller trainieren, Überflüssiges reduzieren und Ensembles bilden

…mit nur ein paar Zeilen Python-Code

Entdecken Sie in meinem neuen Ebook:
Besser Deep Learning

Es bietet Tutorials zum Selbststudium zu Themen wie:
Gewichtsabnahme, Batch-Normalisierung, Dropout, Modellstapelung und vieles mehr…

Bringen Sie besseres Deep Learning in Ihre Projekte!

Skip the Academics. Just Results.

See What’s Inside

Tweet Share Share

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.