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.
Ich möchte die Schichtimplementierung von der Ausgangsschicht bis zur Verlustfunktion durchführen, die das letzte Stück für die Implementierung des Rückausbreitungsprozesses im neuronalen Netzwerk ist.
Dieses Mal möchte ich Ebenen von der Softmax-Funktion, die für die Klassifizierung verwendet wird, bis zum Schnittpunkt-Entropiefehler implementieren, aber dieser Teil wird fast dieselbe Implementierung sein, selbst wenn die Summe der für die Regression verwendeten Quadrate fehlerhaft ist. Ich werde.
class SoftmaxWithLoss: #Softmax-Funktion + Kreuzentropiefehlerschicht
def __init__(self):
self.loss = None #Wert der Verlustfunktion
self.y = None #Ergebnis der Softmax-Funktion
self.t = None #Lehrerdaten
def forward(self, x, t):
if t.ndim == 1: #Richtige Antwortdaten sind eins-Wenn es nicht heiß ist, beheben Sie es
new_t = []
for i in t:
oh = list(np.zeros(10)) #Anzahl der Klassifizierungsetiketten
oh[i] = 1
new_t.append(oh)
t = np.array(new_t)
self.t = t
self.y = softmax_function(x)
self.loss = cross_entropy_errors(self.t, self.y)
return self.loss
def backward(self, dout=1):
batch_size = self.t.shape[0]
dx = (self.y - self.t) / batch_size #Teilen Sie den Fehler durch die Anzahl der Daten, die dem Ausweis entsprechen
return dx
Während des Vorwärtsausbreitungsprozesses kann die Softmax-Funktion nur die richtigen Antwortdaten der One-Hot-Methode verwenden. Wenn also die richtigen Antwortdaten nicht zuerst One-Hot sind, werden sie auf One-Hot korrigiert.
Rufen Sie anschließend die bisher erstellte Softmax-Funktion und Cross-Entropy-Error-Methode auf und verwenden Sie sie.
Der Backpropagation-Prozess ist einfach: Subtrahieren Sie die richtigen Antwortdaten von den vorhergesagten Daten, um den Fehler zu erhalten, fassen Sie ihn zusammen und ermitteln Sie dann den Durchschnitt. Um die Wahrheit zu sagen, wird der Grund, warum die Kombination von Softmax-Funktion / Kreuzentropiefehler und Gleichheitsfunktion / Summe der Quadrate Fehler so eingestellt wird, dass der Rückausbreitungsprozess durch die obige einfache Formel erhalten werden kann, so eingestellt, dass die beiden Funktionen kombiniert werden. Weil es gemacht wurde.
Daher sollte, wie eingangs erwähnt, der Rückausbreitungsprozess auch im Fall der konstanten Funktion und der Summe der Fehlerquadrate wie oben implementiert werden.
Recommended Posts