Was ist Dropout? Reduzieren Sie die Überanpassung in Ihren neuronalen Netzen

Letztes Update am 17. Dezember 2019

Beim Training neuronaler Netze ist es Ihr Ziel, ein Modell zu erstellen, das wirklich gut funktioniert.

Das ist absolut sinnvoll, da es keinen Sinn macht, ein Modell zu verwenden, das nicht funktioniert.

Es gibt jedoch ein relativ enges Gleichgewicht, das Sie einhalten müssen, wenn Sie versuchen, ein perfekt funktionierendes Modell zu finden.

Es ist das Gleichgewicht zwischen Unteranpassung und Überanpassung.

Um eine Unteranpassung (schlechtere Vorhersageleistung als möglich) zu vermeiden, können Sie so lange trainieren, bis Sie auf das andere Problem stoßen – die Überanpassung, d.h. eine zu hohe Empfindlichkeit gegenüber Ihren Trainingsdaten. Beides beeinträchtigt die Leistung des Modells.

Manchmal ist der Bereich, in dem Ihr Modell weder unter- noch überangepasst ist, wirklich klein. Glücklicherweise kann dieser Bereich durch die Anwendung eines so genannten Regularisierers erweitert werden – eine Technik, die das Verhalten des Modells während des Trainings reguliert, um die Überanpassung für einige Zeit zu verzögern.

Dropout ist eine solche Regularisierungstechnik. In diesem Blogbeitrag gehen wir darauf ein, indem wir uns einige Dinge ansehen. Erstens gehen wir näher auf den Unterschied zwischen Underfitting und Overfitting ein, damit wir ein tieferes Verständnis für die beiden bekommen. Zweitens stellen wir Dropout auf der Grundlage wissenschaftlicher Arbeiten vor und erklären, wie es funktioniert. Drittens werden wir einen Blick darauf werfen, ob es wirklich funktioniert, indem wir die verschiedenen Experimente beschreiben, die mit dieser Technik durchgeführt wurden. Schließlich werden wir das traditionelle Dropout mit dem Gaußschen Dropout vergleichen – und wie es das Training Ihres Modells verändert.

Bereit? Let’s go! 😎

Wie gut schneidet Ihr Modell ab? Underfitting und Overfitting

Werfen wir zunächst einen Blick darauf, was Underfitting und Overfitting sind.

Beim Start des Trainingsprozesses werden die Gewichte Ihrer Neuronen wahrscheinlich nach dem Zufallsprinzip oder mit einer anderen Initialisierungsstrategie initialisiert. Das bedeutet, dass die Fehlerrate bzw. der Verlustwert in den ersten Epochen sehr hoch ist. Sehen Sie sich dieses Diagramm an, in dem der Verlust während der ersten Epochen sehr schnell abnimmt:

Wenn sowohl der Trainingsverlust als auch die Validierung abnehmen, wird das Modell als unterangepasst bezeichnet: Es kann immer noch trainiert werden, um bessere Vorhersagen zu machen, d.h. seine Vorhersagekraft zu steigern.

Die zu ergreifende Maßnahme besteht dann darin, das Training fortzusetzen.

Dies kann jedoch nicht ewig so weitergehen. Die Optimierung eines Modells beinhaltet die Erstellung von Validierungsvorhersagen mit Ihren Validierungsdaten, was zu Verlustwerten und Gradienten für die Optimierung führt, die dann durchgeführt wird. Leider bedeutet dies, dass einige der ideosynkratischen Eigenschaften der Daten in die Modellgewichte einfließen. Da es sich bei den Daten um eine Stichprobe und nicht um eine vollständige Population handelt, unterscheiden sie sich immer geringfügig von der vollständigen Population, die sie repräsentieren. Wenn Sie das Modell für Hunderte von Epochen mit diesen Daten optimieren, erhalten Sie immer einen Offset in Bezug auf die wahre Population.

Wenn Sie weiter trainieren würden, würde sich Ihr Modell immer mehr an diese Ideosynkrasien anpassen, so dass es für Daten, die es noch nie gesehen hat – d.h. andere Stichproben aus der Population – weniger geeignet ist. Man spricht dann von einer Überanpassung des Modells: Es ist zu gut an die Trainings- und Validierungsdaten angepasst.

Lassen Sie uns einen Moment innehalten! 👩💻

Blogs bei MachineCurve lehren Machine Learning für Entwickler. Melden Sie sich noch heute für das kostenlose Machine Learning Update von MachineCurve an! Sie werden neue Dinge lernen und Konzepte, die Sie bereits kennen, besser verstehen.
Wir versenden mindestens jeden Freitag eine E-Mail. Willkommen!

Mit der Anmeldung erklären Sie sich damit einverstanden, dass wir Sie per E-Mail über Dienstleistungen und Sonderangebote informieren dürfen.

Overfitting kann auf Diagrammen wie dem obigen erkannt werden, indem der Validierungsverlust untersucht wird: Wenn er wieder ansteigt, während der Trainingsverlust konstant bleibt oder abnimmt, wissen Sie, dass Ihr Modell überangepasst ist. Wie Sie sehen können, hat das ELU-powered Netzwerk in der obigen Grafik begonnen, sich leicht zu überanpassen.

Sowohl Unteranpassung als auch Überanpassung sind zu vermeiden, da Ihr Modell schlechter abschneidet, als es theoretisch abschneiden könnte. Glücklicherweise können bestimmte Techniken – so genannte Regularizer – eingesetzt werden, um die Auswirkungen der Überanpassung zu verringern. Dropout ist eine davon – und wir werden sie in diesem Blog behandeln. Beginnen wir damit, zu analysieren, was Dropout ist, was es tut und wie es funktioniert.

Was ist Dropout und wie funktioniert es?

In ihrem Papier „Dropout: A Simple Way to Prevent Neural Networks from Overfitting“ beschreiben Srivastava et al. (2014) die Dropout-Technik, bei der es sich um eine stochastische Regularisierungstechnik handelt, die das Overfitting reduzieren soll, indem sie (theoretisch) viele verschiedene Architekturen neuronaler Netze kombiniert.

Bei Dropout werden im Trainingsprozess im Wesentlichen Neuronen aus einem neuronalen Netz entfernt. Sie werden vorübergehend aus dem Netz entfernt, was wie folgt visualisiert werden kann:

Beachten Sie, dass auch die Verbindungen oder Synapsen entfernt werden und somit keine Daten mehr durch diese Neuronen fließen.

…aber nur ganz kurz! Dieser Prozess wiederholt sich in jeder Epoche (oder sogar in jedem Minibatch! – Srivastava et al. 2014), so dass das Sampling ausgedünnter Netzwerke sehr häufig stattfindet. Dies sollte zu deutlich niedrigeren Generalisierungsfehlerraten (d. h. Overfitting) führen, da „das Vorhandensein von Neuronen unzuverlässig gemacht wird“ (Srivastava et al., 2014).

Dieses Entfernen von Neuronen und Synapsen während des Trainings erfolgt nach dem Zufallsprinzip mit einem Parameter \(p\), der einstellbar ist (bzw. angesichts empirischer Tests am besten auf 0,5 für verborgene Schichten und nahezu 1,0 für die Eingabeschicht gesetzt wird). Dies bedeutet, dass das „ausgedünnte“ Netz den Autoren zufolge aus der globalen Architektur entnommen und für das Training verwendet wird.

Zum Testzeitpunkt „ist es nicht möglich, die Vorhersagen von exponentiell vielen ausgedünnten Modellen explizit zu mitteln“ (Srivastava et al., 2014). Das stimmt: Es würde zu einer Rechenlast werden, wenn Hunderttausende von Epochen/Minibatches gemittelt werden müssen, vor allem, wenn die Netzwerke sehr groß werden.

Glücklicherweise gibt es eine Lösung, die einfach ist, aber zum gleichen Ergebnis führt. Durch die Verwendung eines neuronalen Netzes, bei dem die Gewichtungsausgaben entsprechend dem \(p\), mit dem eine Einheit während des Trainings beibehalten wurde, herunterskaliert werden. Das bedeutet, dass die erwartete Ausgabe zum Trainingszeitpunkt die gleiche ist wie die tatsächliche Ausgabe zum Testzeitpunkt, was das Rechenproblem löst und Dropout in der Praxis verwendbar macht.

Bernoulli-Variablen

Schauen wir uns nun an, wie Dropout mathematisch funktioniert. Keine Sorge, wir werden Sie nicht mit Mathematik überhäufen, sondern versuchen, einen sehr intuitiven Standpunkt einzunehmen.

Sehr vereinfacht gesagt, erhält ein Neuron seinen Input so: z.B. senden drei vorgelagerte Neuronen in einer Drei-Neuronen-Dense-Schicht ihren Output an die nächste Schicht, wo er als Input empfangen wird. Der Einfachheit halber lassen wir hier die Bias-Werte weg.

Normales Neuron (angenommen ohne Bias)

Es ist sehr einfach, von hier zu einem Dropout-Neuron überzugehen, das wie folgt aussieht:

Dropout-Neuron (angenommen ohne Bias)

Mathematisch handelt es sich um sogenannte Bernoulli-Zufallsvariablen:

In der Wahrscheinlichkeitstheorie und Statistik ist die Bernoulli-Verteilung, benannt nach dem Schweizer Mathematiker Jacob Bernoulli, die diskrete Wahrscheinlichkeitsverteilung einer Zufallsvariablen, die den Wert 1 mit der Wahrscheinlichkeit \(p\) annimmt.

Wikipedia über die Bernoulli-Verteilung

Um Dropout zu erstellen, haben Srivastava et al. (2014) den Neuronen des Netzwerks Bernoulli-Variablen zugeordnet (durch Multiplikation mit neuronalen Outputs), „von denen jede mit der Wahrscheinlichkeit \(p\) den Wert 1″ annimmt. Der \(p\)-Wert wird hier vom Ingenieur für maschinelles Lernen ausgewählt, in der Regel auf der Grundlage eines Validierungssatzes, oder naiv auf 0,5 gesetzt.

Nie wieder neue Artikel zum maschinellen Lernen verpassen ✅

Blogs bei MachineCurve lehren maschinelles Lernen für Entwickler. Melden Sie sich noch heute für das kostenlose Machine Learning Update von MachineCurve an! Sie werden neue Dinge lernen und Konzepte, die Sie bereits kennen, besser verstehen.
Wir versenden mindestens jeden Freitag eine E-Mail. Willkommen!

Mit der Anmeldung erklären Sie sich damit einverstanden, dass wir Sie per E-Mail über Dienstleistungen und Sonderangebote informieren dürfen.

Innerhalb des Netzes bestimmt die Bernoulli-Variable und ihr Wert von 1 oder 0, ob ein Neuron während dieser Epoche oder Minibatch-Feedforward-Operation „herausgefallen“ ist. Dies führt in der Tat zu dem „ausgedünnten Netzwerk“, von dem Srivastava et al. (2014) sprechen.

Warum könnte Dropout die Überanpassung reduzieren?

Sie fragen sich jetzt vielleicht: Warum reduzieren Bernoulli-Variablen, die an reguläre neuronale Netzwerke angehängt sind und das Netzwerk dünner machen, die Überanpassung?

Um diese Frage zu beantworten, müssen wir einen Blick darauf werfen, wie neuronale Netze trainiert werden.

Gemeinsam wird zu diesem Zweck Backpropagation und Gradientenabstieg oder ein ähnlicher Optimierer verwendet. Ausgehend von einem Verlustwert werden sogenannte „Gradienten“ berechnet, die der Optimierer dann in die Gewichte des Netzes einarbeitet. Durch die Verwendung dieser Gradienten (in Bezug auf die Fehlerrate) zur Änderung der Gewichte wird das Netz bei der nächsten Iteration des Trainingsprozesses wahrscheinlich etwas besser abschneiden.

Die Berechnung des Gradienten erfolgt in Bezug auf den Fehler, aber auch in Bezug auf das, was alle anderen Einheiten tun (Srivastava et al., 2014). Das bedeutet, dass bestimmte Neuronen durch Änderungen ihrer Gewichte die Fehler anderer Neuronen korrigieren können. Srivastava et al. (2014) argumentieren, dass dies zu komplexen Co-Anpassungen führt, die sich möglicherweise nicht auf ungesehene Daten verallgemeinern lassen, was zu einer Überanpassung führt.

Dropout verhindert also diese Co-Anpassungen, indem es – wie wir bereits geschrieben haben – das Vorhandensein anderer versteckter Neuronen unzuverlässig macht. Neuronen können sich einfach nicht auf andere Einheiten verlassen, um ihre Fehler zu korrigieren, was die Anzahl der Co-Anpassungen reduziert, die sich nicht auf ungesehene Daten verallgemeinern lassen, und somit vermutlich auch die Überanpassung reduziert.

Neuronale Netze mit Dropout trainieren

Neuronale Netze zu trainieren, an die Dropout angehängt wurde, ist so ziemlich dasselbe wie neuronale Netze ohne Dropout zu trainieren. Stochastischer Gradientenabstieg oder ähnliche Optimierer können verwendet werden. Der einzige Unterschied besteht laut Srivastava et al. (2014) in der Verwendung eines Minibatch-Ansatzes: Statt pro Epoche werden ausgedünnte Netze pro Minibatch abgetastet.

Zusätzlich können auch Methoden verwendet werden, die den klassischen SGD verbessern – wie Momentum – und zeigen ähnliche Verbesserungen wie bei regulären neuronalen Netzen (Srivastava et al., 2014).

Was die Autoren ebenfalls als nützlich während des Trainings empfanden, ist die Anwendung der Max-Norm-Regularisierung, was bedeutet, dass die Norm des eingehenden Gewichts durch einen Maximalwert \(c\) begrenzt wird. Dieser Wert muss vom Ingenieur im Vorfeld festgelegt und anhand eines Validierungssatzes bestimmt werden (Srivastava et al, 2014).

Die Kombination von Dropout mit Max-Norm-Regularisierung verbessert die Leistung im Vergleich zur alleinigen Verwendung von Dropout, aber die Autoren berichteten über noch bessere Ergebnisse, wenn Dropout und Max-Norm-Regularisierung mit zwei anderen Dingen kombiniert werden:

  • Große, abklingende Lernraten.
  • Hohes Momentum.

Nach Srivastava et al. (2014) lässt sich dies möglicherweise mit folgenden Argumenten begründen:

  1. Die Regulierung von Gewichtsvektoren ermöglicht die Verwendung großer Lernraten ohne explodierende Gewichte.
  2. Dropout-Rauschen plus große Lernraten helfen den Optimierern dann, „verschiedene Regionen des Gewichtsraums zu erforschen, die sonst nur schwer zu erreichen gewesen wären“.
  3. Das Verringern der Lernrate verlangsamt dann die Sprunghaftigkeit des Explorationsprozesses, so dass sich schließlich „ein Minimum einstellt“.
  4. Eine hohe Dynamik ermöglicht es dem Netz, lokale Minima zu überwinden, wodurch die Wahrscheinlichkeit steigt, dass das globale Minimum gefunden wird.

Wirkt Dropout tatsächlich? Experimentelle Ergebnisse

Bei jeder Verbesserung im maschinellen Lernen ist es schön, eine theoretische Verbesserung zu haben – aber es ist auch wichtig zu testen, ob sie wirklich funktioniert. Srivastava et al. (2014) führten mehrere Tests durch, um herauszufinden, ob Dropout funktioniert. Erstens nutzten sie verschiedene Standarddatensätze (z. B. den MNIST-Datensatz), um zu testen, ob Dropout die Modellleistung bei einer Vielzahl von Klassifizierungsproblemen verbessert.

Zweitens überprüften sie, wie es mit verschiedenen anderen Regularisierern funktioniert (was zu der Erkenntnis führte, dass die Max-Norm-Regularisierung zusammen mit Dropout am besten funktioniert – aber wir werden uns diese Ergebnisse später noch genauer ansehen), und drittens untersuchten Srivastava et al. (2014), welche Dropout-Raten (d. h., welcher Parameter \(p\)) am besten funktioniert und wie sich die Datengröße auf die Dropout-Leistung auswirkt. Schauen wir uns das mal an!

Stichproben aus dem MNIST-Datensatz

Dropout vs. kein Dropout bei Standarddatensätzen

Die Autoren testeten Dropout vs. kein Dropout bei diesen Standarddatensätzen (Srivastava et al., 2014):

  • Der MNIST-Datensatz, der Tausende von handgeschriebenen Ziffern enthält;
  • Der TIMIT-Sprachbenchmarkdatensatz für saubere Spracherkennung.
  • Die CIFAR-10- und CIFAR-100-Datensätze, die winzige natürliche Bilder in 10 und 100 Klassen enthalten.
  • Der Street View House Numbers (SVHN)-Datensatz, mit Bildern von Hausnummern, die von Google Street View gesammelt wurden.
  • Der ImageNet-Datensatz, der viele natürliche Bilder enthält.
  • Der Reuters RCV1 Newswire-Artikel-Datensatz. Hierbei handelt es sich eher um einen Text- als um einen Bilddatensatz.
Beispiele aus dem CIFAR10-Datensatz

Für alle Datensätze verbesserte Dropout die Generalisierungskraft des Modells. Bei MNIST konnten drastische Unterschiede in den Testfehlern festgestellt werden, mit erheblichen Verbesserungen für alle verschiedenen getesteten Architekturen.

Schließe dich Hunderten von anderen Lernern an! 😎

Blogs bei MachineCurve lehren Machine Learning für Entwickler. Melden Sie sich noch heute für das kostenlose Machine Learning Update von MachineCurve an! Sie werden neue Dinge lernen und Konzepte, die Sie bereits kennen, besser verstehen.
Wir versenden mindestens jeden Freitag eine E-Mail. Willkommen!

Mit der Anmeldung erklären Sie sich damit einverstanden, dass wir Sie per E-Mail über Dienstleistungen und Sonderangebote informieren dürfen.

Dropout übertrifft auch reguläre neuronale Netze auf den ConvNets, die auf CIFAR-100, CIFAR-100 und den ImageNet-Datensätzen trainiert wurden.

Für den SVHN-Datensatz konnte eine weitere interessante Beobachtung gemeldet werden: wenn Dropout auf die Faltungsschicht angewendet wird, steigt die Leistung ebenfalls. Nach Ansicht der Autoren ist dies interessant, da zuvor davon ausgegangen wurde, dass diese Schichten nicht empfindlich auf Overfitting reagieren, da sie nicht viele Parameter haben (Srivastava et al., 2014). Es wird argumentiert, dass das Hinzufügen von Dropout zu den Conv-Schichten verrauschte Eingaben an die nachfolgenden Dense-Schichten liefert, was diese weiter vor Overfitting schützt.

Schließlich funktioniert Dropout auch bei den TIMIT-Sprachbenchmark-Datensätzen und dem Reuters-RCV1-Datensatz, aber hier war die Verbesserung im Vergleich zu den Vision- und Sprachdatensätzen viel geringer.

Dropout vs. kein Dropout mit anderen Regularisierern

Nachdem die Autoren nun wussten, dass Dropout bei einer Vielzahl von Problemen des maschinellen Lernens gut skaliert, untersuchten sie es weiter: Wie schneidet es im Vergleich zu anderen Regularisierern ab?

Es wurden verschiedene Regularisierungsmethoden zur Vermeidung von Overfitting getestet:

  • L2-Gewichtsabnahme;
  • Lasso;
  • KL-Sparsity;
  • Max-Norm-Regularisierung.

Srivastava et al. (2014) fanden heraus, dass Dropout in Kombination mit der Max-Norm-Regularisierung sogar noch niedrigere Generalisierungsfehler liefert. Tatsächlich lieferte es den niedrigsten gemeldeten Fehler, gefolgt – mit einigem Abstand – von Dropout + L2-Regularisierung und schließlich den anderen.

Daher könnte es bei der Anwendung von Dropout auch eine gute Idee sein, gleichzeitig eine Max-Norm-Regularisierung durchzuführen.

Wann funktioniert Dropout am besten? Über Dropout-Rate und Datensatzgröße

Eine weitere Frage, die man zu beantworten versuchte: Beeinflusst die Dropout-Rate (d.h. der Parameter \(p\)) und/oder die Datensatzgröße die Leistung von Dropout und der neuronalen Netze, an die es angehängt ist?

Die Frage muss mit ja beantwortet werden.

Was ist der beste Wert für \(p\)?

Zunächst der Parameter \(p\). Wie wir uns inzwischen erinnern können, ist er einstellbar und muss vom Ingenieur für maschinelles Lernen im Voraus festgelegt werden. Die Tatsache, dass er abstimmbar ist, führt zu denselben Fehlern, warum feste Lernraten keine gute Idee sind: Man weiß einfach nicht, welcher \(p\) am besten zu den Daten passt.

Daher, so argumentieren die Autoren, muss die Auswahl eines Wertes für \(p\) durch einige anfängliche Tests mit einer Validierungsmenge erfolgen.

Das haben sie auch getan – um zu sehen, ob sich interessante Muster finden lassen.

Und sie haben ein solches Muster gefunden: über mehrere Szenarien hinweg scheint ein Wert von \(p \ca. 0,5\) für die versteckten Schichten bei der Anwendung von Dropout die beste Leistung zu erzielen (Srivastava et al, 2014). Dies gilt für alle Schichten außer der Eingabeschicht, bei der \(p\) \(\ca. 1,0\) sein muss. Letzteres ist vermutlich der Fall, weil die Eingabeschicht die Eingabedaten nimmt und es schwierig ist, Muster zu finden, wenn Daten zufällig weggelassen werden.

Wie verhält sich Dropout in Bezug auf die Datensatzgröße?

Den Autoren zufolge ermöglicht ein „guter Regularizer, einen guten Generalisierungsfehler von Modellen mit einer großen Anzahl von Parametern zu erhalten, die auf kleinen Datensätzen trainiert wurden“. Das bedeutet, dass er auf Daten, die er zuvor nicht gesehen hat, wirklich gut funktioniert – selbst wenn er mit kleinen Daten trainiert wurde.

Um herauszufinden, ob Dropout über verschiedene Datensatzgrößen hinweg gut regularisiert, führten Srivastava et al. (2014) Tests mit verschiedenen Größen auf dem MNIST-Datensatz durch. Die Größen waren wie folgt: „100, 500, 1K, 5K, 10K und 50K zufällig aus dem MNIST-Trainingsdatensatz ausgewählt“ (Srivastava et al., 2014).

Wir helfen Ihnen beim maschinellen Lernen! 🧠

Blogs bei MachineCurve lehren Machine Learning für Entwickler. Melden Sie sich noch heute für das kostenlose Machine Learning Update von MachineCurve an! Sie werden neue Dinge lernen und Konzepte, die Sie bereits kennen, besser verstehen.
Wir versenden mindestens jeden Freitag eine E-Mail. Willkommen!

Mit der Anmeldung erklären Sie sich damit einverstanden, dass wir Sie per E-Mail über Dienstleistungen und Sonderangebote informieren dürfen.

Die Autoren fanden heraus, dass es einen Kompromiss gibt zwischen dem Zeitpunkt, an dem Dropout notwendig ist, und dem Zeitpunkt, an dem es nicht mehr nützlich ist. Erstens, um den Fall abzudecken, in dem der Datensatz extrem klein ist: Selbst Dropout verbessert die Leistung in diesem Fall nicht, einfach weil die Größe des Datensatzes zu klein ist. Das Gleiche gilt für Datensätze, die groß genug sind: Dropout verbessert dann das Modell nicht mehr, sondern verschlechtert die Modellleistung.

Es gibt also einen „Sweet Spot“, wann Dropout notwendig ist und wann es klug ist, es nicht zu verwenden (oder den Datensatz zu vergrößern). Nach Srivastava et al. (2014) gibt es keine Heuristiken, um diese Größe zu bestimmen; vielmehr muss sie mit einem Validierungsset ermittelt werden.

Gaußscher Dropout: Gaußsche statt Bernoulli-Variablen

Wir erinnern uns daran, dass Dropout mit Bernoulli-Variablen funktioniert, die mit der Wahrscheinlichkeit \(p\) den Wert 1 annehmen und mit dem Rest \(1 – p\) den Wert 0.

Diese Idee kann verallgemeinert werden, um die Aktivierungen mit Zufallsvariablen aus anderen Verteilungen zu multiplizieren (Srivastava et al., 2014). In ihrer Arbeit fanden Srivastava et al. heraus, dass die Gauß-Verteilung und damit Gauß-Variablen genauso gut – und vielleicht sogar besser – funktionieren.

Die Anwendung von Gauß-Variablen kann auf ähnliche Weise erfolgen: Ausdünnen von Netzwerken zur Trainingszeit und Verwendung gewichteter Aktivierungen zur Test- und Produktionszeit (wie beim regulären Dropout). Die Autoren haben sich jedoch dafür entschieden, Gaussian Dropout anders zu verwenden – nämlich multiplikativ. Anstelle von Ausdünnung und Gewichtung wird das Gaußsche Dropout zur Trainingszeit gewichtet, wenn die aktivierten Werte, die nicht fallen gelassen werden, mit \(1/p\) statt mit \(1\) (beim regulären Bernoulli Dropout) multipliziert werden. Sie werden zur Testzeit nicht verändert. Dies entspricht dem vorherigen Szenario.

Gauß’sches Dropout muss mit einem \(\sigma\) konfiguriert werden, das in den Experimenten von Srivastava et al. auf \(\sqrt{(1-p)/p}\) gesetzt wurde, wobei \(p\) die Konfiguration der Bernoulli-Variante ist (d. h., in naiven Fällen \(p \ca. 0,5\) für versteckte Schichten und \(\ca. 1,0\) für die Eingabeschicht).

Zusammenfassung

In diesem Blogbeitrag haben wir uns mit Overfitting beschäftigt – und wie man es mit Dropout vermeiden kann. Indem wir uns angesehen haben, was es ist, wie es funktioniert und dass es funktioniert, haben wir festgestellt, dass es eine interessante Technik für die Anwendung in Ihren Deep-Learning-Modellen ist.

Ich hoffe, Sie haben heute etwas gelernt – etwas Nützliches für Ihre ML-Modelle 😀 Wenn ja, oder wenn Sie Fragen haben, zögern Sie bitte nicht, unten einen Kommentar zu hinterlassen ⬇! Wenn möglich, werde ich Ihre Fragen beantworten 😊

Danke, dass Sie MachineCurve heute gelesen haben und viel Spaß beim Engineering! 😎

Srivastava, N., Hinton, G., Krizhevsky, A., Sutskever, I., & Salakhutdinov, R. (2014, June 15). Dropout: A Simple Way to Prevent Neural Networks from Overfitting. Retrieved from http://jmlr.org/papers/v15/srivastava14a.html

Wikipedia. (2003, March 20). Bernoulli distribution. Abgerufen von https://en.wikipedia.org/wiki/Bernoulli_distribution

💡 Meistere deine ML – sieh dir auch diese Beiträge an:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.