[PYTHON] [Deep Learning von Grund auf neu] Beschleunigen des neuronalen Netzwerks Ich erklärte die Verarbeitung der Rückausbreitung

Einführung

Dieser Artikel ist eine leicht verständliche Ausgabe von ** Deep Learning von Grund auf neu. Kapitel 6 Fehler-Back-Propagation-Methode **. 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 Back Propagation Processing?

Wie ich ein letztes Mal erwähnt habe, ist die Backpropagation-Verarbeitung die Verarbeitung des Lösens des Berechnungsgraphen von rechts nach links, und die Differenzierung jeder Variablen kann erhalten werden.

Die im vorherigen Kapitel implementierte Gradientenformel des neuronalen Netzwerks verwendete eine Methode zum Ermitteln der Differenzierung durch Hinzufügen eines Minutenwerts zu einer Variablen, die als numerische Differenzierung bezeichnet wird. Die numerische Unterscheidung ist einfach und leicht zu verstehen, hat jedoch den Nachteil einer langen Verarbeitungszeit. Hier wird die ** Backpropagation-Verarbeitung ** verwendet. Durch Implementieren der Rückausbreitungsverarbeitung in der Verarbeitung des neuronalen Netzwerks kann der Gradient schneller und effizienter als zuvor erhalten werden.

Beginnen wir mit der Implementierung einer einfachen Vorwärtsausbreitungsverarbeitung für Berechnungsgraphen und einer Rückwärtsausbreitungsverarbeitung in Python. スクリーンショット 2019-10-31 20.35.55.png

a = 100
as = 3
o = 50
os = 4
t = 1.1

#Weiterleitungsverarbeitung
az = a * as #Gesamtmenge der Äpfel
oz = o * os #Gesamtmenge an Mikan
z = az + oz #Gesamtmenge an Apfel-Mikan
y = z * t #Gesamtgebühr

#Back Propagation Processing
dy = 1 #Differenzierung der Antwort y der Vorwärtsausbreitungsverarbeitung

# z *Da t eine Multiplikation ist, werden die Werte jeder Variablen ausgetauscht und die vorherige Differenzierung angewendet.
dz = t * dy = 1.1 #Differenzierung von z
dt = z * dy = 500 #Differenzierung von t

# az +Da oz eine Addition ist, erbt es das vorherige Differential so wie es ist
daz = dz = 1.1 #Differenzierung von az
doz = dz = 1.1 #Differenzierung von oz

# o *Da os eine Multiplikation ist, werden die Werte jeder Variablen ausgetauscht und die vorherige Differenzierung angewendet.
do = os * doz = 4.4 #Differenzierung von o
dos = o * doz = 55 #Differenzierung von os

# a *Da es sich um eine Multiplikation handelt, werden die Werte jeder Variablen ausgetauscht und die vorherige Differenzierung angewendet.
da = as * daz = 3.3 #Differenzierung von a
das = a * adz = 330 #Differenzierung von as

Da die Rückausbreitungsverarbeitung der Multiplikation und Addition leicht wie oben beschrieben durchgeführt werden kann, wird die Rückausbreitungsverarbeitung in dem neuronalen Netzwerk unter Verwendung dieser implementiert.

Recommended Posts

[Deep Learning von Grund auf neu] Beschleunigen des neuronalen Netzwerks Ich erklärte die Verarbeitung der Rückausbreitung
[Deep Learning von Grund auf neu] Implementieren Sie die Backpropagation-Verarbeitung in einem neuronalen Netzwerk mithilfe der Fehler-Back-Propagation-Methode
[Deep Learning von Grund auf neu] Methoden zur Aktualisierung der wichtigsten Parameter für neuronale Netze
Tiefes Lernen von Grund auf neu (Vorwärtsausbreitung)
Lua-Version Deep Learning von Grund auf neu Teil 6 [Inferenzverarbeitung für neuronale Netze]
Deep Learning von Grund auf neu
[Python] [Verarbeitung natürlicher Sprache] Ich habe Deep Learning ausprobiert (auf Japanisch von Grund auf neu erstellt)
[Deep Learning von Grund auf neu] Ich habe die Affine-Ebene implementiert
Ich habe versucht, Dropout zu erklären
Deep Learning von Grund auf 1-3 Kapitel
Ich habe versucht, Perceptron Teil 1 [Deep Learning von Grund auf neu] zu implementieren.
Tiefes Lernen von Grund auf neu (Kostenberechnung)
Deep Learning Memo von Grund auf neu gemacht
[Deep Learning von Grund auf neu] Informationen zu den Ebenen, die für die Implementierung der Backpropagation-Verarbeitung in einem neuronalen Netzwerk erforderlich sind
Deep Learning von Grund auf neu 4.4.2 Gradient für neuronale Netze Die Frage nach der Funktion numerischer Gradient wurde gelöst.
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 7]
Tiefes Lernen / Tiefes Lernen von Grund auf 2-Versuchen Sie, GRU zu bewegen
Deep Learning / Deep Learning von Grund auf neu Kapitel 6 Memo
[Deep Learning von Grund auf neu] Ich habe versucht, Sigmoid Layer und Relu Layer zu implementieren
[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
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]
Python vs Ruby "Deep Learning von Grund auf neu" Kapitel 3 Implementierung eines dreischichtigen neuronalen Netzwerks
[Deep Learning von Grund auf neu] Anfangswert des Gewichts des neuronalen Netzwerks unter Verwendung der Sigmoid-Funktion
Selbststudien-Memo "Deep Learning from Grund" (unlesbares Glossar)
Deep Learning von Grund auf neu ① Kapitel 6 "Lerntechniken"
GitHub des guten Buches "Deep Learning von Grund auf neu"
[Lernnotiz] Deep Learning von Grund auf ~ Implementierung von Dropout ~
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
"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] Anfangsgewicht des neuronalen Netzwerks bei Verwendung der Relu-Funktion
Ich habe Django von Grund auf neu eingerichtet (Vagrant, Centos, Python3)
Anwendung von Deep Learning 2 von Grund auf neu Spam-Filter
Deep Learning 2 von Grund auf 1.3 Verarbeitung natürlicher Sprache 1.3 Zusammenfassung
[Deep Learning] Führen Sie die neuronale SONY-Netzwerkkonsole über CUI aus
Kapitel 3 Neuronales Netz Schneiden Sie nur die guten Punkte des Deeplearning aus, die von Grund auf neu erstellt wurden
"Deep Learning from Grund" Memo zum Selbststudium (Teil 8) Ich habe die Grafik in Kapitel 6 mit matplotlib gezeichnet
Ich habe versucht, tief zu lernen
[Deep Learning von Grund auf neu] Implementierung der Momentum-Methode und der AdaGrad-Methode
Versuchen Sie, ein Deep Learning / Neuronales Netzwerk mit Scratch aufzubauen
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 1
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 5
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 2
Erstellen Sie mit Docker eine Umgebung für "Deep Learning von Grund auf neu"
Ein Amateur stolperte in Deep Learning von Grund auf neu. Hinweis: Kapitel 7
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 5
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 1
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 4