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 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 = .
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 e são as funções da taxa (que avaliam-se por interpolação), então a emissão no 'th vértice da malha é dada por
Como os erros são gaussianos, a probabilidade de log para essa câmera específica é
onde 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 , 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:
Respostas:
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
ser seu vetor de observações (dados) e
seus vetores de parâmetros, da dimensão totald=3p≈2000 . Então, se eu entendi direito, você assume um modelo
ondeG é 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 0^n, I- 1n( θ0 0) )) , onde θ0 0 é o "verdadeiro" valor do parâmetro, θ0 0^n é a estimativa MLE de θ0 0 e
Eu- 1n( θ0 0) é a matriz de informações de Fisher avaliada emθ0 0 . Obviamente,θ0 0 é desconhecido, usaremosEu- 1n( θ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, R2 sã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 nap < < 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 dep ( θ | y ) . Obviamente, isso derrotaria a utilidade do uso do B-vM em primeiro lugar.
Inferência variacional
fonte
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
fonte