[PYTHON] Ich habe versucht, Dropout zu erklären

Einführung

Dieser Artikel ist eine leicht verständliche Ausgabe von ** Deep Learning von Grund auf neu. Kapitel 7 Lerntechniken **. Ich konnte es selbst verstehen, also hoffe ich, dass Sie es bequem lesen können. Ich würde mich auch sehr freuen, wenn Sie sich beim Studium dieses Buches darauf beziehen könnten.

Was ist Dropout?

Wissen Sie, was Ensemble-Lernen ist? Ensemble-Lernen ist die Fähigkeit, durch Training mit mehreren Modellen gute Lernergebnisse zu erzielen. Dropout verbessert das Lernergebnis, indem das Lernen des Ensembles auf simulierte Weise reproduziert wird.

Macht Dropout das Innere speziell? Es ist die zufällige Eliminierung von Neuronen während des Lernens. In Dropout werden durch zufälliges Löschen von Neuronen mehrere verschiedene Modelle erstellt, um das Lernen von Ensembles zu erstellen.

Unten finden Sie ein einfaches Implementierungsbeispiel.

class Dropout:#Wird nach der Aktivierungsfunktionsschicht generiert und bei jedem Lernen aktiviert. Nicht mit Vorhersage aktivieren
    
    def __init__(self,dropout_ratio=0.5):
        self.dropout_ratio = dropout_ratio
        self.mask = None #Enthält eine Reihe von zu löschenden Neuronen
    
    def forward(self,x,train_flg=True):
        if train_flg:
            self.mask = np.random.rand(*x.shape) > self.dropout_ratio#Bestimmen Sie nach dem Zufallsprinzip, welche Neuronen gelöscht werden sollen
            return x * self.mask
        else:
            return x * (1 - self.dropout_ratio)

    def backward(self,dout):
        return dout * self.mask#Gleich wie Relu
        

Recommended Posts

Ich habe versucht, Dropout zu erklären
Ich habe versucht, Perceptron Teil 1 [Deep Learning von Grund auf neu] zu implementieren.
[Deep Learning von Grund auf neu] Ich habe versucht, Sigmoid Layer und Relu Layer zu implementieren
[Deep Learning von Grund auf neu] Ich habe versucht, die Gradientenbestätigung auf leicht verständliche Weise zu erklären.
Deep Learning von Grund auf neu
Ich habe versucht, tief zu lernen
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 16) Ich habe versucht, SimpleConvNet mit Keras zu erstellen
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 17) Ich habe versucht, DeepConvNet mit Keras zu erstellen
Deep Learning von Grund auf neu ① Kapitel 6 "Lerntechniken"
[Lernnotiz] Deep Learning von Grund auf ~ Implementierung von Dropout ~
Deep Learning von Grund auf 1-3 Kapitel
[Deep Learning von Grund auf neu] Ich habe die Affine-Ebene implementiert
[Python] [Verarbeitung natürlicher Sprache] Ich habe Deep Learning ausprobiert (auf Japanisch von Grund auf neu erstellt)
Ich habe versucht, die Strichzeichnung mit Deep Learning aus dem Bild zu extrahieren
Ich habe versucht, Deep VQE zu implementieren
Tiefes Lernen von Grund auf neu (Kostenberechnung)
Ich habe versucht, Pytorchs Datensatz zu erklären
Ich habe versucht, mit Theano tief zu lernen
Deep Learning Memo von Grund auf neu gemacht
Ich habe versucht, in einem tief erlernten Sprachmodell zu schreiben
Ich habe versucht, Pferderennen vorherzusagen, indem ich alles von der Datenerfassung bis zum tiefen Lernen getan habe
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 7]
Tiefes Lernen von Grund auf neu (Vorwärtsausbreitung)
Ich habe versucht, Deep Learning mit Spark × Keras × Docker skalierbar zu machen
Deep Learning / Deep Learning von Grund auf neu Kapitel 6 Memo
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 5]
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 6]
Bildausrichtung: von SIFT bis Deep Learning
"Deep Learning von Grund auf neu" mit Haskell (unvollendet)
[Windows 10] Aufbau einer "Deep Learning from Scratch" -Umgebung
Lernbericht über das Lesen von "Deep Learning von Grund auf neu"
[Deep Learning von Grund auf neu] Über die Optimierung von Hyperparametern
"Deep Learning from Grund" Memo zum Selbststudium (Teil 12) Deep Learning
[Lernnotiz] Deep Learning von Grund auf neu gemacht [~ Kapitel 4]
Ich habe versucht, Deep Learning zu implementieren, das nicht nur mit NumPy tiefgreifend ist
[Stärkung des Lernens] Endlich die Menschen übertroffen! ?? Ich habe versucht, Agent57 (Keras-RL) zu erklären / zu implementieren.
Ich habe versucht, Oba Hanana und Otani Emiri durch tiefes Lernen zu klassifizieren
[Deep Learning von Grund auf neu] Layer-Implementierung von der Softmax-Funktion zum Überkreuzen von Entropiefehlern
Ich habe die übliche Geschichte ausprobiert, Deep Learning zu verwenden, um den Nikkei-Durchschnitt vorherzusagen
Selbststudien-Memo "Deep Learning from Grund" (unlesbares Glossar)
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 9) MultiLayerNet-Klasse
GitHub des guten Buches "Deep Learning von Grund auf neu"
Deep Learning von Grund auf neu Kapitel 2 Perceptron (Memo lesen)
Python vs Ruby "Deep Learning von Grund auf neu" Zusammenfassung
"Deep Learning from Grund" Memo zum Selbststudium (10) MultiLayerNet-Klasse
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 11) CNN
Ich habe versucht zu debuggen.
[Python] Deep Learning: Ich habe versucht, Deep Learning (DBN, SDA) ohne Verwendung einer Bibliothek zu implementieren.
[Deep Learning von Grund auf neu] Beschleunigen des neuronalen Netzwerks Ich erklärte die Verarbeitung der Rückausbreitung
Ich habe versucht, Hanana Oba und Emiri Otani durch tiefes Lernen zu klassifizieren (Teil 2)
Ich habe versucht, Deep Learning mit Spark × Keras × Docker 2 Multi-Host-Edition skalierbar zu machen
Ich habe versucht, maschinelles Lernen (Objekterkennung) mit TouchDesigner zu verschieben
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 19) Datenerweiterung
Anwendung von Deep Learning 2 von Grund auf neu Spam-Filter
Ich habe versucht, das Bild mithilfe von maschinellem Lernen zu komprimieren
Ich habe versucht, PredNet zu lernen
Ich habe versucht, SVM zu organisieren.
Deep Learning / LSTM Scratch Code