Estimation de l'incertitude dans les problèmes d'inférence à haute dimension sans échantillonnage?


9

Je travaille sur un problème d'inférence de grande dimension (environ 2000 paramètres de modèle) pour lequel nous sommes capables d'effectuer de manière robuste une estimation MAP en trouvant le maximum global du log-postérieur en utilisant une combinaison d'optimisation basée sur un gradient et un algorithme génétique.

J'aimerais beaucoup pouvoir faire une estimation des incertitudes sur les paramètres du modèle en plus de trouver l'estimation MAP.

Nous sommes en mesure de calculer efficacement le gradient du log-postérieur par rapport aux paramètres, donc à long terme, nous visons à utiliser le Hamiltonian MCMC pour faire un échantillonnage, mais pour l'instant je suis intéressé par les estimations non basées sur l'échantillonnage.

La seule approche que je connaisse est de calculer l'inverse de la Hesse au mode d'approximation du postérieur comme normal multivarié, mais même cela semble irréalisable pour un système aussi grand, car même si nous calculons le éléments de la Hesse Je suis sûr que nous n'avons pas pu trouver son inverse.4×106

Quelqu'un peut-il suggérer le type d'approches généralement utilisées dans des cas comme celui-ci?

Merci!

EDIT - informations supplémentaires sur le problème

Contexte
Il s'agit d'un problème inverse lié à une grande expérience de physique. Nous avons un maillage triangulaire 2D qui décrit certains champs physiques, et nos paramètres de modèle sont les valeurs physiques de ces champs à chaque sommet du maillage. Le maillage a environ 650 sommets, et nous modélisons 3 champs, c'est donc de là que viennent nos paramètres de modèle 2000.

Nos données expérimentales proviennent d'instruments qui ne mesurent pas directement ces champs, mais de quantités qui sont des fonctions non linéaires complexes des champs. Pour chacun des différents instruments, nous avons un modèle direct qui mappe les paramètres du modèle aux prédictions des données expérimentales, et une comparaison entre la prédiction et la mesure donne une log-vraisemblance.

Nous résumons ensuite les log-vraisemblances de tous ces différents instruments, et ajoutons également des valeurs log-prior qui appliquent des contraintes physiques aux champs.

Par conséquent, je doute que ce «modèle» tombe parfaitement dans une catégorie - nous n'avons pas le choix de ce qu'est le modèle, il est dicté par le fonctionnement des instruments réels qui collectent nos données expérimentales.

Ensemble de
données L' ensemble de données est composé d'images 500x500, et il y a une image pour chaque caméra, donc le nombre total de points de données est 500x500x4 = .106

Modèle d'erreur
Nous considérons que toutes les erreurs du problème sont gaussiennes pour le moment. À un moment donné, je pourrais essayer de passer à un modèle d'erreur étudiant-t juste pour une flexibilité supplémentaire, mais les choses semblent toujours bien fonctionner avec les seuls gaussiens.

Exemple de vraisemblance
Il s'agit d'une expérience de physique des plasmas, et la grande majorité de nos données proviennent de caméras pointées sur le plasma avec des filtres particuliers devant les lentilles pour ne regarder que des parties spécifiques du spectre lumineux.

Pour reproduire les données, il y a deux étapes; nous devons d'abord modéliser la lumière qui provient du plasma sur le maillage, puis nous devons modéliser cette lumière sur une image de la caméra.

La modélisation de la lumière provenant du plasma dépend malheureusement de ce que sont effectivement les coefficients de vitesse, qui indiquent la quantité de lumière émise par différents processus compte tenu des champs. Ces taux sont prédits par certains modèles numériques coûteux, nous devons donc stocker leur sortie sur des grilles, puis interpoler pour rechercher des valeurs. Les données de la fonction de fréquence ne sont calculées qu'une seule fois - nous les stockons puis en construisons une spline lorsque le code démarre, puis cette spline est utilisée pour toutes les évaluations de fonction.

Supposons que et sont les fonctions de vitesse (que nous évaluons par interpolation), alors l'émission au ième sommet du maillage est donnée par où sont les 3 champs que nous modélisons sur le maillage. Obtenir le vecteur des émissions sur une image de caméra est facile, il suffit de multiplier avec une matrice qui code les parties du maillage que chaque pixel de la caméra regarde.R1R2iEi

Ei=R1(xi,yi)+ziR2(xi,yi)
(x,y,z)G

Comme les erreurs sont gaussiennes, la probabilité logarithmique pour cette caméra particulière est alors

L=12(GEd)Σ1(GEd)

où correspond aux données de la caméra. La probabilité logarithmique totale est une somme de 4 des expressions ci-dessus, mais pour différentes caméras, qui ont toutes des versions différentes des fonctions de débit car elles regardent différentes parties du spectre lumineux.dR1,R2

Exemple précédent
Nous avons différents priors qui fixent simplement certaines limites supérieures et inférieures sur diverses quantités, mais ceux-ci ont tendance à ne pas agir trop fortement sur le problème. Nous en avons un avant qui agit fortement, qui applique efficacement le lissage de type laplacien aux champs. Il prend également une forme gaussienne:

log-prior=12xSx12ySy12zSz


1
À quel modèle correspondez-vous? Régression linéaire? GP? Un modèle de comptage hiérarchique? Étalonnage bayésien d'un modèle informatique? Veuillez ajouter plus de détails sur le problème que vous résolvez, et j'écrirai une réponse avec les avantages et les inconvénients de VI.
DeltaIV

1
@DeltaIV J'ai mis à jour la question avec plus d'informations - il se peut que je n'aie pas précisé exactement ce que vous cherchiez. Si c'est le cas, faites-le moi savoir et je ferai une autre modification, merci!
CBowman

1
@DeltaIV Merci encore! Plus d'informations ajoutées, faites-moi savoir s'il y a autre chose que je peux ajouter.
CBowman

1
@DeltaIV les images de données sont 500x500, et il y en a une pour chaque caméra, donc le total des points de données est 500x500x4 = . Les données de la fonction de taux ne sont calculées qu'une seule fois - nous les stockons puis en construisons une spline lorsque le code démarre, puis cette spline est utilisée pour toutes les évaluations de fonction. 106
CBowman

1
Je n'ai pas de référence, mais il existe de nombreuses approximations de bas rang pour calculer l'inverse de la matrice. Par exemple, trouver les plus grandes valeurs propres , supposer que les 2 restants sont égaux et utiliser une approximation grossière pour les vecteurs propres correspondant à des valeurs propres faibles. Je suis sûr qu'il existe également des décompositions Cholesky approximatives / itératives qui convergent vers la valeur exacte. il suffit de mettre fin aux itérations après avoir attendu le temps maximum2000 - kk2000k
probabilité

Réponses:


4

Tout d'abord, je pense que votre modèle statistique est erroné. Je change votre notation pour une autre familière aux statisticiens, laissez donc

d=y=(y1,,yN), N=106

être votre vecteur d'observations (données), et

x=θ=(θ1,,θp)y=ϕ=(ϕ1,,ϕp)z=ρ=(ρ1,,ρp), p650

vos vecteurs de paramètres, de dimension totale . Ensuite, si j'ai bien compris, vous supposez un modèled=3p2000

y=Gr1(θ,ϕ)+ρGr2(θ,ϕ))+ϵ, ϵN(0,IN)

où est la matrice d'interpolation spline.GN×d

C'est clairement faux. Il n'y a aucun moyen que les erreurs à différents points de l'image provenant du même appareil photo et au même point dans les images provenant de différents appareils photo soient indépendantes. Vous devez examiner les statistiques spatiales et les modèles tels que les moindres carrés généralisés, l'estimation de semi-variogramme, le krigeage, les processus gaussiens, etc.


Cela dit, puisque votre question n'est pas de savoir si le modèle est une bonne approximation du processus de génération de données réel, mais comment estimer un tel modèle, je vais vous montrer quelques options pour le faire.

HMC

2000 paramètres n'est pas un très grand modèle, sauf si vous vous entraînez sur un ordinateur portable. L'ensemble de données est plus grand ( points de données), mais, si vous avez accès à des instances cloud ou à des machines avec GPU, des frameworks tels que Pyro ou Tensorflow Probability feront rapidement disparaître un tel problème. Ainsi, vous pouvez simplement utiliser le Hamiltonian Monte-Carlo alimenté par GPU.106

Avantages : inférence "exacte", dans la limite d'un nombre infini d'échantillons de la chaîne.

Inconvénients : aucune limite stricte sur l'erreur d'estimation, plusieurs métriques de diagnostic de convergence existent, mais aucune n'est idéale.

Grand échantillon approximatif

Avec un abus de notation, notons le vecteur obtenu en concaténant vos trois vecteurs de paramètres. Ensuite, en utilisant le théorème de la limite centrale bayésienne (Bernstein-von Mises), vous pouvez approximer avec , où est la "vraie" valeur du paramètre, est l'estimation MLE de et est la matrice d'informations de Fisher évaluée à . Bien sûr, étant inconnu, nous utiliseronsθp(θ|y)N(θ0^n,In1(θ0))θ0θ0^nθ0In1(θ0)θ0θ0In1(θ0^n)au lieu. La validité du théorème de Bernstein-von Mises dépend de quelques hypothèses que vous pouvez trouver, par exemple, ici : dans votre cas, en supposant que sont lisses et différenciables, le théorème est valide, car le support d'un gaussien prior est tout l'espace des paramètres. Ou, mieux, ce serait valable, si vos données étaient réellement iid comme vous le supposez, mais je ne pense pas qu'elles le soient, comme je l'ai expliqué au début.R1,R2

Plus : particulièrement utile dans le cas. Garanti de converger vers la bonne réponse, dans le paramètre iid, lorsque la probabilité est lisse et différenciable et que l'a priori est non nul dans un voisinage de .p<<Nθ0

Inconvénients : le plus gros problème, comme vous l'avez noté, est la nécessité d'inverser la matrice d'informations de Fisher. De plus, je ne saurais pas juger la précision de l'approximation empiriquement, à moins d'utiliser un échantillonneur MCMC pour tirer des échantillons de . Bien sûr, cela irait à l'encontre de l'utilité d'utiliser B-vM en premier lieu.p(θ|y)

Inférence variationnelle

Dans ce cas, plutôt que de trouver le exact (ce qui nécessiterait le calcul d'une intégrale dimensionnelle), nous choisissons d'approximer avec , où appartient à la famille paramétrique indexée par le vecteur de paramètres . Nous recherchons st une certaine mesure d'écart entre et est minimisée. En choisissant cette mesure comme étant la divergence KL, nous obtenons la méthode de l'inférence variationnelle:p(θ|y)dpqϕ(θ)qQϕϕϕqp

ϕ=argminϕΦDKL(qϕ(θ)||p(θ|y))

Exigences sur :qϕ(θ)

  • il devrait être différenciable par rapport à , afin que nous puissions appliquer des méthodes d'optimisation à grande échelle, telles que la descente de gradient stochastique, pour résoudre le problème de minimisation.ϕ
  • il doit être suffisamment flexible pour qu'il puisse approximer avec précision pour une certaine valeur de , mais aussi assez simple pour qu'il soit facile d'échantillonner. En effet, l'estimation de la divergence KL (notre objectif d'optimisation) nécessite d'estimer une espérance wrt .p(θ|y)ϕq

Vous pouvez choisir pour être entièrement factorisé, c'est-à-dire le produit de distributions de probabilité univariées:qϕ(θ)d

qϕ(θ)=i=1dqϕi(θi)

c'est la méthode dite bayésienne variationnelle à champ moyen. On peut prouver (voir par exemple le chapitre 10 de ce livre ) que la solution optimale pour chacun des facteurs estqϕj(θj)

logqj(θj)=Eij[logp(y,θ)]+const.

où est la distribution conjointe des paramètres et des données (dans votre cas, c'est le produit de votre vraisemblance gaussienne et des a priori gaussiens sur les paramètres) et l'attente est par rapport à l'autre variationnelle distributions univariées . Bien sûr, puisque la solution pour l'un des facteurs dépend de tous les autres facteurs, nous devons appliquer une procédure itérative, initialisant toutes les distributions à une estimation initiale, puis les mettant à jour de manière itérative. à la fois avec l'équation ci-dessus. Notez qu'au lieu de calculer l'attente ci-dessus comme unp(y,θ)q1(θ1),,qj1(θj1),qj+1(θj+1),,qd(θd)qi(θi)(d1)intégrale dimensionnelle, ce qui serait prohibitif dans votre cas où les a priori et la vraisemblance ne sont pas conjugués, vous pouvez utiliser l'estimation de Monte Carlo pour approximer l'espérance.

L'algorithme Variational Bayes à champ moyen n'est pas le seul algorithme VI possible que vous pourriez utiliser: le Variational Autoencoder présenté dans Kingma & Welling, 2014, "Auto-encoding Variational Bayes" est une alternative intéressante, où, plutôt que de supposer une forme entièrement factorisée pour , puis dérivant une expression de forme fermée pour , est supposé être gaussien multivarié, mais avec des paramètres éventuellement différents à chacun des points de données. Pour amortir le coût de l'inférence, un réseau neuronal est utilisé pour mapper l'espace d'entrée à l'espace des paramètres variationnels. Voir l'article pour une description détaillée de l'algorithme: les implémentations VAE sont à nouveau disponibles dans tous les principaux frameworks Deep Learning.qqiqN


ce modèle d'indépendance VB peut être une approche terrible pour les mesures de précision . Il s'agit généralement d'une approximation de type plug-in sans ajustement. des exemples simples n'utilisent pas d'ajustements de «degrés de liberté» dans vous et utilisent des distributions normales au lieu de t. particulièrement un problème pour les hyper paramètress2
probabilités

@DeltaIV Le modèle statistique est généralement assez bon en fait, les erreurs entre les différentes caméras sont très indépendantes, et différents pixels dans la même caméra vont également être fondamentalement indépendants à moins qu'ils ne soient littéralement adjacents. Nous pourrions coder une certaine corrélation spatiale dans les pixels adjacents en utilisant une probabilité de processus gaussien, mais cela nous obligerait à inverser directement la matrice de covariance ou à résoudre un système linéaire clairsemé chaque fois que nous voulons évaluer la probabilité, ce qui est beaucoup plus cher (mais pas hors de question).
CBowman

2

vous voudrez peut-être consulter certains des logiciels "bayesX" et éventuellement aussi le logiciel "inla". les deux ont probablement des idées que vous pouvez essayer. recherche le sur Google

les deux s'appuient très fortement sur l'exploitation de la rareté dans le paramétrage de la matrice de précision (c'est-à-dire l'indépendance conditionnelle, modèle de type markov) - et ont des algorithmes d'inversion conçus pour cela. la plupart des exemples sont basés sur des modèles guassiens multiniveaux ou auto-régressifs. devrait être assez similaire à l'exemple que vous avez publié

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.