QNA > Q > Quando Si Dovrebbe Usare La Perdita Di Entropia Incrociata E Perché?

Quando si dovrebbe usare la perdita di entropia incrociata e perché?

L'entropia incrociata è una buona funzione di costo quando si lavora su compiti di classificazione e si usano funzioni di attivazione nello strato di output che modellano probabilità (Sigmoid) o distribuzioni (Softmax). Prima di tutto è molto intuitivo lavorare con l'entropia (contenuto informativo) quando si trattano le probabilità. Ma ancora più importante, l'entropia incrociata ha alcune belle proprietà, specialmente per le funzioni di attivazione sigmoidali.

La derivata nella backpropagation per un peso specifico con una funzione di costo ad errore quadratico assomiglia a questa:

[math]\frac{\partial C}{\partial w^L_{jk}} = \frac{1}{n} \sum_x a^{L-1}_k (a^L_j - y) \sigma^\prime(z^L_j)[/math]

dove [math]\sigma^\prime(z^L_j)[/math] è la derivata della funzione di attivazione sigmoidale. La funzione sigmoidale si presenta così:

main-qimg-ab9f2c0e33215ed30f40f1b1a7641df7

Come potete immaginare, quando un neurone ha un valore vicino a 0 o 1, il gradiente di questa funzione diventerà molto piccolo. A sua volta il gradiente dell'intera funzione di costo rispetto a [math]w^L_{jk}[/math] diventerà molto piccolo. Un neurone che ha raggiunto questo stato è chiamato saturo e cambierà i suoi pesi molto lentamente. Questo può essere dannoso per il processo di apprendimento di una rete.

Tuttavia, quando usiamo l'entropia incrociata come termine di errore la derivata risulta essere:

[math]\frac{\frac_parziale C}{{parziale w^L_{jk}} = \frac{1}{n} \sum_x a^{L-1}_k (\sigma(z^L_j) - y_j)[/math]

Qui la derivata [math]\sigma^prime(z^L_j)[/math] non c'è più, e quindi il gradiente dipende solo dall'uscita del neurone, il target [math]y_j[/math] e l'ingresso del neurone [math]a^{L-1}_k[/math]. Questo evita il rallentamento dell'apprendimento e aiuta a risolvere il problema del gradiente di fuga di cui soffrono le reti neurali profonde.

Di Kinny

Qual è la differenza tra C, C++ e C#? :: Perché è tutto esaurito su Walmart grocery?
Link utili