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 ) 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?