Je fais une classification de classe binaire en utilisant un réseau neuronal profond. Chaque fois que j'utilise binary_crossentropy mon modèle ne donne pas une bonne précision (il est plus proche de la prédiction aléatoire). Mais si j'utilise la crossentropy catégorique en faisant la taille de la couche de sortie 2, j'obtiens une bonne précision en seulement 1 époque qui est proche du 0,90. Quelqu'un peut-il expliquer ce qui se passe ici?Confusion entre Binary_crossentropy et Categorical_crossentropy
Répondre
J'ai également ce problème en essayant d'utiliser binary_crossentropy avec l'activation softmax
dans la couche de sortie. Pour autant que je sache, softmax
donne la probabilité de chaque classe, donc si votre couche de sortie a 2 nœuds, ce sera quelque chose comme p(x1)
, p(x2)
et x1 + x2 = X
. Donc, si vous avez seulement 1 noeud de sortie, il sera toujours égal à 1.0 (100%), c'est pourquoi vous avez une prédiction proche de la random (honnêtement, elle sera proche de la distribution de votre catégorie dans le jeu d'évaluation). Essayez le changement à une autre méthode d'activation comme sigmoid
ou relu
.
Cela n'est peut-être plus pertinent, mais juste pour des raisons de légitimité et de légitimité: Softmax ne renvoie pas de probabilités, même si softmax garantit que la sortie de tous les nœuds de votre couche de sortie est égale à 1 . – TheLaurens
Merci pour votre clarification @TheLaurens! –
Phénomène intéressant. Pourriez-vous nous donner plus de détails sur votre ensemble de données et/ou code que vous utilisez? –
Je suis d'accord avec Marcin, d'autres informations seraient très utiles. Quelle est la fonction d'activation de la couche de sortie lorsque vous utilisez binary_corssentropy et lorsque vous utilisez categorical_crossentropy? De plus, le solde de la classe dans l'ensemble d'entraînement est-il de 10 à 1? – Dimosthenis
La fonction d'activation que j'utilise pour les deux cas est softmax. Le modèle reste le même pour les deux cas. Seulement pour le cas de la crossentropy binaire, la taille de la couche finale est de 1 alors qu'elle est de 2 pour la catégorie catégorique. Faites-moi savoir si d'autres informations sont nécessaires. –