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 performance du modèle. Cela se fait à l'aide d'une fonction de perte, qui quantifie la différence entre les sorties prédites 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 valeurs réelles.

L'une des fonctions de perte les plus couramment utilisées pour la classification binaire est la perte d'entropie croisée, particulièrement adaptée aux modèles produisant des probabilités.

Dérivation de la perte d'entropie croisée

Pour comprendre la perte d'entropie croisée, il faut commencer par le principe du maximum de vraisemblance. Dans un problème de classification binaire, l'objectif est d'entraîner un modèle qui estime la probabilité y^\hat{y} qu'une entrée donnée appartienne à la classe 1. L'étiquette réelle yy peut être 0 ou 1.

Un bon modèle doit maximiser la probabilité de prédire correctement tous les exemples d'entraînement. Cela signifie que l'on cherche à maximiser la fonction de vraisemblance, qui représente la probabilité d'observer les données en fonction des prédictions du modèle.

Pour un exemple d'entraînement unique, en supposant l'indépendance, la vraisemblance peut s'écrire :

P(yx)=y^y(1y^)1yP(y|x) = \hat{y}^y(1 - \hat{y})^{1-y}

Cette expression signifie simplement :

  • Si y=1y = 1, alors P(yx)=y^P(y|x) = \hat{y}, ce qui implique que l'on souhaite maximiser y^\hat{y} (la probabilité attribuée à la classe 1) ;
  • Si y=0y = 0, alors P(yx)=1y^P(y|x) = 1 - \hat{y}, ce qui implique que l'on souhaite maximiser 1y^1 - \hat{y} (la probabilité attribuée à la classe 0).
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 faciliter l'optimisation, on utilise la log-vraisemblance au lieu de la vraisemblance elle-même (puisque les logarithmes transforment les produits en sommes, ce qui simplifie 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'objectif est la maximisation, on définit la fonction de perte comme la négative log-vraisemblance, que l'on souhaite minimiser :

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

Why do we use the negative log-likelihood instead of just the likelihood?

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 performance du modèle. Cela se fait à l'aide d'une fonction de perte, qui quantifie la différence entre les sorties prédites 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 valeurs réelles.

L'une des fonctions de perte les plus couramment utilisées pour la classification binaire est la perte d'entropie croisée, particulièrement adaptée aux modèles produisant des probabilités.

Dérivation de la perte d'entropie croisée

Pour comprendre la perte d'entropie croisée, il faut commencer par le principe du maximum de vraisemblance. Dans un problème de classification binaire, l'objectif est d'entraîner un modèle qui estime la probabilité y^\hat{y} qu'une entrée donnée appartienne à la classe 1. L'étiquette réelle yy peut être 0 ou 1.

Un bon modèle doit maximiser la probabilité de prédire correctement tous les exemples d'entraînement. Cela signifie que l'on cherche à maximiser la fonction de vraisemblance, qui représente la probabilité d'observer les données en fonction des prédictions du modèle.

Pour un exemple d'entraînement unique, en supposant l'indépendance, la vraisemblance peut s'écrire :

P(yx)=y^y(1y^)1yP(y|x) = \hat{y}^y(1 - \hat{y})^{1-y}

Cette expression signifie simplement :

  • Si y=1y = 1, alors P(yx)=y^P(y|x) = \hat{y}, ce qui implique que l'on souhaite maximiser y^\hat{y} (la probabilité attribuée à la classe 1) ;
  • Si y=0y = 0, alors P(yx)=1y^P(y|x) = 1 - \hat{y}, ce qui implique que l'on souhaite maximiser 1y^1 - \hat{y} (la probabilité attribuée à la classe 0).
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 faciliter l'optimisation, on utilise la log-vraisemblance au lieu de la vraisemblance elle-même (puisque les logarithmes transforment les produits en sommes, ce qui simplifie 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'objectif est la maximisation, on définit la fonction de perte comme la négative log-vraisemblance, que l'on souhaite minimiser :

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