Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Fonction de Perte | Réseau de Neurones à Partir de Zéro
Introduction aux Réseaux de Neurones

bookFonction 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^\hat{y} qu'une entrée donnée appartienne à la classe 1. La véritable étiquette yy 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(yx)=y^y(1y^)1yP(y|x) = \hat{y}^y(1 - \hat{y})^{1 - y}

Cette expression signifie ce qui suit :

  • Si y=1y = 1, alors P(yx)=y^P(y|x) = \hat{y} — le modèle doit attribuer une probabilité élevée à la classe 1 ;
  • Si y=0y = 0, alors P(yx)=1y^P(y|x) = 1 - \hat{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.

Note
Remarque

P(yx)P(y|x) signifie la probabilité d'observer la véritable étiquette de classe yy étant donné les entrées xx.

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(yx)=ylog(y^)+(1y)log(1y^)\log P(y|x) = y \log(\hat{y}) + (1 - y) \log(1 - \hat{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^)+(1y)log(1y^))L = -\big(y \log(\hat{y}) + (1 - y) \log(1 - \hat{y})\big)

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^\hat{y} pour un exemple d'entraînement particulier, et que la variable target représente yy 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=1y = 1, la perte se simplifie en log(y^)-\log(\hat{y}), ce qui signifie que la perte est faible lorsque y^\hat{y} est proche de 1 et très élevée lorsque y^\hat{y} est proche de 0 ;
  • Si y=0y = 0, la perte se simplifie en log(1y^)-\log(1 - \hat{y}), ce qui signifie que la perte est faible lorsque y^\hat{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=1Ni=1N(yilog(y^i)+(1yi)log(1y^i))L = -\frac1N \sum_{i=1}^N (y_i\log(\hat{y}_i) + (1-y_i)\log(1-\hat{y}_i))

NN est le nombre d'échantillons d'entraînement.

question mark

Laquelle des propositions suivantes décrit le mieux l'objectif de la fonction de perte par entropie croisée en classification binaire ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 6

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Suggested prompts:

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

bookFonction 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^\hat{y} qu'une entrée donnée appartienne à la classe 1. La véritable étiquette yy 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(yx)=y^y(1y^)1yP(y|x) = \hat{y}^y(1 - \hat{y})^{1 - y}

Cette expression signifie ce qui suit :

  • Si y=1y = 1, alors P(yx)=y^P(y|x) = \hat{y} — le modèle doit attribuer une probabilité élevée à la classe 1 ;
  • Si y=0y = 0, alors P(yx)=1y^P(y|x) = 1 - \hat{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.

Note
Remarque

P(yx)P(y|x) signifie la probabilité d'observer la véritable étiquette de classe yy étant donné les entrées xx.

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(yx)=ylog(y^)+(1y)log(1y^)\log P(y|x) = y \log(\hat{y}) + (1 - y) \log(1 - \hat{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^)+(1y)log(1y^))L = -\big(y \log(\hat{y}) + (1 - y) \log(1 - \hat{y})\big)

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^\hat{y} pour un exemple d'entraînement particulier, et que la variable target représente yy 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=1y = 1, la perte se simplifie en log(y^)-\log(\hat{y}), ce qui signifie que la perte est faible lorsque y^\hat{y} est proche de 1 et très élevée lorsque y^\hat{y} est proche de 0 ;
  • Si y=0y = 0, la perte se simplifie en log(1y^)-\log(1 - \hat{y}), ce qui signifie que la perte est faible lorsque y^\hat{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=1Ni=1N(yilog(y^i)+(1yi)log(1y^i))L = -\frac1N \sum_{i=1}^N (y_i\log(\hat{y}_i) + (1-y_i)\log(1-\hat{y}_i))

NN est le nombre d'échantillons d'entraînement.

question mark

Laquelle des propositions suivantes décrit le mieux l'objectif de la fonction de perte par entropie croisée en classification binaire ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 6
some-alt