Dieser Artikel ist eine leicht verständliche Ausgabe von ** Deep Learning von Grund auf neu. Kapitel 6 Fehler-Backpropagation-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.
Die affine Schicht ist eine Schicht, in der das Eingangssignal des Neurons mit dem Gewicht multipliziert, summiert und vorgespannt wird.
class Affine:#Schichtimplementierung der Verarbeitung, die das Eingangssignal gewichtet und dessen Summe und Vorspannung addiert
def __init__(self, W, b):
self.W = W
self.b = b
self.x = None
self.dW = None #Erstellen Sie eine Instanzvariable, um jedes durch Backpropagation-Verarbeitung erhaltene Differential zu speichern
self.db = None #Erstellen Sie eine Instanzvariable, um jedes durch Backpropagation-Verarbeitung erhaltene Differential zu speichern
def forward(self, x):
self.x = x
out = np.dot(x, self.W) + self.b
return out
def backward(self, dout):
dx = np.dot(dout, self.W.T)
self.dW = np.dot(self.x.T, dout)
self.db = np.sum(dout, axis=0)#Unterstützung mehrerer Daten (Batch)
#Finden Sie die Vorspannungsdifferenz durch die Summe der vorherigen Differentiale
return dx
Da die Rückausbreitungsverarbeitung eine Multiplikation und Addition in der Vorwärtsausbreitungsverarbeitung der affinen Schicht verwendet, erbt die Vorspannungsdifferenzierung die vorherige Differenzierung, und die Differenzierung von Gewicht und Eingabewert wird transponiert und ersetzt, um die vorherige Differenzierung zu ersetzen. Sie wird durch Multiplikation mit berechnet. Bias wird nicht nur vererbt, sondern die Stapelverarbeitung erfolgt wie oben beschrieben.
Recommended Posts