Diverse definizioni della funzione di perdita di entropia crociata


12

Ho iniziato a conoscere le reti neurali con il tutorial com dot su reti neurali e apprendimento. In particolare nel terzo capitolo c'è una sezione sulla funzione entropia crociata e definisce la perdita di entropia crociata come:

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

Tuttavia, leggendo l' introduzione di Tensorflow , la perdita di entropia crociata è definita come:

C=1nxj(yjlnajL) (quando si usano gli stessi simboli di cui sopra)

Quindi, cercando in giro per trovare quello che stava succedendo, ho trovato un'altra serie di note: ( https://cs231n.github.io/linear-classify/#softmax-classifier ) che utilizza una definizione completamente diversa della perdita di entropia crociata, anche se questo tempo per un classificatore softmax piuttosto che per una rete neurale.

Qualcuno può spiegarmi cosa sta succedendo qui? Perché ci sono discrepanze tra l'altro. quali sono le persone che definiscono la perdita di entropia? C'è solo un principio generale?


Risposte:


18

Queste tre definizioni sono essenzialmente le stesse.

1) L' introduzione di Tensorflow ,

C=1nxj(yjlnaj).

2) Per le classificazioni binarie , diventa e a causa dei vincoli e , può essere riscritto come che è lo stesso del terzo capitolo .j=2

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

3) Inoltre, se è un vettore a un punto (che è comunemente il caso delle etichette di classificazione) con essendo l'unico elemento diverso da zero, la perdita di entropia crociata del campione corrispondente è yyk

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

Nelle note cs231 , la perdita di entropia crociata di un campione è data insieme alla normalizzazione del softmax come

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

0

Nel terzo capitolo , l'equazione (63) è l'entropia incrociata applicata a più sigmoidi (che non possono essere sommati a 1) mentre nell'intro di Tensoflow l'entropia incrociata viene calcolata su uno strato di output di softmax.

Come spiegato da dontloo, entrambe le formule sono essenzialmente equivalenti per due classi, ma non è quando si considerano più di due classi. Softmax ha senso per la multiclasse con classi esclusive ( cioè quando esiste una sola etichetta per campione, che consente la codifica a caldo di etichette) mentre i sigmoidi (multipli) possono essere usati per descrivere un problema multilabel (cioè con campioni che possono essere positivi per diverse classi).

Vedi anche questa altra risposta a Dontloo .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.