Qu'est-ce que l'entropie croisée?

93

Je sais qu'il y a beaucoup d'explications sur ce qu'est l'entropie croisée, mais je suis toujours confus.

Est-ce seulement une méthode pour décrire la fonction de perte? Pouvons-nous utiliser l'algorithme de descente de gradient pour trouver le minimum en utilisant la fonction de perte?

théatre
la source
10
Pas un bon choix pour SO. Voici une question similaire sur le site sœur de datascience
Metropolis

Réponses:

231

L'entropie croisée est couramment utilisée pour quantifier la différence entre deux distributions de probabilité. Habituellement, la distribution «vraie» (celle que votre algorithme d'apprentissage automatique essaie de faire correspondre) est exprimée en termes de distribution unique.

Par exemple, supposons que pour une instance d'apprentissage spécifique, l'étiquette soit B (parmi les étiquettes possibles A, B et C). La distribution one-hot pour cette instance d'entraînement est donc:

Pr(Class A)  Pr(Class B)  Pr(Class C)
        0.0          1.0          0.0

Vous pouvez interpréter la distribution «vraie» ci-dessus comme signifiant que l'instance d'apprentissage a 0% de probabilité d'être de classe A, 100% de probabilité d'être de classe B et 0% de probabilité d'être de classe C.

Maintenant, supposons que votre algorithme d'apprentissage automatique prédit la distribution de probabilité suivante:

Pr(Class A)  Pr(Class B)  Pr(Class C)
      0.228        0.619        0.153

À quel point la distribution prévue est-elle proche de la distribution réelle? C'est ce que détermine la perte d'entropie croisée. Utilisez cette formule:

Formule de perte d'entropie croisée

p(x)est la probabilité souhaitée et q(x)la probabilité réelle. La somme est sur les trois classes A, B et C. Dans ce cas, la perte est de 0,479 :

H = - (0.0*ln(0.228) + 1.0*ln(0.619) + 0.0*ln(0.153)) = 0.479

Voilà donc à quel point votre prédiction est «fausse» ou «éloignée» de la vraie distribution.

L'entropie croisée est l'une des nombreuses fonctions de perte possibles (une autre populaire est la perte de charnière SVM). Ces fonctions de perte sont typiquement écrites comme J (thêta) et peuvent être utilisées dans la descente de gradient, qui est un algorithme itératif pour déplacer les paramètres (ou coefficients) vers les valeurs optimales. Dans l'équation ci-dessous, vous remplaceriez J(theta)par H(p, q). Mais notez que vous devez d'abord calculer la dérivée de H(p, q)par rapport aux paramètres.

Descente graduelle

Alors pour répondre directement à vos questions originales:

Est-ce seulement une méthode pour décrire la fonction de perte?

Correct, l'entropie croisée décrit la perte entre deux distributions de probabilité. C'est l'une des nombreuses fonctions de perte possibles.

Ensuite, nous pouvons utiliser, par exemple, un algorithme de descente de gradient pour trouver le minimum.

Oui, la fonction de perte d'entropie croisée peut être utilisée dans le cadre de la descente de gradient.

Lectures complémentaires: l'une de mes autres réponses liées à TensorFlow.

stackoverflowuser2010
la source
ainsi, l'entropie croisée décrit la perte par somme des probabilités pour chaque exemple X.
theateist
alors, pouvons-nous au lieu de décrire l'erreur comme une entropie croisée, décrire l'erreur comme un angle entre deux vecteurs (similarité cosinus / distance angulaire) et essayer de minimiser l'angle?
theateist
1
apparemment ce n'est pas la meilleure solution, mais je voulais juste savoir, en théorie, si nous pouvions utiliser cosine (dis)similaritypour décrire l'erreur à travers l'angle et ensuite essayer de minimiser l'angle.
theateist
2
@Stephen: Si vous regardez l'exemple que j'ai donné, p(x)serait la liste des probabilités de vérité terrain pour chacune des classes, ce qui serait [0.0, 1.0, 0.0. De même, q(x)la liste des probabilités prévue pour chacune des classes, [0.228, 0.619, 0.153]. H(p, q)est alors - (0 * log(2.28) + 1.0 * log(0.619) + 0 * log(0.153)), qui est de 0,479. Notez qu'il est courant d'utiliser la np.log()fonction de Python , qui est en fait le journal naturel; ça n'a pas d'importance.
stackoverflowuser2010
1
@HAr: Pour l'encodage à chaud de la vraie étiquette, il n'y a qu'une seule classe non nulle qui nous intéresse. Cependant, l'entropie croisée peut comparer deux distributions de probabilité quelconques; il n'est pas nécessaire que l'un d'entre eux ait des probabilités uniques.
stackoverflowuser2010
3

En bref, l'entropie croisée (CE) est la mesure de la distance entre votre valeur prédite et la vraie étiquette.

La croix fait ici référence au calcul de l'entropie entre deux ou plusieurs caractéristiques / étiquettes vraies (comme 0, 1).

Et le terme entropie lui-même fait référence au hasard, donc une grande valeur signifie que votre prédiction est loin des vraies étiquettes.

Ainsi, les poids sont modifiés pour réduire CE et conduit donc finalement à une différence réduite entre la prédiction et les étiquettes vraies et donc une meilleure précision.

Harsh Malra
la source
1

En plus des messages ci-dessus, la forme la plus simple de perte d'entropie croisée est connue sous le nom d' entropie croisée binaire (utilisée comme fonction de perte pour la classification binaire, par exemple avec régression logistique), alors que la version généralisée est l' entropie croisée catégorique (utilisée comme fonction de perte pour les problèmes de classification multi-classes, par exemple avec les réseaux de neurones).

L'idée reste la même:

  1. lorsque la probabilité de classe calculée par modèle (softmax) devient proche de 1 pour l'étiquette cible pour une instance d'apprentissage (représentée avec un codage à chaud, par exemple), la perte CCE correspondante diminue à zéro

  2. sinon, il augmente à mesure que la probabilité prédite correspondant à la classe cible diminue.

La figure suivante illustre le concept (remarquez sur la figure que BCE devient faible lorsque y et p sont tous deux élevés ou les deux sont bas simultanément, c'est-à-dire qu'il y a un accord):

entrez la description de l'image ici

L'entropie croisée est étroitement liée à l'entropie relative ou à la divergence KL qui calcule la distance entre deux distributions de probabilité. Par exemple, entre deux pmfs discrets, la relation entre eux est illustrée dans la figure suivante:

entrez la description de l'image ici

Sandipan Dey
la source