Différentes définitions de la fonction de perte d'entropie croisée


12

J'ai commencé à en apprendre davantage sur les réseaux de neurones avec le didacticiel neuromnetworksanddeeplearning dot com. En particulier dans le 3ème chapitre, il y a une section sur la fonction d'entropie croisée, et définit la perte d'entropie croisée comme:

C=1nxj(yjlnajL+(1yj)ln(1ajL))

Cependant, à la lecture de l' introduction de Tensorflow , la perte d'entropie croisée est définie comme suit:

C=1nxj(yjlnajL) (en utilisant les mêmes symboles que ci-dessus)

Puis en cherchant autour de moi pour trouver ce qui se passait, j'ai trouvé un autre ensemble de notes: ( https://cs231n.github.io/linear-classify/#softmax-classifier ) qui utilise une définition complètement différente de la perte d'entropie croisée, bien que ceci temps pour un classificateur softmax plutôt que pour un réseau de neurones.

Quelqu'un peut-il m'expliquer ce qui se passe ici? Pourquoi y a-t-il des écarts entre les deux. quelles personnes définissent la perte d'entropie croisée? Y a-t-il juste un principe primordial?


Réponses:


18

Ces trois définitions sont essentiellement les mêmes.

1) L' introduction Tensorflow ,

C=1nxj(yjlnaj).

2) Pour les classifications binaires , il devient et à cause des contraintes et , il peut être réécrit comme qui est le même que dans le 3ème chapitre .j=2

C=1nx(y1lna1+y2lna2)
jaj=1jyj=1
C=1nx(y1lna1+(1y1)ln(1a1))

3) De plus, si est un vecteur unique (ce qui est généralement le cas pour les étiquettes de classification), étant le seul élément non nul, alors la perte d'entropie croisée de l'échantillon correspondant est yyk

Cx=j(yjlnaj)=(0+0+...+yklnak)=lnak.

Dans les notes cs231 , la perte d'entropie croisée d'un échantillon est donnée avec la normalisation softmax comme

Cx=ln(ak)=ln(efkjefj).

0

Dans le troisième chapitre , l'équation (63) est l'entropie croisée appliquée à plusieurs sigmoïdes (qui peuvent ne pas correspondre à 1) tandis que dans l' introduction de Tensoflow, l'entropie croisée est calculée sur une couche de sortie softmax.

Comme expliqué par dontloo, les deux formules sont essentiellement équivalentes pour deux classes mais ce n'est pas lorsque plus de deux classes sont prises en compte. Softmax est logique pour les multiclasses avec des classes exclusives ( c'est- à- dire quand il n'y a qu'une seule étiquette par échantillon, qui permettent l'encodage à chaud des étiquettes) tandis que (plusieurs) sigmoids peuvent être utilisés pour décrire un problème multi-étiquettes (c'est-à-dire avec des échantillons qui sont peut-être positifs) pour plusieurs classes).

Voir également cette autre réponse dontloo .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.