Ceci est une continuation de Deep Learning from Zero (Forward Propagation).
La dernière fois, nous avons implémenté la propagation avant pour dériver la probabilité $ AL $ que la valeur d'entrée soit $ 1 $. Cette fois, afin d'améliorer la précision du modèle, nous implémenterons jusqu'au point où l'erreur entre la valeur prédite et l'étiquette de réponse correcte est dérivée.
Puisque ce DNN prédit si l'image d'entrée est un chat ou non, nous utilisons l'erreur d'entropie croisée pour la fonction de coût.
Il est exprimé par la formule suivante. $ AL $ est une prédiction de la probabilité que Y soit 1, et $ Y $ est l'étiquette correcte.
Renvoie $ -log (AL) $ quand $ Y = 1 $ et $ log (1-AL) $ quand $ Y = 0 $. À partir du graphique ci-dessous, vous pouvez voir que plus la valeur prédite et la bonne réponse sont éloignées, plus le coût est élevé.
La fonction est la suivante.
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
Renvoie le coût en passant la valeur prédite vectorisée $ AL $ et l'étiquette correcte $ Y $.
Recommended Posts