Limite Inferior da Evidência (Evidence Lower Bound, ELBO)

O que é o ELBO?

O Limite Inferior da Evidência (Evidence Lower Bound, ELBO) é uma função objetivo tratável usada em inferência variacional (variational inference) para aproximar a inferência bayesiana do posterior (Bayesian posterior inference) em modelos com variáveis latentes (latent variables). Ele é chamado de “limite inferior” porque fornece um valor que é garantidamente ≤ ao log da verossimilhança marginal (log marginal likelihood) (também chamado de log-evidência (log evidence)):

[ \log p_\theta(x) = \log \int p_\theta(x,z),dz ]

Calcular (\log p_\theta(x)) (ou seu gradiente) muitas vezes é intratável porque a integral sobre as variáveis latentes (z) é difícil. O ELBO substitui isso por um problema de otimização sobre uma família mais simples de distribuições (q_\phi(z \mid x)) que aproxima o posterior verdadeiro (p_\theta(z \mid x)).

O ELBO é central para:

  • Inferência Variacional (como a principal função objetivo a ser otimizada)
  • modelos com variáveis latentes na estatística bayesiana (modelagem de tópicos (topic modeling), modelos de mistura (mixture models), redes neurais bayesianas (Bayesian neural nets))
  • Autoencoders Variacionais (Variational Autoencoders, VAEs), em que o ELBO se torna a perda familiar “reconstrução menos KL”

Configuração: modelos com variáveis latentes e a verossimilhança marginal

Considere um modelo generativo com variáveis latentes (latent-variable generative model):

  • Variável latente: (z)
  • Dados observados: (x)
  • Distribuição conjunta: (p_\theta(x,z) = p_\theta(x \mid z),p(z))

Dado (x), a inferência bayesiana foca no posterior:

[ p_\theta(z \mid x) = \frac{p_\theta(x,z)}{p_\theta(x)} ]

onde a verossimilhança marginal (evidência) é:

[ p_\theta(x) = \int p_\theta(x,z),dz ]

Em muitos modelos úteis, a integral não é solucionável analiticamente, e a inferência exata é inviável.

A inferência variacional introduz uma aproximação tratável (q_\phi(z \mid x)) e a ajusta ao posterior verdadeiro por meio de otimização.

Derivando o ELBO (visão pela desigualdade de Jensen)

Comece a partir do log-evidência:

[ \log p_\theta(x) = \log \int p_\theta(x,z),dz ]

Multiplique e divida dentro da integral por (q_\phi(z \mid x)) (qualquer distribuição que seja não nula onde (p) é não nula):

[ \log p_\theta(x) = \log \int q_\phi(z \mid x),\frac{p_\theta(x,z)}{q_\phi(z \mid x)},dz = \log \mathbb{E}{q\phi(z \mid x)}\left[\frac{p_\theta(x,z)}{q_\phi(z \mid x)}\right] ]

Agora aplique a desigualdade de Jensen (Jensen’s inequality) ((\log \mathbb{E}[Y] \ge \mathbb{E}[\log Y])):

[ \log p_\theta(x) \ge \mathbb{E}{q\phi(z \mid x)}\left[\log p_\theta(x,z) - \log q_\phi(z \mid x)\right] ]

Esse limite inferior é o ELBO:

\[ \mathcal{L}(\theta,\phi; x)

\mathbb{E}_{q_\phi(z \mid x)}\left[\log p_\theta(x,z)\right]

\mathbb{E}{q\phi(z \mid x)}\left[\log q_\phi(z \mid x)\right] ]

Logo:

[ \mathcal{L}(\theta,\phi; x)\ \le\ \log p_\theta(x) ]

A decomposição-chave: termo de reconstrução menos regularizador de KL

Usando (p_\theta(x,z)=p_\theta(x\mid z)p(z)), podemos reescrever o ELBO:

\[ \mathcal{L}(\theta,\phi; x)

\mathbb{E}_{q_\phi(z \mid x)}[\log p_\theta(x \mid z)]

\mathrm{KL}\left(q_\phi(z \mid x)\ |\ p(z)\right) ]

Esta é a forma mais comumente citada. Ela tem duas partes:

  1. Log-verossimilhança esperada (expected log-likelihood) (frequentemente chamada de termo de reconstrução (reconstruction term) em VAEs) [ \mathbb{E}{q\phi(z \mid x)}[\log p_\theta(x \mid z)] ] Isso incentiva amostras latentes (z \sim q_\phi(z \mid x)) a explicar bem os dados sob o modelo.

  2. Regularizador de divergência de KL (KL divergence) [ \mathrm{KL}\left(q_\phi(z \mid x)\ |\ p(z)\right) ] Isso incentiva o posterior aproximado (q_\phi(z \mid x)) a não se afastar demais do prior (p(z)), controlando a complexidade e promovendo generalização.

Esse compromisso entre “ajustar os dados, mas permanecer próximo do prior” é por que o ELBO é uma função objetivo bem fundamentada para aprender modelos generativos com variáveis latentes.

Por que maximizar o ELBO aproxima o posterior verdadeiro

Uma segunda identidade fundamental mostra a relação do ELBO com o pareamento do posterior:

[ \log p_\theta(x) = \mathcal{L}(\theta,\phi; x) + \mathrm{KL}\left(q_\phi(z \mid x)\ |\ p_\theta(z \mid x)\right) ]

Como a divergência de KL é sempre não negativa, o ELBO é de fato um limite inferior. Mais importante:

  • (\log p_\theta(x)) não depende de (\phi)
  • portanto, maximizar (\mathcal{L}(\theta,\phi; x)) com respeito a (\phi) é equivalente a minimizar: [ \mathrm{KL}\left(q_\phi(z \mid x)\ |\ p_\theta(z \mid x)\right) ]

Assim, a otimização do ELBO é uma aproximação prática para “tornar (q_\phi(z \mid x)) o mais próximo possível do posterior verdadeiro”, dentro da família variacional escolhida.

Esta é a ideia central por trás da Inferência Bayesiana realizada aproximadamente via Inferência Variacional.

Intuição: o que o ELBO “quer”?

Pensando em termos de compressão e explicação:

  • O termo de reconstrução recompensa códigos latentes (latent codes) (z) que retêm a informação necessária para prever (x).
  • O termo de KL penaliza usar informação demais em (z) em relação ao prior — desencorajando codificações latentes excessivamente complexas e específicas dos dados.

Em VAEs isso se mapeia quase exatamente para:

  • “O decodificador (decoder) consegue reconstruir a entrada?”
  • “O codificador (encoder) está produzindo uma distribuição latente agradável e suave que combina com o prior?”

ELBO na prática: estimando e otimizando

O ELBO inclui uma esperança sobre (q_\phi(z \mid x)), que tipicamente é aproximada por amostragem de Monte Carlo (Monte Carlo sampling):

[ \mathbb{E}{q\phi(z \mid x)}[f(z)] \approx \frac{1}{L}\sum_{l=1}^L f(z^{(l)}), \quad z^{(l)}\sim q_\phi(z\mid x) ]

Gradientes: truque de reparametrização vs estimadores de função de escore

Para otimizar o ELBO com Descida do Gradiente (Gradient Descent), precisamos de gradientes com respeito a (\theta) e (\phi).

  • Se (z) é contínua e (q_\phi(z\mid x)) é reparametrizável (por exemplo, Gaussiana), usamos o truque de reparametrização (reparameterization trick): [ z = \mu_\phi(x) + \sigma_\phi(x)\odot \epsilon,\quad \epsilon\sim\mathcal{N}(0,I) ] Isso habilita gradientes de baixa variância via Retropropagação (Backpropagation) padrão.

  • Se (z) é discreta, reparametrização é mais difícil. Abordagens comuns incluem:

    • estimadores de função de escore (score-function estimators) (REINFORCE) com redução de variância (variance reduction)
    • relaxações contínuas (continuous relaxations) (por exemplo, Gumbel-Softmax)
    • limites/funções objetivo especializadas dependendo do modelo

Treinamento com mini-lotes

Para o conjunto de dados ({x_i}_{i=1}^N), tipicamente maximizamos a soma dos ELBOs:

[ \sum_{i=1}^N \mathcal{L}(\theta,\phi;x_i) ]

Em aprendizado em larga escala, isso é otimizado com mini-lotes (mini-batches) estocásticos, levando à inferência variacional estocástica (stochastic variational inference).

Conexão com Expectação–Maximização (EM)

O ELBO também oferece uma lente unificadora sobre o algoritmo de Expectação–Maximização (EM).

  • EM pode ser visto como ascensão por coordenadas (coordinate ascent) em um ELBO:
    • E-step: escolher (q(z)) para combinar com o posterior (no EM clássico, o posterior exato dentro da classe do modelo)
    • M-step: maximizar o ELBO com respeito a (\theta)

A inferência variacional generaliza EM ao permitir famílias restritas (q_\phi) (por exemplo, campo médio (mean-field)), trocando exatidão por tratabilidade.

ELBO e VAEs: a função objetivo padrão de VAE

Um Autoencoder Variacional define:

  • Codificador (posterior aproximado): (q_\phi(z \mid x))
  • Decodificador (modelo de verossimilhança): (p_\theta(x \mid z))
  • Prior: (p(z)), frequentemente (\mathcal{N}(0,I))

O VAE treina maximizando:

\[ \mathcal{L}(\theta,\phi;x)

\mathbb{E}_{q_\phi(z \mid x)}[\log p_\theta(x \mid z)]

\mathrm{KL}(q_\phi(z \mid x)|p(z)) ]

Interpretação prática em VAEs

  • O termo de reconstrução se torna uma perda familiar dependendo da verossimilhança:

    • Se (p_\theta(x\mid z)) é Gaussiana com variância fixa, maximizar (\log p_\theta(x\mid z)) corresponde (até constantes) a minimizar o erro quadrático médio (mean squared error).
    • Se (x) é binária e (p_\theta(x\mid z)) é Bernoulli, isso corresponde à entropia cruzada binária (binary cross-entropy).
  • O termo de KL frequentemente tem forma fechada se tanto (q_\phi) quanto (p) forem Gaussianas.

Exemplo mínimo no estilo PyTorch (ELBO de VAE)

# x: batch of data
mu, logvar = encoder(x)                 # parameters of q(z|x)
std = (0.5 * logvar).exp()
eps = torch.randn_like(std)
z = mu + std * eps                      # reparameterization

x_logits = decoder(z)                   # parameters of p(x|z)

# Reconstruction term: -negative log likelihood
recon = torch.nn.functional.binary_cross_entropy_with_logits(
    x_logits, x, reduction="sum"
)

# KL(q(z|x) || p(z)) for diagonal Gaussians and standard normal prior
kl = -0.5 * torch.sum(1 + logvar - mu.pow(2) - logvar.exp())

# We maximize ELBO, so we minimize negative ELBO
loss = recon + kl
loss.backward()
optimizer.step()

Variantes que você verá na prática

  • β-VAE: usa (\beta \cdot \mathrm{KL}) para controlar a capacidade de informação de (z) (frequentemente usado em estudos de disentanglement).
  • Free bits / KL annealing: heurísticas para evitar colapso do posterior (posterior collapse) (quando (q(z\mid x)\approx p(z)) e o modelo ignora (z)).

Um exemplo probabilístico concreto: ELBO para um modelo de mistura Gaussiana

Considere um modelo de mistura Gaussiana (Gaussian mixture model, GMM) com:

  • atribuição latente discreta (z \in {1,\dots,K})
  • verossimilhança (p(x \mid z=k) = \mathcal{N}(x \mid \mu_k, \Sigma_k))
  • prior (p(z=k)=\pi_k)

A inferência exata calcula (p(z\mid x)) usando a regra de Bayes (Bayes’ rule), que é tratável para GMMs padrão, mas a perspectiva do ELBO generaliza para modelos em que esse posterior não é tratável.

Escolha uma distribuição variacional (q(z \mid x)) que seja categórica (categorical) com parâmetros (\gamma_k(x)). Então:

  • Reconstrução / log-verossimilhança esperada: [ \mathbb{E}{q(z\mid x)}[\log p(x\mid z)] = \sum{k=1}^K \gamma_k(x),\log \mathcal{N}(x\mid \mu_k,\Sigma_k) ]
  • Regularizador de KL: [ \mathrm{KL}(q(z\mid x)|p(z))=\sum_{k=1}^K \gamma_k(x)\log\frac{\gamma_k(x)}{\pi_k} ]

Maximizar o ELBO força (\gamma_k(x)) a atribuir probabilidade a componentes que explicam bem (x), sem se desviar desnecessariamente dos pesos de mistura a priori (\pi_k).

Essa mesma estrutura aparece em modelos de mistura e modelos de tópicos mais complexos, onde posteriors exatos não estão disponíveis.

Para que o ELBO é usado (aplicações práticas)

Treinando modelos generativos com variáveis latentes

O ELBO é a função objetivo principal para ajustar modelos com estrutura latente:

  • VAEs para imagens, áudio, texto e dados multimodais
  • modelos gaussianos latentes profundos (deep latent Gaussian models)
  • redes neurais bayesianas (com distribuições variacionais de pesos)

Inferência bayesiana aproximada em escala

Em modelos grandes, inferência bayesiana exata é lenta demais ou impossível. O ELBO permite inferência aproximada escalável usando:

  • mini-lotes
  • inferência amortizada (amortized inference) (aprendendo (q_\phi(z\mid x)) com um codificador neural)
  • estimativas de Monte Carlo aceleradas por GPU (GPU-accelerated)

Isso é amplamente usado em Programação Probabilística, onde mecanismos de inferência frequentemente otimizam um ELBO (ou uma variante próxima).

Comparação de modelos e diagnósticos de treinamento

O ELBO pode servir como:

  • uma função objetivo de treinamento (quanto maior, melhor)
  • uma aproximação grosseira do log-evidência (útil para comparar modelos), embora lembre-se de que é um limite inferior e pode ser frouxo

Para seleção formal de modelos, ideias relacionadas aparecem em critérios como AIC/BIC; veja Critérios de Informação.

Nuances importantes e armadilhas comuns

1) O ELBO pode ser um limite frouxo

Um ELBO maior geralmente indica um melhor ajuste, mas valores de ELBO de famílias variacionais diferentes podem não ser diretamente comparáveis: um (q_\phi) mais rico pode apertar o limite.

Uma extensão comum é o limite do Autoencoder Ponderado por Importância (Importance-Weighted Autoencoder, IWAE), que usa múltiplas amostras para apertar o limite inferior: [ \log p(x) \ge \mathbb{E}\left[\log \frac{1}{K}\sum_{k=1}^K \frac{p(x,z_k)}{q(z_k\mid x)}\right] ]

2) A direção da KL importa (comportamento de busca de modos)

O ELBO minimiza (\mathrm{KL}(q(z\mid x)|p(z\mid x))), às vezes chamada de “KL exclusivo (exclusive KL)”. Isso tende a ser busca de modos (mode-seeking): (q) pode focar em um modo de um posterior multimodal em vez de cobrir todos os modos.

3) Colapso do posterior em VAEs

Quando o decodificador é muito poderoso, maximizar o ELBO pode levar a:

  • (q(z\mid x)\approx p(z)) (o termo de KL vai para ~0)
  • a variável latente (z) carrega pouca informação sobre (x)

Isso é comum em VAEs de texto com decodificadores autorregressivos (autoregressive decoders) fortes e frequentemente é mitigado com KL annealing, mudanças de arquitetura ou funções objetivo alternativas.

4) “Reconstrução” depende da escolha de verossimilhança

Chamar o primeiro termo de “perda de reconstrução” é conveniente, mas pode esconder suposições de modelagem. Você não está reconstruindo em uma métrica arbitrária; você está maximizando uma verossimilhança probabilística (probabilistic likelihood). Escolher verossimilhança Bernoulli vs Gaussiana muda o que significa “boa reconstrução”.

Relação com máxima verossimilhança

Maximizar o log da verossimilhança marginal (\log p_\theta(x)) é um objetivo padrão em Estimativa de Máxima Verossimilhança (MLE) para modelos com variáveis latentes. O ELBO fornece um substituto tratável:

  • Se a família variacional contiver o posterior verdadeiro, o limite pode se tornar justo: [ q_\phi(z\mid x) = p_\theta(z\mid x)\ \Rightarrow\ \mathcal{L}(\theta,\phi;x) = \log p_\theta(x) ]
  • Caso contrário, maximizamos um limite inferior, equilibrando ajuste e qualidade da aproximação.

Resumo

  • O ELBO é um limite inferior tratável do log da verossimilhança marginal (\log p_\theta(x)).
  • Ele pode ser escrito como: [ \mathcal{L}(\theta,\phi;x)=\mathbb{E}{q\phi(z\mid x)}[\log p_\theta(x\mid z)]-\mathrm{KL}(q_\phi(z\mid x)|p(z)) ] que é “log-verossimilhança esperada (reconstrução) menos regularizador de KL”.
  • Maximizar o ELBO é equivalente (até uma constante (\log p_\theta(x))) a minimizar: [ \mathrm{KL}(q_\phi(z\mid x)|p_\theta(z\mid x)) ] conectando a otimização variacional diretamente à aproximação do posterior.
  • Em VAEs, o ELBO se torna a função objetivo padrão de treinamento e é otimizado de forma eficiente usando o truque de reparametrização e gradientes estocásticos.

Se você entende o ELBO, você tem a ponte matemática central entre inferência bayesiana do posterior e a modelagem generativa profunda moderna.