Inferência Aproximada (MCMC, Gibbs Sampling)

professor

O que é inferência aproximada (MCMC e Gibbs)?

Inferência aproximada por MCMC é uma técnica para amostrar de distribuições complexas sem fórmula fechada. MCMC significa Markov Chain Monte Carlo, que gera uma cadeia de amostras dependentes. A cadeia é construída para convergir para a distribuição alvo (posteriori). Gibbs sampling é um caso especial do MCMC onde cada variável é amostrada condicionalmente. A cada passo, atualiza-se uma variável por vez, usando as demais fixas. Isso é feito quando a distribuição condicional completa é conhecida. Diferentemente da inferência exata, MCMC é escalável para redes com muitas variáveis. Ele não sofre com explosão combinatória, mas produz amostras correlacionadas. Portanto, ele é amplamente usado em problemas de alta dimensão.

Características fundamentais do MCMC

O MCMC possui três características principais que o definem. Primeiro, ele é assintoticamente exato: converge para a verdadeira posteriori com muitas amostras. Segundo, as amostras iniciais (burn-in) são descartadas para eliminar o efeito do início. Terceiro, a autocorrelação entre amostras reduz a eficiência, exigindo thinning. A convergência é monitorada por diagnósticos como o fator de escala de Gelman-Rubin. O MCMC não requer conhecimento da constante de normalização da posteriori. Isso é uma grande vantagem sobre métodos analíticos.

Vantagens e aplicações típicas

A principal vantagem é a capacidade de lidar com modelos hierárquicos e não-lineares. Ele é usado em aprendizado de máquina, econometria e genética populacional. Também é aplicado em análise de imagens e processamento de sinais. Contudo, a convergência pode ser lenta e difícil de diagnosticar.

O algoritmo de Metropolis-Hastings é o MCMC mais geral. Ele propõe um novo estado a partir de uma distribuição de proposta. Aceita-se o novo estado com probabilidade dada pela razão de verossimilhanças. Gibbs sampling é mais eficiente quando as condicionais são fáceis de amostrar. Por exemplo, em modelos com prioris conjugados, as condicionais são distribuições conhecidas. A cadeia de Gibbs amostra cada variável sequencialmente, mantendo as outras fixas. Após um número suficiente de iterações, as amostras representam a posteriori. A média das amostras estima a esperança a posteriori. Intervalos de credibilidade são obtidos dos quantis empíricos das amostras. O MCMC pode ser implementado em bibliotecas como PyMC3 e Stan. Essas ferramentas automatizam a escolha do amostrador e diagnósticos. O usuário só precisa definir o modelo e os dados. A inferência aproximada é a espinha dorsal da estatística bayesiana moderna. Assim, o MCMC é uma ferramenta indispensável para problemas reais.

Um exemplo clássico é estimar a média e variância de uma distribuição normal com dados observados. A posteriori conjunta não tem forma simples, mas as condicionais são normais e gamma inversa. Gibbs sampling amostra média dado variância, e variância dado média, alternadamente. Após algumas milhares de iterações, as amostras convergem para a posteriori verdadeira.


Enunciado do exemplo clássico

Implemente Gibbs sampling para estimar os parâmetros (μ, σ²) de uma normal com dados sintéticos. Gerar 50 dados de N(μ=5, σ²=4). Use prioris: μ ~ N(0, 1000) e σ² ~ Inverse-Gamma(3, 2). As condicionais completas são: μ | dados, σ² ~ N( média ponderada, variância ) e σ² | dados, μ ~ Inverse-Gamma( α + n/2, β + 0.5*Σ(xᵢ-μ)² ). Execute 5000 iterações, descarte os primeiros 1000 (burn-in). Plote as cadeias e os histogramas das amostras para μ e σ².

Este código implementa Gibbs sampling com prioris conjugados. As cadeias mostram a convergência rápida para os valores reais. Os histogramas exibem as distribuições posteriores aproximadas. Os intervalos de credibilidade contêm os valores verdadeiros. Para iniciantes, este exemplo demonstra o poder do MCMC prático. A inferência aproximada é, portanto, essencial para modelos complexos.

Inferência Exata (Eliminação de Variáveis)

professora

O que é inferência exata por eliminação de variáveis?

Inferência exata por eliminação de variáveis é um algoritmo para calcular probabilidades marginais em redes bayesianas. Ele elimina variáveis não observadas (e não consultadas) uma por uma, somando-as. O processo transforma a distribuição conjunta em uma expressão com somatórios aninhados. Cada eliminação gera um novo fator (função) que captura a influência da variável removida. Esses fatores são combinados com os fatores restantes antes de cada eliminação. A ordem de eliminação afeta drasticamente a complexidade computacional. Uma ordem ruim pode criar fatores com muitas variáveis (explosão exponencial). Porém, com uma ordem ótima, o algoritmo é polinomial para redes de árvore. A eliminação de variáveis é a base de algoritmos mais avançados, como árvores de junção.

Características fundamentais

A eliminação de variáveis possui três características principais que a definem. Primeiro, ela é exata: não há aproximações, apenas manipulações algébricas. Segundo, ela usa a propriedade de fatoração da distribuição conjunta. Terceiro, a complexidade é exponencial no tamanho do maior fator gerado (treewidth). O algoritmo é completo para redes com treewidth pequeno. Além disso, ele pode ser usado para calcular probabilidades condicionais e evidências. A ordem de eliminação pode ser determinada por heurísticas (ex.: menor grau).

Vantagens e limitações

A principal vantagem é a garantia de resultado exato para redes moderadas. Ela é usada em diagnósticos, sistemas especialistas e validação de modelos. Também é útil para comparar com métodos aproximados (MCMC). Contudo, para redes com treewidth alto (ex.: redes densas), ela é inviável. Nesses casos, usa-se inferência aproximada por amostragem ou variational.

O algoritmo funciona fatorando a conjunta em fatores locais (CPTs). Cada fator é uma tabela sobre um subconjunto de variáveis. Para eliminar uma variável X, multiplicam-se todos os fatores que contêm X. Em seguida, soma-se X dessa tabela, criando um novo fator sem X. Esse novo fator é adicionado ao conjunto de fatores restantes. O processo repete até que apenas a(s) variável(eis) de interesse permaneçam. Finalmente, normaliza-se o fator resultante para obter a distribuição condicional. Se houver evidência, os fatores são condicionados (fixando os valores). A ordem de eliminação pode ser escolhida para minimizar o custo. Heurísticas como “elimine a variável com menor número de fatores” são comuns. A eliminação de variáveis é equivalente a reordenar os somatórios na conjunta. Ela é ensinada como primeiro passo para entender inferência em grafos. Para redes pequenas, é implementada facilmente com dicionários. Assim, a eliminação de variáveis é um algoritmo fundamental e didático.

Um exemplo clássico é uma rede com três variáveis: A → B → C. Queremos P(C | A) sem evidências. Eliminamos B somando sobre seus valores. A conjunta é P(A)P(B|A)P(C|B). Somando B, obtemos P(A)P(C|A). Isso é feito em um passo, com fator resultante envolvendo A e C.


Enunciado do exemplo clássico

Implemente a eliminação de variáveis para a rede: Variáveis: A, B, C, D (todas binárias). Relações: A → B, A → C, B → D, C → D. CPTs fornecidas manualmente (valores arbitrários). Calcule P(D | A=1) e P(C | D=0, B=1) usando eliminação. Plote a estrutura da rede e os fatores gerados durante a eliminação.

Este código implementa eliminação de variáveis com fatores e evidências. A estrutura da rede é exibida graficamente para referência. Os resultados mostram as probabilidades condicionais calculadas exatamente. A eliminação de B e C para a primeira consulta reduz a complexidade. Para iniciantes, este exemplo ilustra o mecanismo interno da inferência exata. A eliminação de variáveis é, portanto, um algoritmo fundamental e transparente.