2016-05-25 32 views
10

Sto facendo una classificazione di classe binaria utilizzando una rete neurale profonda. Ogni volta che utilizzo binary_crossentropy il mio modello non sta dando una buona accuratezza (è più vicino alla previsione casuale). Ma se uso la crossentropia categoriale facendo la dimensione del livello di output 2, sto ottenendo una buona precisione in solo 1 epoca che è vicina allo 0.90. Qualcuno può spiegare cosa sta succedendo qui?Confusione tra Binary_crossentropy e Categorical_crossentropy

+0

Fenomeno interessante. Potresti fornirci ulteriori dettagli sul set di dati e/o sul codice che utilizzi? –

+0

Sono d'accordo con Marcin, qualche informazione in più sarebbe molto utile. Qual è la funzione di attivazione del livello di output quando si utilizza binary_corssentropy e quando si utilizza categorical_crossentropy? Inoltre, il bilancio della classe nel set di allenamento 10 a 1? – Dimosthenis

+0

La funzione di attivazione che sto usando per entrambi i casi è softmax. Il modello rimane lo stesso per entrambi i casi. Solo per il caso di crossentropia binaria la dimensione del livello finale è 1 mentre è 2 per categoriale. Fammi sapere se sono richieste altre informazioni. –

risposta

14

Ho anche questo problema durante il tentativo di utilizzare binary_crossentropy con l'attivazione softmax nel livello di output. Per quanto ne so, lo softmax indica la probabilità di ogni classe, quindi se il livello di output ha 2 nodi, sarà qualcosa come p(x1), p(x2) e x1 + x2 = X. Pertanto, se hai solo un nodo di output, sarà sempre uguale a 1.0 (100%), ecco perché hai una previsione casuale vicina (onestamente, sarà vicino alla distribuzione della categoria nel set di valutazione).

Provare a cambiarlo con un altro metodo di attivazione come sigmoid o relu.

+4

Quindi questo potrebbe non essere più rilevante, ma solo per motivi legacy e di chiarezza: Softmax non restituisce probabilità, sebbene softmax assicuri che l'output di tutti i nodi nel proprio livello di output aggiunga 1 (quindi in questo modo è come una probabilità) . – TheLaurens

+0

Grazie per il vostro chiarimento @TheLaurens! –