Sto cercando di formare una rete neurale per la classificazione, ma le etichette che ho sono piuttosto rumorose (circa il 30% delle etichette sono sbagliate).
La perdita di entropia funziona davvero, ma mi chiedevo ci sono alternative più efficaci in questo caso? o la perdita di entropia incrociata è ottimale?
Non sono sicuro, ma sto pensando di "tagliare" in qualche modo la perdita di entropia, in modo tale che la perdita per un punto dati non sia maggiore di un limite superiore, funzionerà?
Grazie!
Aggiornamento
Secondo la risposta di Lucas, ho ottenuto quanto segue per i derivati per l'output di previsione e l'input della funzione softmax . Quindi credo che essenzialmente stia aggiungendo un termine di livellamento ai derivati.
Derivati per la perdita originale di entropia crociata:
z 3 pi=0,3/N+0,7yil=-∑tilog(pi)∂l
Aggiornamento
Mi è capitato di leggere un articolo di Google che applica la stessa formula della risposta di Lucas ma con interpretazioni diverse.
Nella sezione 7 Regolarizzazione del modello tramite levigatura dell'etichetta
Questo (la perdita di entropia crociata), tuttavia, può causare due problemi. In primo luogo, può risultare in un eccesso di adattamento: se il modello impara ad assegnare piena probabilità all'etichetta della verità di base per ciascun esempio di addestramento, non è garantito generalizzare. In secondo luogo, incoraggia le differenze tra il logit più grande e tutti gli altri a diventare grandi e questo, combinato con il gradiente limitato , riduce la capacità del modello di adattarsi. Intuitivamente, ciò accade perché il modello diventa troppo sicuro delle sue previsioni.
Ma invece di aggiungere il termine smoothing alle previsioni, lo hanno aggiunto alla verità fondamentale , che si è rivelata utile.
Nei nostri esperimenti ImageNet con classi K = 1000, abbiamo usato u (k) = 1/1000 e = 0.1. Per ILSVRC 2012, abbiamo riscontrato un costante miglioramento di circa lo 0,2% assoluto sia per l'errore top-1 che per l'errore top-5.