Fonction de Perte
Lors de l'entraînement d'un réseau de neurones, il est nécessaire de mesurer la précision avec laquelle le modèle prédit les résultats corrects. Cela se fait à l'aide d'une fonction de perte, qui calcule la différence entre les prédictions du modèle et les valeurs cibles réelles. L'objectif de l'entraînement est de minimiser cette perte, afin que les prédictions soient aussi proches que possible des sorties réelles.
Pour les tâches de classification binaire, l'une des fonctions de perte les plus couramment utilisées est la perte d'entropie croisée, particulièrement efficace pour les modèles produisant des probabilités.
Dérivation de la perte d'entropie croisée
Pour comprendre la perte d'entropie croisée, il convient de considérer le principe du maximum de vraisemblance. Dans un problème de classification binaire, le but est d'entraîner un modèle qui estime la probabilité y^ qu'une entrée donnée appartienne à la classe 1. La véritable étiquette y peut prendre l'une des deux valeurs : 0 ou 1.
Un modèle efficace doit attribuer des probabilités élevées aux prédictions correctes. Cette idée est formalisée à travers la fonction de vraisemblance, qui représente la probabilité d'observer les données réelles étant donné les prédictions du modèle.
Pour un seul exemple d'entraînement, en supposant l'indépendance, la vraisemblance peut s'exprimer comme suit :
P(y∣x)=y^y(1−y^)1−yCette expression signifie ce qui suit :
- Si y=1, alors P(y∣x)=y^ — le modèle doit attribuer une probabilité élevée à la classe 1 ;
- Si y=0, alors P(y∣x)=1−y^ — le modèle doit attribuer une probabilité élevée à la classe 0.
Dans les deux cas, l'objectif est de maximiser la probabilité que le modèle attribue à la classe correcte.
P(y∣x) signifie la probabilité d'observer la véritable étiquette de classe y étant donné les entrées x.
Pour simplifier l'optimisation, la log-vraisemblance est utilisée à la place de la fonction de vraisemblance, car la prise du logarithme transforme les produits en sommes, ce qui facilite la différentiation :
logP(y∣x)=ylog(y^)+(1−y)log(1−y^)Puisque l'entraînement vise à maximiser la log-vraisemblance, la fonction de perte est définie comme sa valeur négative afin que le processus d'optimisation devienne un problème de minimisation :
L=−(ylog(y^)+(1−y)log(1−y^))Il s'agit de la fonction de perte binaire par entropie croisée, couramment utilisée pour les problèmes de classification.
Étant donné que la variable output représente y^ pour un exemple d'entraînement particulier, et que la variable target représente y pour cet exemple, cette fonction de perte peut être implémentée comme suit :
import numpy as np
loss = -(target * np.log(output) + (1 - target) * np.log(1 - output))
Pourquoi cette formule ?
La perte par entropie croisée possède une interprétation intuitive claire :
- Si y=1, la perte se simplifie en −log(y^), ce qui signifie que la perte est faible lorsque y^ est proche de 1 et très élevée lorsque y^ est proche de 0 ;
- Si y=0, la perte se simplifie en −log(1−y^), ce qui signifie que la perte est faible lorsque y^ est proche de 0 et très élevée lorsqu'elle est proche de 1.
Puisque les logarithmes deviennent très négatifs lorsque leur entrée approche de zéro, les prédictions incorrectes sont fortement pénalisées, ce qui encourage le modèle à effectuer des prédictions correctes et confiantes.
Si plusieurs exemples sont passés lors de la propagation avant, la perte totale est calculée comme la perte moyenne sur l'ensemble des exemples :
L=−N1i=1∑N(yilog(y^i)+(1−yi)log(1−y^i))où N est le nombre d'échantillons d'entraînement.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Can you explain how cross-entropy loss differs from mean squared error?
What happens if the model predicts exactly 0 or 1 for the output?
Can you show how this loss function is used during neural network training?
Awesome!
Completion rate improved to 4
Fonction de Perte
Glissez pour afficher le menu
Lors de l'entraînement d'un réseau de neurones, il est nécessaire de mesurer la précision avec laquelle le modèle prédit les résultats corrects. Cela se fait à l'aide d'une fonction de perte, qui calcule la différence entre les prédictions du modèle et les valeurs cibles réelles. L'objectif de l'entraînement est de minimiser cette perte, afin que les prédictions soient aussi proches que possible des sorties réelles.
Pour les tâches de classification binaire, l'une des fonctions de perte les plus couramment utilisées est la perte d'entropie croisée, particulièrement efficace pour les modèles produisant des probabilités.
Dérivation de la perte d'entropie croisée
Pour comprendre la perte d'entropie croisée, il convient de considérer le principe du maximum de vraisemblance. Dans un problème de classification binaire, le but est d'entraîner un modèle qui estime la probabilité y^ qu'une entrée donnée appartienne à la classe 1. La véritable étiquette y peut prendre l'une des deux valeurs : 0 ou 1.
Un modèle efficace doit attribuer des probabilités élevées aux prédictions correctes. Cette idée est formalisée à travers la fonction de vraisemblance, qui représente la probabilité d'observer les données réelles étant donné les prédictions du modèle.
Pour un seul exemple d'entraînement, en supposant l'indépendance, la vraisemblance peut s'exprimer comme suit :
P(y∣x)=y^y(1−y^)1−yCette expression signifie ce qui suit :
- Si y=1, alors P(y∣x)=y^ — le modèle doit attribuer une probabilité élevée à la classe 1 ;
- Si y=0, alors P(y∣x)=1−y^ — le modèle doit attribuer une probabilité élevée à la classe 0.
Dans les deux cas, l'objectif est de maximiser la probabilité que le modèle attribue à la classe correcte.
P(y∣x) signifie la probabilité d'observer la véritable étiquette de classe y étant donné les entrées x.
Pour simplifier l'optimisation, la log-vraisemblance est utilisée à la place de la fonction de vraisemblance, car la prise du logarithme transforme les produits en sommes, ce qui facilite la différentiation :
logP(y∣x)=ylog(y^)+(1−y)log(1−y^)Puisque l'entraînement vise à maximiser la log-vraisemblance, la fonction de perte est définie comme sa valeur négative afin que le processus d'optimisation devienne un problème de minimisation :
L=−(ylog(y^)+(1−y)log(1−y^))Il s'agit de la fonction de perte binaire par entropie croisée, couramment utilisée pour les problèmes de classification.
Étant donné que la variable output représente y^ pour un exemple d'entraînement particulier, et que la variable target représente y pour cet exemple, cette fonction de perte peut être implémentée comme suit :
import numpy as np
loss = -(target * np.log(output) + (1 - target) * np.log(1 - output))
Pourquoi cette formule ?
La perte par entropie croisée possède une interprétation intuitive claire :
- Si y=1, la perte se simplifie en −log(y^), ce qui signifie que la perte est faible lorsque y^ est proche de 1 et très élevée lorsque y^ est proche de 0 ;
- Si y=0, la perte se simplifie en −log(1−y^), ce qui signifie que la perte est faible lorsque y^ est proche de 0 et très élevée lorsqu'elle est proche de 1.
Puisque les logarithmes deviennent très négatifs lorsque leur entrée approche de zéro, les prédictions incorrectes sont fortement pénalisées, ce qui encourage le modèle à effectuer des prédictions correctes et confiantes.
Si plusieurs exemples sont passés lors de la propagation avant, la perte totale est calculée comme la perte moyenne sur l'ensemble des exemples :
L=−N1i=1∑N(yilog(y^i)+(1−yi)log(1−y^i))où N est le nombre d'échantillons d'entraînement.
Merci pour vos commentaires !