[PYTHON] Deep Learning / Backpropagation von Matrixproduktfehlern

1. Zuallererst

Da es schwierig war, die Fehlerrückausbreitung des Matrixprodukts zu verstehen, werde ich es zusammenfassen.

2. Rückausbreitung eines skalaren Produktfehlers

Überprüfen der Fehlerrückausbreitung des Skalarprodukts, ![Screenshot 2020-03-29 15.41.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/209705/aaff755d-2340-a6ac-ad21- e590c81d87db.png) Unter der Annahme, dass das zu gradierende Objekt L ist und $ \ frac {\ partielles L} {\ partielles y} $ im Voraus aus dem Kettengesetz bekannt ist スクリーンショット 2020-03-29 15.51.39.png Das ist kein Problem, nicht wahr?

3. Rückausbreitung des Matrixproduktfehlers

Wenn es jedoch um Matrixprodukte geht, ändert sich dies mit der Intuition. スクリーンショット 2020-03-29 16.04.49.png

Irgendwie kommt es nicht mit einer Stecknadel. Also werde ich es konkret bestätigen. Es wird angenommen, dass die Einstellung über das innere Produkt von zwei Neuronen X und vier Gewichten W mit dem Neuron Y verbunden ist. スクリーンショット 2020-03-29 16.20.37.png スクリーンショット 2020-03-29 16.24.32.png ** 1) Suchen Sie zuerst $ \ frac {\ partielles L} {\ partielles X} $. ** Berechnen Sie diese zunächst im Voraus. スクリーンショット 2020-03-29 16.30.57.png Während Sie diese Berechnung unterwegs verwenden スクリーンショット 2020-03-29 16.35.53.png

** 2) Suchen Sie als nächstes $ \ frac {\ partielles L} {\ partielles y} $. ** Berechnen Sie diese zunächst im Voraus. スクリーンショット 2020-03-29 16.44.41.png Während Sie diese Berechnung unterwegs verwenden スクリーンショット 2020-03-29 16.46.43.png

4. Vorwärts- und Rückwärtsausbreitungscode für Matrixprodukte

Wenn x1 = X, x2 = Y, grad = $ \ frac {\ partielles L} {\ partielles y} $,

class MatMul(object):
    def __init__(self, x1, x2):
        self.x1 = x1
        self.x2 = x2

    def forward(self):
        y = np.dot(self.x1, self.x2)
        self.y = y
        return y

    def backward(self, grad):
        grad_x1 = np.dot(grad, self.x2.T)
        grad_x2 = np.dot(self.x1.T, grad)
        return (grad_x1, grad_x2)

Recommended Posts

Deep Learning / Backpropagation von Matrixproduktfehlern
Einführung in Deep Learning ~ Backpropagation ~
Tiefes Lernen
Deep Learning Memorandum
Python Deep Learning
Deep Learning × Python
Deep Learning / Fehler-Backpropagation der Sigmoid-Funktion
Erstes tiefes Lernen ~ Kampf ~
Python: Deep Learning-Praxis
Deep Learning / Aktivierungsfunktionen
Deep Learning von Grund auf neu
Deep Learning 1 Übung des Deep Learning
Deep Learning / Cross Entropy
Erstes tiefes Lernen ~ Vorbereitung ~
Erstes tiefes Lernen ~ Lösung ~
Ich habe versucht, tief zu lernen
Deep Learning Großtechnologie
Deep Learning / Softmax-Funktion
[Deep Learning von Grund auf neu] Implementieren Sie die Backpropagation-Verarbeitung in einem neuronalen Netzwerk mithilfe der Fehler-Back-Propagation-Methode
Wo beim tiefen Lernen das Matrixprodukt / Innenprodukt verwendet wird
Deep Learning von Grund auf 1-3 Kapitel
Versuchen Sie es mit TensorFlow
Deep Learning Gaiden ~ GPU-Programmierung ~
Deep Learning Bilderkennung 1 Theorie
Deep Running 2 Tuning von Deep Learning
Deep Learning / LSTM Scratch Code
<Kurs> Tiefes Lernen: Tag 1 NN
Deep Kernel Learning mit Pyro
Deep Learning für die Bildung von Verbindungen?
Einführung in Udacity Deep Learning Nanodegree
Themen> Deep Learning: Tag 3 RNN
Einführung in Deep Learning ~ Lernregeln ~
Tiefes Lernen der Verstärkung 2 Implementierung des Lernens der Verstärkung
Generiere Pokemon mit Deep Learning