Funzione di perdita del coefficiente di dadi vs entropia crociata


27

Durante l'addestramento di reti neurali a segmentazione di pixel, come reti convoluzionali, come si decide di utilizzare la funzione di perdita tra entropia e la funzione di perdita a coefficiente di dadi?

Mi rendo conto che questa è una domanda breve, ma non sono del tutto sicuro di quali altre informazioni fornire. Ho esaminato un sacco di documentazione sulle due funzioni di perdita, ma non riesco a capire in modo intuitivo quando utilizzare l'una sull'altra.


Perché non usare l'approccio pratico per usare entrambi e confrontare i risultati. Guardando molti campi di applicazione diversi, la discussione sulla funzione di perdita è il suo argomento di ricerca estesa. Dato che le reti convoluzionali sono ancora un "argomento caldo", immagino che la maggior parte degli articoli sarà ancora pubblicata in futuro.
cherubino,

Risposte:


27

Una ragione convincente per l'utilizzo dell'entropia incrociata rispetto al coefficiente dei dadi o alla metrica IoU simile è che i gradienti sono più gradevoli.

I gradienti dell'entropia incrociata nei logit sono qualcosa di simile a , dove p è l'output del softmax e t è l'obiettivo. Nel frattempo, se proviamo a scrivere il coefficiente dei dadi in una forma differenziabile: 2 p tp-tpt o2pt2ptp2+t2 , quindi i gradienti risultanti rispetto apsono molto più brutti:2t22ptp+tp e2t(t2-p2)2t2(p+t)2 . E 'facile immaginare un caso in cui siapetsono piccole, e il gradiente soffia fino a un valore enorme. In generale, sembra probabile che l'allenamento diventerà più instabile.2t(t2-p2)(p2+t2)2pt


Il motivo principale per cui le persone cercano di utilizzare direttamente il coefficiente dei dadi o l'IoU è che l'obiettivo effettivo è la massimizzazione di tali metriche e l'entropia incrociata è solo un proxy che è più facile da massimizzare utilizzando la backpropagation. Inoltre, il coefficiente dei dadi offre prestazioni migliori a livello di problemi di squilibrio in base alla progettazione:

Tuttavia, lo squilibrio di classe viene in genere risolto semplicemente assegnando moltiplicatori di perdita a ciascuna classe, in modo tale che la rete sia fortemente disincentivata a ignorare semplicemente una classe che appare di rado, quindi non è chiaro che il coefficiente di dadi sia davvero necessario in questi casi.


Vorrei iniziare con la perdita di entropia incrociata, che sembra essere la perdita standard per l'addestramento delle reti di segmentazione, a meno che non ci fosse una ragione davvero convincente per usare il coefficiente Dadi.


p-t

3
Quando è la massimizzazione dell '"obiettivo principale" della perdita di dadi? Ho controllato il documento originale e tutto ciò che dicono è "otteniamo risultati che sperimentalmente osservati sono molto migliori di quelli calcolati attraverso la stessa rete addestrata ottimizzando una perdita logistica multinomiale con la ripesatura dei campioni". Ciò non è molto convincente.
Neil G,

@shimao Per "brutto" intendi solo che i gradienti possono esplodere, è corretto?
Flawr

17

Come riassunto da @shimao e @cherub, non si può dire apriori quale funzionerà meglio su un particolare set di dati. Il modo corretto è provare entrambi e confrontare i risultati. Inoltre, si noti che quando si tratta di segmentazione, non è così facile "confrontare i risultati" : le misure basate su IoU come il coefficiente dei dadi coprono solo alcuni aspetti della qualità della segmentazione; in alcune applicazioni, è necessario utilizzare misure diverse come la distanza media della superficie o la distanza della superficie di Hausdorff . Come vedi, nemmeno la scelta della metrica di qualità corretta è banale, figuriamoci la scelta della migliore funzione di costo.

Personalmente ho un'ottima esperienza con il coefficiente dei dadi; fa davvero meraviglie quando si tratta di uno squilibrio di classe (alcuni segmenti occupano meno pixel / voxel di altri). D'altra parte, la curva dell'errore di allenamento diventa un disastro totale: non mi ha dato assolutamente alcuna informazione sulla convergenza, quindi a questo proposito vince l'entropia incrociata. Naturalmente, questo può / dovrebbe essere aggirato controllando comunque l'errore di validazione.

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.