Comment déterminer la confiance d'une prédiction de réseau neuronal?


22

Pour illustrer ma question, supposons que j'ai un ensemble de formation où l'entrée a un degré de bruit mais pas la sortie, par exemple;

# Training data
[1.02, 1.95, 2.01, 3.06] : [1.0]
[2.03, 4.11, 5.92, 8.00] : [2.0]
[10.01, 11.02, 11.96, 12.04] : [1.0]
[2.99, 6.06, 9.01, 12.10] : [3.0]

ici, la sortie est le gradient du tableau d'entrée s'il était silencieux (pas le gradient réel).

Après avoir formé le réseau, la sortie devrait ressembler à ceci pour une entrée donnée.

# Expected Output
[1.01, 1.96, 2.00, 3.06] : 95% confidence interval of [0.97, 1.03]
[2.03, 4.11, 3.89, 3.51] : 95% confidence interval of [2.30, 4.12]

Ma question est de savoir comment un réseau neuronal peut être créé de telle sorte qu'il renvoie une valeur prédite et une mesure de confiance, comme une variance ou un intervalle de confiance?


3
Si vous recherchez un intervalle qui contiendra une réalisation future , alors vous recherchez un intervalle de prédiction , pas un intervalle de confiance , qui se rapporte à des paramètres non observables . C'est souvent confus.
S.Kolassa - Rétablir Monica

Réponses:


20

Il semble que vous recherchiez un , c'est dire un intervalle contenant un pourcentage prédéfini de réalisations futures. (Regardez la balise wikis pour la et la pour la différence.)

Votre meilleur pari est susceptible de fonctionner directement avec des architectures NN qui ne génèrent pas de prévisions ponctuelles, mais des distributions prédictives entières . Vous pouvez ensuite extraire directement les intervalles de prédiction souhaités (ou les prédictions ponctuelles moyennes ou médianes) de ces distributions. Moi et d'autres avons soutenu que les distributions prédictives sont beaucoup plus utiles que les prédictions ponctuelles , mais pour être honnête, je n'ai pas encore vu beaucoup de travail sur les distributions prédictives avec des réseaux de neurones, bien que je garde les yeux ouverts. Ce document semble utile. Vous voudrez peut-être effectuer une recherche un peu, peut-être aussi en utilisant d'autres mots clés comme "distributions de prévisions" ou "densités prédictives" et autres.

Cela dit, vous voudrez peut-être examiner l' algorithme NeuroBayes de Michael Feindt , qui utilise une approche bayésienne pour prévoir les densités prédictives.


1
Cela peut être un autre article utile - un réseau neuronal qui apprend les distributions: google.com/…
Pro Q

@Stephan: Le lien est décédé: (
Matthew Drury

@MatthewDrury: quel lien voulez-vous dire? Tous les trois fonctionnent bien pour moi.
S.Kolassa - Rétablir Monica le

Pouvez-vous nous conduire à une démonstration / exemple simple de Ternsorflow avec NN Predictive Distributions?
Martin Thøgersen

@ MartinThøgersen: désolé, non, je n'utilise pas Tensorflow ...
S. Kolassa - Reinstate Monica

5

Je ne suis pas sûr que vous puissiez calculer un intervalle de confiance pour une seule prédiction, mais vous pouvez en effet calculer un intervalle de confiance pour le taux d'erreur de l'ensemble de données (vous pouvez généraliser l'exactitude et toute autre mesure que vous évaluez).

Si est votre taux d'erreur lors du classement de certaines données de taille , un intervalle de confiance de 95% pour votre taux d'erreur est donné par: .S n e ± 1,96 eSn

e±1.96e(1e)n

(voir le livre "Machine Learning" de Tom Mitchell, chapitre 5.)

MODIFIER

Je suppose que je devrais énoncer un cas plus général, qui est: où les choix courants pour sont répertoriés dans le tableau suivant:zN

e±zNe(1e)n,
zN
confidence level    80%    90%    95%    98%    99%
values of zN       1.28   1.64   1.96   2.33   2.58

1
Cela nécessiterait que la distribution asymptotique soit normale
user2879934

4
Pour les échantillons de grande taille (ce qui est assez courant en ML), il est généralement sûr de le supposer. Il n'était pas nécessaire de voter, demandez des éclaircissements, mais bon.
mp85

4

Les intervalles de prédiction (IP) dans les problèmes de régression et de classification non paramétriques, tels que les réseaux de neurones, les SVM, les forêts aléatoires, etc. sont difficiles à construire. J'adorerais entendre d'autres opinions à ce sujet.

Cependant, pour autant que je sache, la prévision conforme (CP) est la seule méthode basée sur des principes pour construire un PI calibré pour la prédiction dans les problèmes de régression non paramétrique et de classification. Pour un didacticiel sur la PC, voir Shfer & Vovk (2008), J. Machine Learning Research 9 , 371-421 [pdf]


3

Je ne connais aucune méthode pour le faire de manière exacte.

μσ(xi,yi)logN(yiμ(xi),σ(xi))μ(xi)yiσ(xi)

yiμ(xi)σ(xi)N(0,1)


1
σ+

Y a-t-il des exemples concrets que quelqu'un a vus d'utiliser un NN pour sortir les paramètres d'une distribution, formés sur la vraisemblance du journal?
Mlle Palmer,

3

Je n'ai entendu parler d'aucune méthode qui donne un intervalle de confiance pour une prédiction de réseau neuronal. Malgré un manque de méthodologie formelle, il semble possible d'en construire une. Je n'ai jamais essayé cela en raison de la puissance de calcul qui serait nécessaire et je ne prétends pas que cela fonctionne avec certitude, mais une méthode qui pourrait fonctionner pour un minuscule réseau neuronal (ou avec une puissance de processeur graphique ultra-rapide, elle pourrait fonctionner pour des réseaux de taille moyenne) ) serait de rééchantillonner l'ensemble d'entraînement et de créer de nombreux réseaux similaires (disons 10 000 fois) avec les mêmes paramètres et paramètres initiaux, et de construire des intervalles de confiance basés sur les prédictions pour chacun de vos réseaux amorcés.

Par exemple, dans les 10 000 réseaux formés comme discuté ci-dessus, on pourrait obtenir 2,0 (après avoir arrondi les prédictions de régression du réseau neuronal) 9 000 de ces périodes, vous prédiriez donc 2,0 avec un IC à 90%. Vous pouvez ensuite créer un tableau de CI pour chaque prédiction effectuée et choisir le mode à signaler comme CI principal.


2
Je serais curieux de savoir pourquoi cette suggestion a été rejetée car elle est essentiellement bootstrap d'une manière légèrement non conventionnelle (la composante d'arrondi du problème permet de vérifier facilement dans quelle mesure le réseau neuronal est confiant quant à la prédiction). Cela ne me dérange pas vraiment de voter contre si celui qui a voté contre pourrait expliquer pourquoi ce n'est pas une solution valable à la question proposée. J'apprends moi-même et j'apprécierais les commentaires!
Tony S

1
Je n'ai pas voté contre, mais d'après ce que je comprends, la méthode proposée produirait des intervalles qui capturent les valeurs prédites du modèle, ce n'est pas la même chose que les intervalles qui capturent les vraies valeurs.
Mlle Palmer

3

En termes de sortie directe des intervalles de prédiction, il existe un article de 2011 intitulé « Examen complet des intervalles de prédiction basés sur les réseaux neuronaux »

Ils comparent quatre approches:

1: Méthode delta 2: Méthode bayésienne 3: Estimation de la variance moyenne 4: Bootstrap

Les mêmes auteurs ont ensuite développé une méthode d'estimation de la limite supérieure inférieure pour la construction d'intervalles de prédiction basés sur un réseau neuronal qui produit directement une limite inférieure et supérieure à partir du NN. Malheureusement, cela ne fonctionne pas avec backprop, mais des travaux récents ont rendu cela possible, des intervalles de prédiction de haute qualité pour l'apprentissage en profondeur .

En alternative à la sortie directe des intervalles de prédiction, les réseaux neuronaux bayésiens (BNN) modélisent l'incertitude dans les paramètres d'un NN, et capturent donc l'incertitude à la sortie. C'est difficile à faire, mais les méthodes populaires incluent l'exécution du décrochage MC au moment de la prédiction ou l' assemblage .


1
Il est en fait assez facile de le faire avec le Bayesian Deep Learning. Voir par exemple edwardlib.org/tutorials/bayesian-neural-network
DeltaIV

2

Il existe en fait des moyens de le faire en utilisant le décrochage. Exécutez l'évaluation avec le décrochage activé (il est généralement désactivé pour l'évaluation mais activé lors de la formation) et exécutez l'évaluation plusieurs fois.

La distribution des résultats de plusieurs analyses différentes peut être utilisée comme intervalles de confiance.

Voir l'article "Le décrochage en tant qu'approximation bayésienne: représenter l'incertitude du modèle dans le Deep Learning " Regardez la présentation sur YouTube Andrew Rowan - Bayesian Deep Learning avec Edward (et une astuce utilisant Dropout)


1

Il n'y a aucun moyen, tous les modèles ML ne concernent pas la compréhension des phénomènes, ce sont des méthodes d'interpolation avec l'espoir "que ça marche". Commencez par de telles questions de confiance, robustes au bruit il n'y a pas de réponses.

Donc, pour dériver quelque chose, veuillez utiliser diverses sciences appliquées et fondamentales:

  • Utilisez le contrôle (et faites des hypothèses sur la dynamique)

  • Utiliser l'optimisation convexe (avec une condition supplémentaire sur la fonction)

  • Utiliser des statistiques mathématiques (avec des hypothèses préliminaires sur les distributions)

  • Utiliser le traitement du signal (avec certaines hypothèses que le signal est limité en bande)

Le scientifique utilise certaines hypothèses préliminaires (appelées axiomes) pour dériver quelque chose.

Il n'y a aucun moyen de donner une confiance sans une hypothèse préliminaire, donc problème dans pas dans le mehtod DL, mais c'est un problème dans n'importe quelle méthode qui essaie d'interpoler sans aucune hypothèse préliminaire - il n'y a aucun moyen de dériver via l'algèbre quelque chose d'intelligent sans hypothèse.

NN et diverses méthodes ML sont pour le prototypage rapide afin de créer "quelque chose" qui semble fonctionner "en quelque sorte" vérifié avec validation croisée.

Encore plus profondément l'ajustement de régression E [Y | X] ou son estimation peut être un problème absolument incorrect à résoudre (peut-être que le pdf au point Y = E [Y | X] a un minimum, pas un maximum), et il y a beaucoup de subtils des choses.

Permettez-moi également de rappeler deux problèmes insolubles dans l'IA / ML, qui peuvent être oubliés pour certaines raisons, derrière des slogans de beauté:

(1) Ce sont des méthodes d'interpolation, pas d'extrapolation - il n'a pas la capacité de faire face à de nouveaux problèmes

(2) personne ne sait comment un modèle se comportera sur des données qui ne sont pas de la même distribution (homme en costume de banane pour la localisation piétonne)


que diriez-vous de modéliser l'erreur à partir de l'ensemble de données d'apprentissage pour "prédire" l'erreur pour l'inférence?
Jacko

Supposons même qu'il s'agisse de l'additif "Predict_for_mean" + "Predict_for_error". Vous pouvez imaginer n'importe quel schéma pour prédire le signal et l'erreur séparément. Mais une fois de plus - si nous «interpolons seulement», nous ne pouvons pas dire quelque chose avec confiance. Nous prédisons la température à la surface. Oui, vous pouvez dire ceci ma prédiction "20" et la prédiction d'erreur est "5". Donc, il dit que je pense que la vraie réponse réside dans [20-5, 20 + 5] mais pour vraiment comprendre ce que cela signifie, nous devons comprendre les phénomènes réels et le modèle mathématique. Et ML ne concerne pas les deux. D'autres domaines font des hypothèses préliminaires.
bruziuz

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.