Dies ist eine Fortsetzung von Deep Learning from Zero (Forward Propagation).
Letztes Mal haben wir die Vorwärtsausbreitung implementiert, um die Wahrscheinlichkeit $ AL $ abzuleiten, dass der Eingabewert $ 1 $ ist. Dieses Mal werden wir zur Verbesserung der Genauigkeit des Modells bis zu dem Punkt implementieren, an dem der Fehler zwischen dem vorhergesagten Wert und dem richtigen Antwortetikett abgeleitet wird.
Da diese DNN vorhersagt, ob das Eingabebild eine Katze ist oder nicht, verwenden wir den Kreuzentropiefehler für die Kostenfunktion.
Es wird durch die folgende Formel ausgedrückt. $ AL $ ist eine Vorhersage der Wahrscheinlichkeit, dass Y 1 ist, und $ Y $ ist die richtige Bezeichnung.
Gibt $ -log (AL) $ zurück, wenn $ Y = 1 $ ist, und $ log (1-AL) $, wenn $ Y = 0 $. Aus der folgenden Grafik können Sie ersehen, dass die Kosten umso höher sind, je weiter der vorhergesagte Wert und die richtige Antwort entfernt sind.
Die Funktion ist wie folgt.
def compute_cost(AL, Y):
m = Y.shape[1]
logprobs = np.multiply(Y, np.log(AL)) + np.multiply(1-Y, np.log(1-AL))
cost = -1/m * np.sum(logprobs)
return cost
Gibt die Kosten zurück, indem der vektorisierte vorhergesagte Wert $ AL $ und die korrekte Bezeichnung $ Y $ übergeben werden.
Recommended Posts