Perché l'output di softmax non è una buona misura di incertezza per i modelli di Deep Learning?


22

Lavoro con Convolutional Neural Networks (CNN) da qualche tempo, principalmente su dati di immagine per la segmentazione semantica / segmentazione di istanza. Ho spesso visualizzato il softmax dell'output di rete come una "mappa di calore" per vedere quanto sono alte le attivazioni per pixel per una determinata classe. Ho interpretato le attivazioni basse come "incerte" / "non sicure" e le attivazioni alte come previsioni "certe" / "sicure". Fondamentalmente questo significa interpretare l'output del softmax (valori entro (0,1) ) come una misura di probabilità o (non) certezza del modello.

( Ad esempio, ho interpretato un oggetto / area con un'attivazione di softmax bassa mediata sui suoi pixel per essere difficile da rilevare per la CNN, quindi la CNN è "incerta" nel predire questo tipo di oggetto. )

Nella mia percezione questo spesso ha funzionato e l'aggiunta di ulteriori campioni di aree "incerte" ai risultati della formazione ha migliorato i risultati su questi. Tuttavia, ho sentito abbastanza spesso ora da diverse parti che l'uso / l'interpretazione dell'output di softmax come misura di (non) certezza non è una buona idea ed è generalmente scoraggiato. Perché?


EDIT: Per chiarire cosa sto chiedendo qui, approfondirò le mie intuizioni finora nel rispondere a questa domanda. Tuttavia, nessuno dei seguenti argomenti mi ha chiarito ** perché è generalmente una cattiva idea **, come mi è stato ripetutamente detto da colleghi, supervisori e viene anche affermato, ad esempio, qui nella sezione "1.5"

Nei modelli di classificazione, il vettore di probabilità ottenuto alla fine della pipeline (uscita softmax) viene spesso erroneamente interpretato come confidenza del modello

o qui nella sezione "Sfondo" :

Sebbene possa essere allettante interpretare i valori dati dallo strato finale di softmax di una rete neurale convoluzionale come punteggi di confidenza, dobbiamo stare attenti a non leggere troppo in questo.


Le fonti sopra riportate ritengono che l'utilizzo dell'output di softmax come misura di incertezza sia negativo perché:

perturbazioni impercettibili a un'immagine reale possono cambiare l'output del softmax di una rete profonda in valori arbitrari

Ciò significa che l'output di softmax non è robusto per "perturbazioni impercettibili" e quindi l'output non è utilizzabile come probabilità.

Un altro articolo riprende l'idea "uscita softmax = fiducia" e sostiene che con questa intuizione le reti possono essere facilmente ingannate, producendo "risultati ad alta fiducia per immagini irriconoscibili".

(...) la regione (nel dominio di input) corrispondente a una particolare classe può essere molto più grande dello spazio in quella regione occupata da esempi di addestramento di quella classe. Il risultato di ciò è che un'immagine può trovarsi all'interno della regione assegnata a una classe e quindi essere classificata con un grande picco nell'output del softmax, pur essendo ancora lontana dalle immagini che si trovano naturalmente in quella classe nel set di addestramento.

Ciò significa che i dati che sono lontani dai dati di allenamento non dovrebbero mai avere un'alta confidenza, poiché il modello "non può" esserne sicuro (come non lo ha mai visto).

Tuttavia: questo non sta semplicemente mettendo in discussione le proprietà di generalizzazione degli NN nel loro insieme? Vale a dire che le NN con perdita di softmax non si generalizzano bene a (1) "perturbazioni impercettibili" o (2) input di dati che sono lontani dai dati di allenamento, ad esempio immagini non riconoscibili.

Seguendo questo ragionamento non capisco ancora, perché in pratica con i dati che non sono modificati in modo astratto e artificioso rispetto ai dati di allenamento (cioè la maggior parte delle applicazioni "reali"), interpretare l'output di softmax come "pseudo-probabilità" è un male idea. Dopotutto, sembrano rappresentare bene ciò di cui il mio modello è sicuro, anche se non è corretto (nel qual caso devo correggere il mio modello). E l'incertezza del modello non è sempre "solo" un'approssimazione?


4
(-,)(0,1)

2
(0,1)(0,1)

Mi piace come hai espresso questo: "Dopo tutto, sembrano rappresentare bene ciò di cui il mio modello è sicuro, anche se non è corretto (nel qual caso ho bisogno di riparare il mio modello)."
HeyWatchThis

Risposte:


14

È possibile rispondere a questa domanda in modo più preciso rispetto alle risposte attuali. La correzione della deviazione tra le probabilità previste (l'output dello strato di softmax di una rete neurale) e le loro reali probabilità (che rappresentano una nozione di confidenza), è nota come curva di calibrazione o affidabilità.

Il problema con molte reti neurali profonde è che, sebbene tendano a funzionare bene per la previsione, le loro probabilità previste stimate prodotte dall'output di uno strato di softmax non possono essere utilizzate in modo affidabile come probabilità reali (come confidenza per ciascuna etichetta). In pratica, tendono ad essere troppo alte - le reti neurali sono "troppo sicure" nelle loro previsioni.

Chuan Go et. al., lavorando con Kilian Weinberger, ha sviluppato una soluzione efficace per calibrare le probabilità previste delle reti neurali in questo documento: https://arxiv.org/pdf/1706.04599.pdf

Questo documento spiega anche come le probabilità previste possono essere interpretate come misure di confidenza quando le probabilità previste sono calibrate correttamente.


1
Grazie @cgnorthcutt, ho sentito molte persone parlare di questo molte volte e ho cercato questo articolo da allora, riferimento davvero piacevole
Théophile Pace

Bello grazie. Ecco un link all'abstract
Waylon Flinn,

3

Ciò che viene chiamato softmax in ML ha la stessa equazione dell'equazione logistica multinomiale . Quest'ultimo può essere utilizzato per calcolare le probabilità. In pratica è ampiamente utilizzato nella stima delle probabilità di insolvenza nel quadro dei rischi concorrenti per i mutui, ad es. Vedere l'Eq. 4 in questo documento .

Quindi, direi che la tua intuizione non è completamente fuori dal comune. Tuttavia, nell'esempio precedente di modellizzazione dei mutui la variabile dipendente è la metrica di probabilità delle inadempienze sui prestiti. Hai un pool di mutui e osserva il numero di default. Una singola ipoteca può essere corrente o in default, la probabilità del suo default non è osservabile. Osserviamo solo gli eventi discreti. Tuttavia, modelliamo le probabilità.

In che cosa differisce dall'apprendimento automatico? Dipende. Potrei decidere di applicarlo ai valori predefiniti dei mutui, quindi non sarebbe molto diverso. D'altra parte in diverse applicazioni, questo potrebbe non funzionare. Se non stai modellando la probabilità esplicitamente come nel mio esempio, l'output del tuo modello potrebbe non rappresentare la probabilità in modo appropriato.


Grazie per la risposta. Quindi questo si riduce a: In alcuni casi sarebbe effettivamente un approccio valido, tuttavia in genere non è una buona idea perché non è robusto e non si sa (facilmente) se è applicabile in un determinato compito?
Honeybear,

Non vorrei andare in giro termini come "robusto" perché hanno un significato molto specifico nelle statistiche, ma hai capito il mio argomento. Se stai specificatamente modellando le probabilità, potresti finire ad usare l'equazione del softmax ad un certo punto, e sarebbe OK interpretare l'output come una probabilità. In generale, l'output di softmax non corrisponde alla probabilità.
Aksakal,

1

Softmax distribuisce la 'probabilità' 0-1 tra le classi disponibili. Non esprime incertezza, non è una funzione PDF. Se vuoi esprimere l'incertezza, dovresti guardare nelle reti neurali bayesiane. Dai un'occhiata a questo documento: Incertezza nell'apprendimento profondo Alcuni quadri di probabilità piuttosto recenti:

Intervento di keynote interessante di Zoubin Ghahramani (Università di Cambridge)

Dai un'occhiata a questo documento: Mixture Density Networks :

Immagino che tu possa implementarlo e aggiungerlo come strato finale a CONVNET. Se lo fai, non dimenticare che la condivisione è premurosa ;-) Buona fortuna


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.