2016-05-25 2 views
10

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

+0

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? –

+0

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

+0

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. –

Répondre

14

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.

+4

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

+0

Merci pour votre clarification @TheLaurens! –