Supposons que je veuille former un réseau neuronal profond pour effectuer une classification ou une régression, mais je veux savoir dans quelle mesure la prédiction sera sûre. Comment pourrais-je y parvenir?
Mon idée est de calculer l'entropie croisée pour chaque donnée d'entraînement, sur la base de ses performances de prédiction dans les mètres neuronaux ci-dessus. Ensuite, je formerais un deuxième réseau neuronal pour la régression, qui prendrait chaque donnée en entrée, et son entropie croisée en sortie (un nœud de sortie). Vous utiliseriez alors les deux réseaux dans la pratique - l'un pour la prédiction de l'étiquette / valeur, et l'autre pour la prédiction de la confiance du premier réseau. (.... Mais aurais-je alors besoin d'un troisième réseau pour prédire la confiance du deuxième réseau, et ainsi de suite ...?!)
Est-ce une idée valable? De plus, est-ce une idée standard couramment utilisée? Sinon, que suggéreriez-vous?
la source
Réponses:
Peut-être que je comprends mal la question, mais pour la classification, il me semble que la manière standard est d'avoir un neurone de sortie pour chacune des
N
classes.Ensuite, le
N
vecteur des[0, 1]
valeurs de sortie représente la probabilité que l'entrée appartienne à chaque classe et peut donc être interprétée comme la «confiance» que vous souhaitez obtenir.la source
Pour les personnes intéressées par l'estimation de la confiance dans les prédictions NN, vous souhaiterez peut-être jeter un œil à Dropout as a Bayesian Approximation: Representing Model Uncertainty in Deep Learning (Gal et al., 2016) . En bref, il montre comment la variance des prédictions d'un réseau avec décrochage sur une population d'exécutions dans lesquelles le décrochage est effectué peut être utilisée pour estimer la confiance des prévisions. Cette approche peut être utilisée pour les réseaux conçus pour la classification ou pour la régression.
la source