Estimativa da incerteza em problemas de inferência de alta dimensão sem amostragem?

9

Estou trabalhando em um problema de inferência de alta dimensão (em torno de 2000 parâmetros do modelo) para o qual somos capazes de executar com precisão a estimativa de MAP encontrando o máximo global do log-posterior usando uma combinação de otimização baseada em gradiente e um algoritmo genético.

Eu gostaria muito de poder fazer algumas estimativas das incertezas nos parâmetros do modelo, além de encontrar a estimativa do MAP.

Podemos calcular com eficiência o gradiente do log-posterior em relação aos parâmetros, portanto, a longo prazo, pretendemos usar o Hamiltonian MCMC para fazer algumas amostragens, mas por enquanto estou interessado em estimativas não baseadas em amostragem.

A única abordagem que conheço é calcular o inverso do hessiano no modo para aproximar o posterior como normal multivariado, mas mesmo isso parece inviável para um sistema tão grande, pois mesmo se calcularmos os elementos 4×106 do Hessian Tenho certeza de que não conseguimos encontrar seu inverso.

Alguém pode sugerir que tipo de abordagens são normalmente usadas em casos como este?

Obrigado!

EDIT - informações adicionais sobre o problema

fundo
Esse é um problema inverso relacionado a um grande experimento de física. Temos uma malha triangular 2D que descreve alguns campos físicos, e nossos parâmetros de modelo são os valores físicos desses campos em cada vértice da malha. A malha possui cerca de 650 vértices, e modelamos 3 campos, e é daí que vêm nossos parâmetros de modelo de 2000.

Nossos dados experimentais são de instrumentos que não medem esses campos diretamente, mas quantidades que são funções não lineares complicadas dos campos. Para cada um dos diferentes instrumentos, temos um modelo avançado que mapeia os parâmetros do modelo para previsões dos dados experimentais, e uma comparação entre a previsão e a medição gera uma probabilidade logarítmica.

Em seguida, somamos as probabilidades de log de todos esses instrumentos diferentes e também adicionamos alguns valores anteriores ao log que aplicam algumas restrições físicas aos campos.

Consequentemente, duvido que esse 'modelo' se enquadre perfeitamente em uma categoria - não temos uma escolha de qual é o modelo, é ditado pela forma como funcionam os instrumentos reais que coletam nossos dados experimentais.

Conjunto de
dados O conjunto de dados é composto por imagens de 500x500 e existe uma imagem para cada câmera, portanto, o total de pontos de dados é 500x500x4 = 106 .

Modelo de erro
Tomamos todos os erros no problema para serem gaussianos no momento. Em algum momento, eu poderia tentar passar para um modelo de erro t de estudante apenas para obter uma flexibilidade extra, mas as coisas ainda parecem funcionar bem apenas com gaussianos.

Exemplo de probabilidade
Este é um experimento de física do plasma, e a grande maioria de nossos dados vem de câmeras apontadas para o plasma com filtros específicos na frente das lentes para observar apenas partes específicas do espectro da luz.

Para reproduzir os dados, existem duas etapas; primeiro temos que modelar a luz que vem do plasma na malha, depois temos que modelar essa luz de volta à imagem da câmera.

Infelizmente, a modelagem da luz proveniente do plasma depende do que são efetivamente os coeficientes de taxa, que dizem quanta luz é emitida por diferentes processos, dados os campos. Essas taxas são previstas por alguns modelos numéricos caros; portanto, precisamos armazenar sua saída em grades e, em seguida, interpolar para procurar valores. Os dados da função de taxa são computados apenas uma vez - nós os armazenamos e depois construímos um spline quando o código é iniciado e, em seguida, esse spline é usado para todas as avaliações de função.

Suponhamos que R1 1 e R2 são as funções da taxa (que avaliam-se por interpolação), então a emissão no Eu 'th vértice da malha EEu é dada por

EEu=R1 1(xEu,yEu)+zEuR2(xEu,yEu)
em que (x,y,z)são os três campos que modelamos na malha. É fácil obter o vetor de emissões para uma imagem de câmera, é apenas a multiplicação com uma matriz G que codifica em quais partes da malha cada pixel da câmera olha.

Como os erros são gaussianos, a probabilidade de log para essa câmera específica é

eu=-1 12(GE-d)Σ-1 1(GE-d)

onde d são os dados da câmera. O log-verossimilhança total é uma soma de 4 das expressões acima, mas para câmeras diferentes, todos com diferentes versões das funções de taxa de R1 1,R2 , porque eles estão olhando para diferentes partes do espectro de luz.

Exemplo anterior
Temos vários antecedentes que efetivamente apenas estabelecem limites superiores e inferiores em várias quantidades, mas eles tendem a não agir muito fortemente sobre o problema. Temos uma prévia que age fortemente, que aplica efetivamente a suavização do tipo Laplaciano aos campos. Ele também assume uma forma gaussiana:

log-prior=-1 12xSx-1 12ySy-1 12zSz

CBowman
fonte
11
Qual modelo você está usando? Regressão linear? GP? Um modelo hierárquico de contagem? Calibração bayesiana de um modelo de computador? Por favor, adicione mais detalhes sobre o problema que está resolvendo e escreverei uma resposta com os prós e contras do VI.
DeltaIV 27/02/19
11
@ DeltaIV Atualizei a pergunta com mais algumas informações - pode ser que eu não tenha explicado exatamente o que você estava procurando. Se assim for, avise-me e eu farei outra edição, obrigado!
CBowman 28/02/19
11
@DeltaIV Obrigado novamente! Mais informações adicionadas, deixe-me saber se há mais alguma coisa que eu possa adicionar.
CBowman
11
@DeltaIV, as imagens de dados são 500x500 e há uma para cada câmera, portanto o total de pontos de dados é 500x500x4 = . Os dados da função de taxa são sempre computados apenas uma vez - nós os armazenamos e depois criamos um spline quando o código é iniciado e, em seguida, esse spline é usado para todas as avaliações de função. 106
CBowman
11
Eu não tenho uma referência, mas há muitas aproximações de classificação baixa para calcular a matriz inversa. por exemplo, encontre os maiores valores próprios de , assuma que os restantes 2000 - k são iguais e use uma aproximação aproximada para os vetores próprios correspondentes ao valor próprio baixo. Tenho certeza de que também existem decomposições aproximadas / iterativas de Cholesky que convergem para o valor exato. apenas terminar as iterações depois que você esperou para o que o tempo máximo ék2000-k
probabilityislogic

Respostas:

4

Primeiro de tudo, acho que seu modelo estatístico está errado. Eu mudo sua notação para mais uma familiar aos estatísticos, deixando assim

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

ser seu vetor de observações (dados) e

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

seus vetores de parâmetros, da dimensão total d=3p2000 . Então, se eu entendi direito, você assume um modelo

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

onde G é a matriz de interpolação de estrias N×d .

Isto está claramente errado. Não há como os erros em pontos diferentes da imagem da mesma câmera e no mesmo ponto nas imagens de câmeras diferentes serem independentes. Você deve procurar estatísticas e modelos espaciais, como mínimos quadrados generalizados, estimativa de semivariograma, krigagem, processos gaussianos etc.


Dito isto, como sua pergunta não é se o modelo é uma boa aproximação do processo de geração de dados real, mas como estimar esse modelo, mostrarei algumas opções para fazer isso.

HMC

2000 parâmetros não é um modelo muito grande, a menos que você esteja treinando isso em um laptop. O conjunto de dados é maior ( 106 pontos de dados), mas ainda assim, se você tiver acesso a instâncias ou máquinas na nuvem com GPUs, estruturas como Pyro ou Tensorflow Probability farão pouco trabalho para solucionar esse problema. Assim, você pode simplesmente usar o Hamiltoniano Monte Carlo, alimentado por GPU.

Prós : inferência "exata", no limite de um número infinito de amostras da cadeia.

Contras : não há limite estrito no erro de estimativa, existem várias métricas de diagnóstico de convergência, mas nenhuma é ideal.

Aproximação de amostra grande

Com um abuso de notação, vamos denotar por θ o vetor obtido concatenando seus três vetores de parâmetros. Então, usando o teorema do limite central bayesiano (Bernstein-von Mises), você pode aproximar p(θ|y) com N(θ0^n,In1(θ0)) , onde θ0 0 é o "verdadeiro" valor do parâmetro, θ0 0^n é a estimativa MLE de θ0 0 e Eun-1 1(θ0 0)é a matriz de informações de Fisher avaliada emθ0 0. Obviamente,θ0 0é desconhecido, usaremosEun-1 1(θ0 0^n). A validade das Bernstein-von Mises teorema depende de algumas hipóteses que você pode encontrar, ee g,.Aqui: no seu caso, assumindo queR1 1,R2são suaves e diferenciável, o teorema é válido, porque o apoio de um prior gaussiano é todo o espaço do parâmetro. Ou melhor seria seja válido, se seus dados foram realmente como você supõe, mas não acredito que sejam, como expliquei no começo.

Prós : especialmente úteis na p<<N caso. Garantido para convergir para a resposta correta, no cenário iid, quando a probabilidade é suave e diferenciável e o anterior é diferente de zero em um bairro de θ0 0 .

Contras : O maior golpe, como você observou, é a necessidade de inverter a matriz de informações de Fisher. Além disso, eu não saberia como julgar empiricamente a precisão da aproximação, além de usar um amostrador MCMC para extrair amostras de p(θ|y) . Obviamente, isso derrotaria a utilidade do uso do B-vM em primeiro lugar.

Inferência variacional

p(θ|y)d-pqϕ(θ)qQϕϕϕqp

ϕ=umargmEunϕΦDKeu(qϕ(θ)||p(θ|y))

qϕ(θ)

  • ϕ
  • p(θ|y)ϕq

qϕ(θ)d

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

qϕj(θj)

registroqj(θj)=EEuj[registrop(y,θ)]+const.

p(y,θ)q1 1(θ1 1),,qj-1 1(θj-1 1),qj+1 1(θj+1 1),,qd(θd)qEu(θEu)(d-1 1)-

qqEuqNOs pontos de dados. Para amortizar o custo da inferência, uma rede neural é usada para mapear o espaço de entrada para o espaço dos parâmetros variacionais. Consulte o documento para obter uma descrição detalhada do algoritmo: as implementações do VAE estão novamente disponíveis em todas as principais estruturas de Deep Learning.

DeltaIV
fonte
s2
@DeltaIV O modelo estatístico geralmente é bastante bom, na verdade, os erros entre as diferentes câmeras são muito independentes, e pixels diferentes na mesma câmera também serão basicamente independentes, a menos que sejam literalmente adjacentes. Poderíamos codificar alguma correlação espacial em pixels adjacentes usando uma probabilidade do processo gaussiano, mas isso exigiria inverter diretamente a matriz de covariância ou resolver um sistema linear esparso toda vez que desejássemos avaliar a probabilidade, o que é muito mais caro (embora não fora de questão).
CBowman
2

convém verificar alguns dos softwares "bayesX" e, possivelmente, também o software "inla". é provável que ambos tenham algumas idéias que você pode tentar. Google it

ambos confiam muito na exploração da esparsidade na parametrização da matriz de precisão (isto é, independência condicional, modelo do tipo markov) - e possuem algoritmos de inversão projetados para isso. a maioria dos exemplos é baseada em modelos guassianos de nível múltiplo ou auto-regressivo. deve ser bastante semelhante ao exemplo que você postou

probabilityislogic
fonte