Ich arbeite seit einiger Zeit mit Convolutional Neural Networks (CNNs), hauptsächlich mit Bilddaten für die semantische Segmentierung / Instanzsegmentierung. Ich habe mir den Softmax der Netzwerkausgabe oft als "Heatmap" vorgestellt, um zu sehen, wie hoch die Aktivierungen pro Pixel für eine bestimmte Klasse sind. Ich habe niedrige Aktivierungen als "unsicher" / "nicht sicher" und hohe Aktivierungen als "sicher" / "zuversichtlich" Vorhersagen interpretiert. Grundsätzlich bedeutet dies, die Softmax-Ausgabe (Werte innerhalb von ) als Wahrscheinlichkeits- oder ( Unsicherheits- ) Maß des Modells zu interpretieren .
( ZB habe ich ein Objekt / einen Bereich mit einer über seine Pixel gemittelten niedrigen Softmax-Aktivierung so interpretiert, dass es für das CNN schwer zu erkennen ist, weshalb das CNN "unsicher" ist, ob es diese Art von Objekt vorhersagt. )
Nach meiner Auffassung hat dies oft funktioniert, und das Hinzufügen zusätzlicher Stichproben von "unsicheren" Bereichen zu den Trainingsergebnissen verbesserte die Ergebnisse bei diesen. Allerdings habe ich von verschiedenen Seiten schon öfter gehört, dass die Verwendung / Interpretation von Softmax-Ausgaben als (Unsicherheits-) Maß keine gute Idee ist und generell davon abgeraten wird. Warum?
EDIT: Um zu verdeutlichen, was ich hier stelle, werde ich auf meine bisherigen Erkenntnisse bei der Beantwortung dieser Frage eingehen. Keines der folgenden Argumente hat mir jedoch deutlich gemacht, warum es im Allgemeinen eine schlechte Idee ist, wie mir wiederholt von Kollegen, Vorgesetzten gesagt wurde und auch z. B. hier in Abschnitt "1.5" angegeben ist.
In Klassifikationsmodellen wird der am Ende der Pipeline erhaltene Wahrscheinlichkeitsvektor (die Softmax-Ausgabe) häufig fälschlicherweise als Modellvertrauen interpretiert
oder hier im Bereich "Hintergrund" :
Obwohl es verlockend sein mag, die von der letzten Softmax-Schicht eines neuronalen Faltungsnetzwerks angegebenen Werte als Konfidenzwerte zu interpretieren, müssen wir darauf achten, nicht zu viel in diese zu lesen.
Die oben genannten Quellen begründen, dass die Verwendung der Softmax-Ausgabe als Unsicherheitsmaß schlecht ist, weil:
Unmerkliche Störungen eines realen Bildes können die Softmax-Ausgabe eines tiefen Netzwerks in beliebige Werte ändern
Dies bedeutet, dass die Softmax-Ausgabe nicht robust gegenüber "nicht wahrnehmbaren Störungen" ist und daher die Ausgabe nicht als Wahrscheinlichkeit verwendbar ist.
Ein anderes Papier greift die Idee "softmax output = confidence" auf und argumentiert, dass mit dieser Intuition Netzwerke leicht getäuscht werden können, wodurch "Outputs mit hohem Vertrauen für nicht erkennbare Bilder" erzeugt werden.
(...) Die Region (in der Eingabedomäne), die einer bestimmten Klasse entspricht, kann viel größer sein als der Raum in dieser Region, der von Trainingsbeispielen aus dieser Klasse belegt wird. Dies hat zur Folge, dass ein Bild innerhalb des Bereichs liegen kann, der einer Klasse zugeordnet ist, und daher mit einem großen Peak in der Softmax-Ausgabe klassifiziert werden kann, während es dennoch weit von Bildern entfernt ist, die in dieser Klasse im Trainingssatz natürlich vorkommen.
Dies bedeutet, dass Daten, die weit entfernt von Trainingsdaten sind, niemals ein hohes Vertrauen erhalten sollten, da das Modell "nicht sicher sein kann" (wie es es noch nie gesehen hat).
Aber: Hinterfragt dies nicht generell nur die Verallgemeinerungseigenschaften von NNs insgesamt? Das heißt, dass sich die NNs mit Softmax-Verlust nicht gut auf (1) "nicht wahrnehmbare Störungen" oder (2) Eingabedatenmuster verallgemeinern lassen, die weit von den Trainingsdaten entfernt sind, z. B. nicht erkennbare Bilder.
Nach dieser Überlegung verstehe ich immer noch nicht, warum es in der Praxis mit Daten, die nicht abstrakt und künstlich verändert sind, im Vergleich zu den Trainingsdaten (dh den meisten "echten" Anwendungen) schlecht ist, die Softmax-Ausgabe als "Pseudowahrscheinlichkeit" zu interpretieren Idee. Schließlich scheinen sie gut zu repräsentieren, worüber sich mein Modell sicher ist, auch wenn es nicht korrekt ist (in diesem Fall muss ich mein Modell reparieren). Und ist Modellunsicherheit nicht immer "nur" eine Annäherung?