[PYTHON] [Deep Learning von Grund auf neu] Informationen zu den Ebenen, die für die Implementierung der Backpropagation-Verarbeitung in einem neuronalen Netzwerk erforderlich sind

Einführung

Dieser Artikel ist eine leicht verständliche Ausgabe von ** Deep Learning von Grund auf neu. Kapitel 6 Methode zur Fehlerrückübertragung **. 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 eine Schicht?

Um die Backpropagation in einem neuronalen Netzwerk zu implementieren, müssen die Neuronen Schichten sein. Es ist am einfachsten, sich eine Schicht als ein Neuron vorzustellen, das sowohl die Vorwärts- als auch die Rückwärtsausbreitung implementiert.

Die Mindestanzahl von Schichten, die zum Implementieren eines neuronalen Netzwerks erforderlich sind, beträgt ** Sigmoidschicht, Reluschicht, affine Schicht, Ausgangsschicht zur Verlustfunktion **.

Durch die Implementierung der Schicht als Klasse und ihre Gestaltung als Komponente wird die Bedienung einfacher, wenn das neuronale Netzwerk in verschiedene Strukturen unterteilt wird.

Dieses Mal werde ich versuchen, die im vorherigen Artikel erwähnten Additions- und Multiplikationsneuronen zu schichten.

Additionsschicht

class AddLayer:#Additionsschicht
    def __init__(self):
        pass#Nichts tun
    
    def forward(self, x, y):
        out = x + y
        return out
    
    def backward(self, dout):
        dx = dout * 1
        dy = dout * 1 #Zum Zeitpunkt der Addition erben beide Variablen das vorherige Differential
        return dx, dy

In der Additionsschicht summiert der Vorwärtsausbreitungsprozess die Werte der beiden Variablen und gibt sie zurück, und der Rückwärtsausbreitungsprozess erbt und gibt das vorherige Differential zurück.

Schicht multiplizieren

class MulLayer:#Schicht multiplizieren
    def __init__(self):
        self.x = None
        self.y = None #Variable xy zur Instanzvariable

    def forward(self, x, y):
        self.x = x
        self.y = y #Speichern Sie den Wert der Variablen xy, da diese im Back-Propagation-Prozess verwendet wird.
        out = x * y
        
        return out

    def backward(self, dout):
        dx = dout * self.y
        dy = dout * self.x

        return dx, dy

In der Multiplikationsschicht multipliziert der Vorwärtsausbreitungsprozess die Variable xy und gibt sie zurück, und der Rückwärtsausbreitungsprozess multipliziert den Wert der anderen Variablen mit dem vorherigen Differential, um das Differential zu erhalten und zurückzugeben.

Recommended Posts

[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] Implementieren Sie die Backpropagation-Verarbeitung in einem neuronalen Netzwerk mithilfe der Fehler-Back-Propagation-Methode
Ich habe versucht, Perceptron Teil 1 [Deep Learning von Grund auf neu] zu implementieren.
Kapitel 3 Neuronales Netz Schneiden Sie nur die guten Punkte des Deeplearning aus, die von Grund auf neu erstellt wurden
[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 4.4.2 Gradient für neuronale Netze Die Frage nach der Funktion numerischer Gradient wurde gelöst.
"Deep Learning von Grund auf neu" mit Haskell (unvollendet)
[Deep Learning von Grund auf neu] Über die Optimierung von Hyperparametern
[Deep Learning von Grund auf neu] Ich habe versucht, Sigmoid Layer und Relu Layer zu implementieren
Deep Learning von Grund auf neu ① Kapitel 6 "Lerntechniken"
Python vs Ruby "Deep Learning von Grund auf neu" Kapitel 3 Implementierung eines dreischichtigen neuronalen Netzwerks
Von nichts unter Ubuntu 18.04 bis zum Einrichten einer Deep Learning-Umgebung auf Tensor
[Deep Learning von Grund auf neu] Beschleunigen des neuronalen Netzwerks Ich erklärte die Verarbeitung der Rückausbreitung
[Deep Learning von Grund auf neu] Anfangswert des Gewichts des neuronalen Netzwerks unter Verwendung der Sigmoid-Funktion
[Deep Learning von Grund auf neu] Ich habe die Affine-Ebene implementiert
Deep Learning von Grund auf neu
Implementieren Sie das neuronale Netzwerk von Grund auf neu
Implementieren Sie ein vorwärts gerichtetes neuronales Netzwerk in Chainer, um Dokumente zu klassifizieren
[Deep Learning] Führen Sie die neuronale SONY-Netzwerkkonsole über CUI aus
Ich habe versucht, Dropout zu erklären
[Deep Learning von Grund auf neu] Anfangsgewicht des neuronalen Netzwerks bei Verwendung der Relu-Funktion
[Deep Learning] Untersuchen Sie, wie jede Funktion des Faltungsnetzes verwendet wird [DW Tag 3]
Ein Memo bei der Ausführung des Beispielcodes von Deep Learning, der mit Google Colaboratory von Grund auf neu erstellt wurde
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 14) Führen Sie das Programm in Kapitel 4 in Google Colaboratory aus
"Deep Learning from Grund" Memo zum Selbststudium (Teil 8) Ich habe die Grafik in Kapitel 6 mit matplotlib gezeichnet
Ich habe versucht, das grundlegende Modell des wiederkehrenden neuronalen Netzwerks zu implementieren
[Teil 4] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 1
[Teil 1] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
[Teil 3] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 3
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
[Teil 2] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 4
Eine Geschichte über den Versuch, private Variablen in Python zu implementieren.
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 2
Implementieren Sie ein dreischichtiges neuronales Netzwerk
Deep Learning von Grund auf 1-3 Kapitel
Einführung in Deep Learning ~ Backpropagation ~
Kapitel 1 Einführung in Python Schneiden Sie nur die guten Punkte des Deeplearning aus, die von Grund auf neu erstellt wurden
Warum ModuleNotFoundError: In "Deep Learning from Grund" wird kein Modul mit dem Namen "didaset.mnist" angezeigt.
Tiefes Lernen von Grund auf neu (Kostenberechnung)
Ich habe versucht, die Lernfunktion im neuronalen Netzwerk sorgfältig zu verstehen, ohne die Bibliothek für maschinelles Lernen zu verwenden (zweite Hälfte).
Deep Learning Memo von Grund auf neu gemacht
Eine Geschichte über das Erstellen eines Programms, mit dem die Anzahl der Instagram-Follower in einer Woche von 0 auf 700 erhöht wird
Über die Reihenfolge des Lernens von Programmiersprachen (vom Anfänger bis zum Fortgeschrittenen) Teil 2
Diagramm der Geschichte der Anzahl der Ebenen des tiefen Lernens und der Änderung der Genauigkeit
Sprachverarbeitung durch tiefes Lernen: Lassen Sie uns anhand der Stimme herausfinden, wer der Sprecher ist
[Deep Learning von Grund auf neu] Layer-Implementierung von der Softmax-Funktion zum Überkreuzen von Entropiefehlern
Erstellen Sie mit Cloud9 (jupyter miniconda python3) eine Lernumgebung für "Deep Learning von Grund auf neu".
Einführung in die KI-Erstellung mit Python! Teil 2 Ich habe versucht, den Hauspreis in Boston mit einem neuronalen Netz vorherzusagen
Verbessertes Lernen, um von null bis tief zu lernen
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 7]
Tiefes Lernen von Grund auf neu (Vorwärtsausbreitung)
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]
Bildausrichtung: von SIFT bis Deep Learning