La formule d' entropie croisée prend deux distributions, , la distribution vraie, et , la distribution estimée, définie sur la variable discrète et est donnée parp ( x )q( x )X
H( p , q) = - ∑∀ xp ( x ) log( q( x ) )
Pour un réseau de neurones, le calcul est indépendant des éléments suivants:
Quel type de couche a été utilisé.
Quel type d'activation a été utilisé - bien que de nombreuses activations ne soient pas compatibles avec le calcul car leurs sorties ne sont pas interprétables comme des probabilités (c'est-à-dire que leurs sorties sont négatives, supérieures à 1 ou ne totalisent pas 1). Softmax est souvent utilisé pour la classification multiclasse car il garantit une fonction de distribution de probabilité bien comportée.
Pour un réseau de neurones, vous verrez généralement l'équation écrite sous une forme où est le vecteur de vérité fondamentale et (ou une autre valeur prise directement à partir de la sortie de la dernière couche) est le devis. Pour un seul exemple, cela ressemblerait à ceci:yyy^
L = - y ⋅ log( y^)
où est le produit vectoriel vectoriel.⋅
Votre exemple de vérité fondamentale donne toutes les probabilités à la première valeur, et les autres valeurs sont nulles, donc nous pouvons les ignorer, et utiliser simplement le terme correspondant de vos estimationsyyy^
L = - ( 1 × l o g( 0,1 ) + 0 × log( 0,5 ) + . . . )
L = - l o g( 0,1 ) ≈ 2,303
Un point important des commentaires
Cela signifie que la perte serait la même, peu importe si les prévisions sont ou ?[ 0,1 , 0,5 , 0,1 , 0,1 , 0,2 ][ 0,1 , 0,6 , 0,1 , 0,1 , 0,1 ]
Oui, c'est une caractéristique clé de la perte de journal multiclasse, elle récompense / pénalise les probabilités des classes correctes uniquement. La valeur est indépendante de la façon dont la probabilité restante est répartie entre des classes incorrectes.
N
J= - 1N( ∑i = 1Nyje⋅ journal( y^je) )
De nombreuses implémentations nécessiteront que vos valeurs de vérité au sol soient codées à chaud (avec une seule vraie classe), car cela permet une optimisation supplémentaire. Cependant, en principe, la perte d'entropie croisée peut être calculée - et optimisée - lorsque ce n'est pas le cas.
La réponse de Neil est correcte. Cependant, je pense qu'il est important de souligner que même si la perte ne dépend pas de la distribution entre les classes incorrectes (uniquement la distribution entre la classe correcte et les autres), le gradient de cette fonction de perte affecte les classes incorrectes différemment selon la façon dont ils ont tort. Ainsi, lorsque vous utilisez le cross-ent dans l'apprentissage automatique, vous modifiez les pondérations différemment pour [0,1 0,5 0,1 0,1 0,2] et [0,1 0,6 0,1 0,1 0,1]. En effet, le score de la classe correcte est normalisé par les scores de toutes les autres classes pour en faire une probabilité.
la source
Voyons comment se comporte le gradient de la perte ... Nous avons l'entropie croisée comme fonction de perte, qui est donnée par
Je me demande comment les progiciels doivent gérer une valeur prédite de 0, alors que la vraie valeur est supérieure à zéro ... Puisque nous divisons par zéro dans ce cas.
la source
Commençons par comprendre l'entropie dans la théorie de l'information: supposons que vous vouliez communiquer une chaîne d'alphabets "aaaaaaaa". Vous pouvez facilement le faire en 8 * "a". Prenez maintenant une autre chaîne "jteikfqa". Existe-t-il un moyen compressé de communiquer cette chaîne? Il n'y en a pas. On peut dire que l'entropie de la 2ème chaîne est plus car, pour la communiquer, il nous faut plus de "bits" d'informations.
En entropie "croisée", comme son nom l'indique, nous nous concentrons sur le nombre de bits requis pour expliquer la différence dans deux distributions de probabilité différentes. Le meilleur des cas est que les deux distributions soient identiques, auquel cas le moins de bits est requis, c'est-à-dire une entropie simple. En termes mathématiques,
Conclusion: en termes simples, on pourrait penser à l'entropie croisée comme la distance entre deux distributions de probabilité en termes de quantité d'informations (bits) nécessaires pour expliquer cette distance. C'est une bonne façon de définir une perte qui diminue à mesure que les vecteurs de probabilité se rapprochent les uns des autres.
la source
Je ne suis pas d'accord avec Lucas. Les valeurs ci-dessus sont déjà des probabilités. Notez que le message d'origine indiquait que les valeurs avaient une activation softmax.
L'erreur ne se propage que sur la classe "chaude" et la probabilité Q (i) ne change pas si les probabilités au sein des autres classes se décalent entre elles.
la source
Le problème est que les probabilités proviennent d'une fonction «compliquée» qui incorpore les autres sorties dans la valeur donnée. Les résultats sont interconnectés, de cette façon, nous ne dérivons pas du résultat réel, mais de toutes les entrées de la dernière fonction d'activation (softmax), pour chaque résultat.
Autre description soignée sur gombru.github.io/2018/05/23/cross_entropy_loss .
Je pense que l'utilisation d'un simple sigmoïde comme dernière couche d'activation conduirait à la réponse approuvée, mais l'utilisation de softmax indique une réponse différente.
la source