Je travaille avec les réseaux neuronaux convolutionnels (CNN) depuis un certain temps maintenant, principalement sur les données d'image pour la segmentation sémantique / segmentation d'instance. J'ai souvent visualisé le softmax de la sortie réseau comme une "carte thermique" pour voir à quel point les activations par pixel sont élevées pour une certaine classe. J'ai interprété les activations faibles comme "incertaines" / "peu confiantes" et les activations élevées comme des prédictions "certaines" / "confiantes". Fondamentalement, cela signifie interpréter la sortie softmax (valeurs comprises dans ) comme une mesure de probabilité ou (d'incertitude) du modèle.
( Par exemple, j'ai interprété un objet / une zone avec une faible activation softmax moyenne sur ses pixels comme étant difficile à détecter pour le CNN, d'où le CNN étant "incertain" quant à la prédiction de ce type d'objet. )
À mon avis, cela a souvent fonctionné, et l'ajout d'échantillons supplémentaires de zones «incertaines» aux résultats de la formation a amélioré les résultats dans ces domaines. Cependant, j'ai entendu assez souvent maintenant de différents côtés que l'utilisation / l'interprétation de la sortie softmax comme mesure de (non) certitude n'est pas une bonne idée et est généralement déconseillée. Pourquoi?
EDIT: Pour clarifier ce que je demande ici, je développerai mes idées jusqu'à présent en répondant à cette question. Cependant, aucun des arguments suivants ne m'a fait comprendre ** pourquoi c'est généralement une mauvaise idée **, comme l'ont dit à plusieurs reprises des collègues, des superviseurs et est également indiqué, par exemple ici dans la section "1.5"
Dans les modèles de classification, le vecteur de probabilité obtenu à la fin du pipeline (la sortie softmax) est souvent interprété à tort comme la confiance du modèle
ou ici dans la section "Contexte" :
Bien qu'il puisse être tentant d'interpréter les valeurs données par la couche finale softmax d'un réseau de neurones convolutionnels comme des scores de confiance, nous devons faire attention à ne pas trop en lire.
Les sources ci-dessus expliquent que l'utilisation de la sortie softmax comme mesure d'incertitude est mauvaise car:
des perturbations imperceptibles sur une image réelle peuvent changer la sortie softmax d'un réseau profond en valeurs arbitraires
Cela signifie que la sortie softmax n'est pas résistante aux «perturbations imperceptibles» et, par conséquent, sa sortie n'est pas utilisable comme probabilité.
Un autre article reprend l'idée de "sortie softmax = confiance" et soutient qu'avec cette intuition, les réseaux peuvent être facilement trompés, produisant des "sorties à haute confiance pour des images méconnaissables".
(...) la région (dans le domaine d'entrée) correspondant à une classe particulière peut être beaucoup plus grande que l'espace dans cette région occupé par les exemples d'apprentissage de cette classe. Il en résulte qu'une image peut se trouver dans la région affectée à une classe et donc être classée avec un pic élevé dans la sortie softmax, tout en étant loin des images qui se produisent naturellement dans cette classe dans l'ensemble d'apprentissage.
Cela signifie que les données qui sont loin des données d'entraînement ne devraient jamais obtenir une confiance élevée, car le modèle "ne peut" pas en être sûr (car il ne l'a jamais vu).
Cependant: cela ne remet-il généralement pas simplement en cause les propriétés de généralisation des NN dans leur ensemble? C'est-à-dire que les NN avec perte softmax ne se généralisent pas bien à (1) des "perturbations imperceptibles" ou (2) des échantillons de données d'entrée qui sont loin des données d'apprentissage, par exemple des images méconnaissables.
En suivant ce raisonnement, je ne comprends toujours pas, pourquoi en pratique avec des données qui ne sont pas modifiées de manière abstraite et artificielle par rapport aux données d'entraînement (c'est-à-dire la plupart des applications "réelles"), interpréter la sortie softmax comme une "pseudo-probabilité" est une mauvaise idée. Après tout, ils semblent bien représenter ce dont mon modèle est sûr, même s'il n'est pas correct (auquel cas je dois réparer mon modèle). Et l'incertitude du modèle n'est-elle pas toujours "seulement" une approximation?