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

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.

Deixe um comentário