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? Peut-on utiliser l'algorithme de descente de gradient pour trouver le minimum en utilisant la fonction de perte?
L'entropie croisée est couramment utilisée pour quantifier la différence entre deux distributions de probabilité. Habituellement, la "vraie" distribution (celle que votre algorithme d'apprentissage automatique tente de faire correspondre) est exprimée en termes de distribution one-hot.
Par exemple, supposons que, pour une instance de formation spécifique, l’étiquette soit B (sur les étiquettes possibles A, B et C). La distribution one-hot pour cette instance de formation 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 une probabilité de 0% d'être de classe A, une probabilité de 100% d'être de classe B et une probabilité de 0% d'être de la classe C.
Supposons maintenant que votre algorithme d'apprentissage machine 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 vraie distribution? C'est ce que détermine la perte d'entropie croisée. Utilisez cette formule:
Où p(x)
est la probabilité voulue 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à comment votre prévision 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 généralement écrites sous la forme J(theta) et peuvent être utilisées dans la descente de gradient, algorithme itératif permettant de déplacer les paramètres (ou les coefficients) vers les valeurs optimales. Dans l'équation ci-dessous, vous devriez remplacer 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.
Donc, pour répondre directement à vos questions initiales:
Est-ce seulement une méthode pour décrire la fonction de perte?
Une entropie croisée correcte 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, l’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 d'une descente de gradient.
Lectures supplémentaires: une de mes autres réponses liée à TensorFlow.