[PYTHON] [Deep Learning von Grund auf neu] Implementierung der Momentum-Methode und der AdaGrad-Methode

Einführung

Dieser Artikel ist eine leicht verständliche Ausgabe von Kapitel 7 Deep Learning von Grund auf mit Ihrem eigenen Verständnis der 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.

Implementierung der Momentum-Methode

class Momentum:
    def __init__(self, lr=0.01, momentum=0.9):
        self.lr = lr #Lernrate
        self.momentum = momentum #Impulskonstante
        self.v = None #Geschwindigkeit
    
    def update(self, params, grads):
        if self.v is None: #Initialisieren Sie die Geschwindigkeit jedes Parameters nur am Anfang
            self.v = {}
            for key,val in params.items():
                self.v[key] = np.zeros_like(val) #Initialisieren Sie, indem Sie die Geschwindigkeit jedes Parameters auf Null setzen
            
        for key in params.keys():
            self.v[key] = self.momentum *self.v[key] - self.lr * grads[key] #Finden Sie die Geschwindigkeit am aktuellen Standort
            params[key] = params[key] + self.v[key]

Die Momentum-Methode verwendet das Konzept der Geschwindigkeit. Erstellen Sie daher zuerst Geschwindigkeit mit Instanzvariablen.

Ermitteln Sie die Geschwindigkeit am aktuellen Punkt aus der Steigung und fügen Sie sie den aktuellen Gewichtungsparametern hinzu, um die Parameter zu aktualisieren.

Implementierung der AdaGrad-Methode

class AdaGrad: #Der Lernkoeffizient kann für jeden Parameter abgeschwächt werden
    def __init__(self, lr=0.01):
        self.lr = lr
        self.h = None
        
    def update(self, params, grads):
        if self.h is None:
            self.h = {}
            for key,val in params.items():
                self.h[key] = np.zeros_like(val)
        for key in params.keys():
            self.h[key] = self.h[key] + (grads[key] * grads[key]) #Setzen Sie die Summe der Quadrate der Gradienten jedes Parameters in h
            params[key] = params[key] - ((self.lr * grads[key] )/ (np.sqrt(self.h[key]) + 1e-7))

Die AdaDrad-Methode muss nicht erklärt werden, da sie nur die im vorherigen Artikel beschriebene Formel implementiert.

Verringern Sie den Lernkoeffizienten nach und nach und subtrahieren Sie wie SGD.

Recommended Posts

[Deep Learning von Grund auf neu] Implementierung der Momentum-Methode und der AdaGrad-Methode
[Lernnotiz] Deep Learning von Grund auf ~ Implementierung von Dropout ~
Deep Learning von Grund auf neu Die Theorie und Implementierung des mit Python erlernten Deep Learning Kapitel 3
Lernbericht über das Lesen von "Deep Learning von Grund auf neu"
Deep Learning von Grund auf neu
Python vs Ruby "Deep Learning von Grund auf neu" Kapitel 4 Implementierung der Verlustfunktion
Deep Learning von Grund auf 1-3 Kapitel
Tiefes Lernen der Verstärkung 2 Implementierung des Lernens der Verstärkung
Anwendung von Deep Learning 2 von Grund auf neu Spam-Filter
Othello ~ Aus der dritten Zeile von "Implementation Deep Learning" (4) [Ende]
Python vs Ruby "Deep Learning von Grund auf neu" Kapitel 3 Implementierung eines dreischichtigen neuronalen Netzwerks
Untersuchung der Austauschprognosemethode mit Deep Learning und Wavelet-Konvertierung - Teil 2-
Tiefes Lernen von Grund auf neu (Kostenberechnung)
Python vs Ruby "Deep Learning from Grund" Kapitel 1 Diagramm der Sin-Funktion und der Cos-Funktion
Deep Learning Memo von Grund auf neu gemacht
Ich habe die Methode des maschinellen Lernens und ihre Implementierungssprache anhand der Tag-Informationen von Qiita betrachtet
Kapitel 2 Implementierung von Perceptron Schneiden Sie nur die guten Punkte des Deeplearning aus, die von Grund auf neu erstellt wurden
Schreiben Sie Ihre Eindrücke von der Deep Learning 3 Framework Edition, die von Grund auf neu erstellt wurde
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 10-2) Anfangswert des Gewichts
Implementierung und Experiment der konvexen Clustering-Methode
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 7]
Tiefes Lernen von Grund auf neu (Vorwärtsausbreitung)
Othello-Aus der dritten Zeile von "Implementation Deep Learning" (3)
Bedeutung von Deep-Learning-Modellen und -Parametern
Tiefes Lernen / Tiefes Lernen von Grund auf 2-Versuchen Sie, GRU zu bewegen
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]
"Deep Learning von Grund auf neu" mit Haskell (unvollendet)
Deep Learning / Deep Learning von Grund auf neu Kapitel 7 Memo
[Windows 10] Aufbau einer "Deep Learning from Scratch" -Umgebung
[Deep Learning von Grund auf neu] Über die Optimierung von Hyperparametern
"Deep Learning from Grund" Memo zum Selbststudium (Teil 12) Deep Learning
Othello-Aus der dritten Zeile von "Implementation Deep Learning" (2)
[Lernnotiz] Deep Learning von Grund auf neu gemacht [~ Kapitel 4]
Realisieren Sie mit Docker und Vagrant die Umgebungskonstruktion für "Deep Learning von Grund auf neu"
[Deep Learning von Grund auf neu] Ich habe versucht, Sigmoid Layer und Relu Layer zu implementieren
[Deep Learning von Grund auf neu] Layer-Implementierung von der Softmax-Funktion zum Überkreuzen von Entropiefehlern
Deep Learning von Grund auf neu - Kapitel 4 Tipps für die in Python erlernte Theorie und Implementierung von Deep Learning
Untersuchung der Austauschprognosemethode mittels Deep Learning und Wavelet-Konvertierung
Selbststudien-Memo "Deep Learning from Grund" (unlesbares Glossar)
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 9) MultiLayerNet-Klasse
Deep Learning von Grund auf neu ① Kapitel 6 "Lerntechniken"
GitHub des guten Buches "Deep Learning von Grund auf neu"
Deep Learning von Grund auf neu Kapitel 2 Perceptron (Memo lesen)
Ein Memorandum zum Studieren und Implementieren von Deep Learning
Paralleles Lernen von Deep Learning durch Keras und Kubernetes
Python vs Ruby "Deep Learning von Grund auf neu" Zusammenfassung
Implementierung eines Deep Learning-Modells zur Bilderkennung
"Deep Learning from Grund" Memo zum Selbststudium (10) MultiLayerNet-Klasse
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 11) CNN
Tiefes Lernen durch Implementierung (Segmentierung) ~ Implementierung von SegNet ~
Erstellen Sie eine Python-Umgebung, um die Theorie und Implementierung von Deep Learning zu erlernen
[Deep Learning von Grund auf neu] Anfangswert des Gewichts des neuronalen Netzwerks unter Verwendung der Sigmoid-Funktion
Deep Learning 1 Übung des Deep Learning
[Deep Learning von Grund auf neu] Ich habe die Affine-Ebene implementiert
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 19) Datenerweiterung
Maschinelles Lernen #k Nachbarschaftsmethode und deren Implementierung und verschiedene
DNN (Deep Learning) Library: Vergleich von Chainer und TensorFlow (1)
Lernmethode zum Lernen von maschinellem Lernen von Grund auf neu (Version März 2020)