Aula 5: Seleção de Modelos, ELBO e Validação Empírica

Aprendizado Não Supervisionado

Autor

Marcos M. Raimundo — Instituto de Computação, UNICAMP

Data de Publicação

16 de setembro de 2026

Slides Lista de aulas

1 Revisão e Introdução

1.1 Revisão Cuidadosa: O Que a Aula 4 Deixou Pronto

A Aula 4 trocou a atribuição rígida de cluster (Aula 3, HDBSCAN) por uma atribuição probabilística: o Modelo de Mistura Gaussiana (GMM). Cada ponto \(\mathbf{x}_n\) nasce de uma variável latente categórica \(z_n\), 1-de-\(K\), com prior \(\pi_k=p(z_{nk}=1)\) — o ponto é então amostrado de \(\mathcal{N}(\mathbf{x}\mid\mu_k,\Sigma_k)\) para o componente \(k\) sorteado, mas \(z_n\) nunca é observado. A responsabilidade \(\gamma(z_{nk})=p(z_{nk}=1\mid\mathbf{x}_n)\), calculada por Bayes a partir dos parâmetros correntes, mede o quanto cada componente “explica” cada ponto. Como \(\gamma\) depende dos parâmetros que ela mesma ajuda a reestimar, o ajuste não tem solução fechada — o Algoritmo EM resolve isso alternando um Passo E (recalcular \(\gamma(z_{nk})\) com os parâmetros fixos) e um Passo M (reestimar \(\mu_k,\Sigma_k,\pi_k\) por máxima verossimilhança ponderada por \(\gamma\), com \(\gamma\) fixo), até convergir. Em nenhum momento desse processo o Algoritmo EM, como a Aula 4 o apresentou, usa uma priori sobre os parâmetros \(\theta=\{\mu_k,\Sigma_k,\pi_k\}\) — ele busca diretamente o \(\theta\) de máxima verossimilhança, \(\theta_{\mathrm{ML}}\), dado \(K\) fixo. Essa ausência de priori é exatamente o que esta aula vai identificar como a raiz do problema de escolher \(K\).

Ajustado ao Breast Cancer Wisconsin (mesmos dois atributos padronizados radius_worst/concave points_worst usados nas Aulas 3–4, sem usar o rótulo diagnosis), o GMM com \(K=2\) produziu dois componentes que, ao final, mapeavam quase perfeitamente para benigno/maligno — mas o valor \(K=2\) nunca foi escolhido pelos dados: foi fixado de antemão, porque já se sabia (só para avaliar, nunca para ajustar) que fazia sentido nesse dataset específico. A Aula 4 fechou nomeando essa lacuna explicitamente: se tentássemos escolher \(K\) maximizando a própria log-verossimilhança de treino, esse critério funcionaria? A suspeita levantada foi que não. Esta aula começa testando essa suspeita de novo, de forma literal.

1.2 Ideia Central

A pergunta desta aula é diferente da Aula 4: não “como ajustar os parâmetros de um modelo com variável latente” (resolvida), mas “como saber se a estrutura do modelo — o número de componentes \(K\), ou qualquer outro hiperparâmetro que defina a forma do modelo — é boa, quando não existe rótulo de gabarito para comparar?” A ideia-ponte: maximizar a verossimilhança de treino mede só ajuste; escolher estrutura exige medir plausibilidade do modelo como um todo, e essa plausibilidade só aparece quando alguma forma de penalidade — vinda de uma priori sobre os parâmetros, ou de dados nunca vistos no ajuste — entra na conta.

1.3 Roteiro da Aula

Quatro perguntas organizam esta aula:

  1. Injetar uma priori sobre os parâmetros do GMM (em vez de buscar direto \(\theta_{\mathrm{ML}}\)) resolve o problema de \(K\) sempre crescer? Que objeto matemático essa priori produz?
  2. Trocar “escolher \(K\)” por “calibrar hiperparâmetros de uma priori” elimina a subjetividade da escolha, ou só a desloca para outro lugar?
  3. Sem rótulo de gabarito algum, como validar uma clusterização “dura” (K-Means, DBSCAN) usando só os próprios dados?
  4. Para modelos probabilísticos, existe uma validação mais direta que as métricas de clusterização dura — e existe algum teste ainda mais definitivo do que qualquer número único?

1.4 Problema Motivador

Reencenando o teste que fechou a Aula 4: ajustamos um GMM (mesmos dois atributos do Breast Cancer Wisconsin) para cada \(K\) de \(1\) a \(10\), usando todos os dados disponíveis (sem separar validação ainda — é exatamente esse “sem separar nada” que vamos questionar), e registramos a log-verossimilhança de treino máxima atingida em cada caso.

O resultado é o mesmo da Aula 4: a log-verossimilhança de treino nunca cai ao longo de \(K=1,\dots,10\) — de \(-1339{,}45\) nats em \(K=1\) a \(-1169{,}66\) nats em \(K=10\). Se a régua fosse “maximizar a log-verossimilhança de treino usando todos os dados”, a resposta seria sempre “use o maior \(K\) que você conseguir rodar”. O resto desta aula desenvolve duas soluções complementares: uma analítica (injetar uma priori, Bloco 1) e uma empírica (nunca julgar um modelo pelos dados que ele já viu, Blocos 3–5).

1.5 Pergunta

DicaSe um componente do GMM pode encolher sua covariância sobre um único ponto de treino, o que isso já revela sobre usar a log-verossimilhança de treino para escolher K?

Pense no que acontece com a densidade \(\mathcal{N}(\mathbf{x}\mid\mu_k, \Sigma_k)\) quando \(\mu_k\) se aproxima de um ponto de treino específico e \(\Sigma_k\to\mathbf{0}\).

  • □ Um componente pode encolher sua covariância sobre um único ponto de treino, levando a densidade naquele ponto (e a log-verossimilhança total) a divergir — logo o “melhor” \(\theta\) para \(K\) grande pode nem ser um ponto interessante, só um artefato numérico.
  • □ Se, em vez de comparar \(K\) por log-verossimilhança de treino, comparássemos por log-verossimilhança medida num conjunto de validação nunca usado no ajuste, mais componentes deixaria de garantir uma melhora monotônica.
  • □ Como a log-verossimilhança de treino nunca piora ao acrescentar componentes, um GMM com \(K=10\) sempre generaliza melhor que um com \(K=2\) no Breast Cancer Wisconsin.
  • □ O mesmo fenômeno — erro de treino não-crescente conforme a complexidade do modelo aumenta — aparece em árvores de decisão sem profundidade máxima, cujo erro de treino pode chegar a zero.

2 Intuição — Duas Formas de Pagar por Complexidade

Antes de qualquer fórmula, o panorama inteiro da aula em uma ideia: toda vez que um modelo ganha liberdade extra (mais componentes, um hiperparâmetro mais permissivo), essa liberdade precisa ser paga de alguma forma, ou o modelo sempre vai preferir usá-la — mesmo quando isso só decora o ruído do treino. Duas formas de cobrar esse pagamento:

  1. Analiticamente, com uma priori. Se dermos aos parâmetros \(\theta\) uma distribuição de crença prévia \(p(\theta)\), um modelo só “vale a pena” ficar mais complexo se o ganho de ajuste compensar o quanto ele precisa se afastar dessa crença prévia — essa distância (medida em KL, Bloco 1) é a penalidade.
  2. Empiricamente, com dados nunca vistos. Se guardarmos uma fatia dos dados de fora do ajuste (o conjunto de validação) e só confiarmos no desempenho medido ali, um modelo que só decorou o treino automaticamente aparece pior — não precisamos calcular nenhuma penalidade analítica, o próprio dado novo já “cobra a conta”.

A primeira via (Bloco 1) resolve o problema de \(K\) para o GMM — mas troca “escolher \(K\)” por “escolher os hiperparâmetros da priori” (Bloco 2), um problema do mesmo tipo. A segunda via (Blocos 3–5) não desaparece nunca: mesmo tendo uma priori, ainda vale a pena checar o modelo em dados novos — e para modelos sem verossimilhança fechada (K-Means, DBSCAN), é literalmente a única via disponível.

3 Do EM ao ELBO: Injetando uma Priori

O Algoritmo EM da Aula 4, olhado com cuidado, é a otimização de um objeto mais geral — e é exatamente o “mais geral” que revela por que ele não penaliza complexidade. Para expor isso, precisamos de uma peça nova: a divergência de Kullback-Leibler.

NotaDefinição (divergência de Kullback-Leibler)

Sejam \(p(\mathbf{H})\) e \(q(\mathbf{H})\) duas distribuições de probabilidade sobre o mesmo espaço (aqui, \(\mathbf{H}\) denota qualquer variável não observada — variável latente, parâmetro, ou os dois juntos). A divergência de Kullback-Leibler de \(q\) para \(p\) é \[ \mathrm{KL}(q\|p) = -\int q(\mathbf{H})\ln\left\{\frac{p(\mathbf{H})}{q(\mathbf{H})}\right\}\mathrm{d}\mathbf{H}. \]

Vale reescrever essa integral de outra forma, porque é essa segunda forma que vamos reaproveitar pelo resto da aula. Para qualquer função \(f(\mathbf{H})\), a integral \(\int q(\mathbf{H})f(\mathbf{H})\, \mathrm{d}\mathbf{H}\) é, por definição, a esperança de \(f\) sob a distribuição \(q\), denotada \(\mathbb{E}_q[f(\mathbf{H})]\) — a média de \(f(\mathbf{H})\), ponderada por quão provável cada valor de \(\mathbf{H}\) é segundo \(q\) (o mesmo conceito de esperança de outras disciplinas, aqui só integrando contra \(q\) em vez de somar contra uma distribuição discreta). A definição de KL acima é exatamente uma integral desse tipo, com \(f(\mathbf{H})=-\ln\{p(\mathbf{H})/q(\mathbf{H})\}= \ln\{q(\mathbf{H})/p(\mathbf{H})\}\): \[ \mathrm{KL}(q\|p) = \mathbb{E}_q\!\left[\ln\frac{q(\mathbf{H})}{p(\mathbf{H})}\right] = -\mathbb{E}_q\!\left[\ln\frac{p(\mathbf{H})}{q(\mathbf{H})}\right]. \] Não é um objeto novo, só uma notação mais compacta para a mesma integral — mas é a notação que a prova logo abaixo, e a definição do ELBO mais adiante, usam diretamente, sem reabrir o símbolo de integral a cada passo.

\(\mathrm{KL}(q\|p)\ne\mathrm{KL}(p\|q)\) em geral — não é uma distância no sentido formal —, mas o resultado que a torna útil é que ela nunca é negativa:

NotaTeorema (não-negatividade da divergência KL — desigualdade de Gibbs; PRML §1.6.1)

Para quaisquer distribuições \(p(\mathbf{H})\) e \(q(\mathbf{H})\), \(\mathrm{KL}(q\|p)\ge0\), com igualdade se, e somente se, \(q(\mathbf{H})=p(\mathbf{H})\).

Demonstração (via desigualdade de Jensen). A função \(-\ln(\cdot)\) é convexa (segunda derivada \(1/x^2>0\)), então, para qualquer distribuição \(q\) e variável \(X=p(\mathbf{H})/q(\mathbf{H})\) tratada sob \(q\), \(-\ln\mathbb{E}_q[X]\le\mathbb{E}_q[-\ln X]\). Logo \[ \mathrm{KL}(q\|p) = \int q(\mathbf{H})\left[-\ln\frac{p(\mathbf{H})}{q(\mathbf{H})}\right]\mathrm{d}\mathbf{H} \ge -\ln\int q(\mathbf{H})\frac{p(\mathbf{H})}{q(\mathbf{H})}\,\mathrm{d}\mathbf{H} = -\ln\int p(\mathbf{H})\,\mathrm{d}\mathbf{H} = -\ln 1 = 0. \] A igualdade em Jensen ocorre quando \(p(\mathbf{H})/q(\mathbf{H})\) é constante sob \(q\), o que, como ambas integram a \(1\), força \(p(\mathbf{H})=q(\mathbf{H})\). \(\blacksquare\)

A decomposição geral. Para dados observados \(\mathbf{X}\) e qualquer variável não observada \(\mathbf{H}\) (de novo: latente, parâmetro, ou os dois), e qualquer \(q(\mathbf{H})\) normalizada, a regra do produto (\(p(\mathbf{X},\mathbf{H})=p(\mathbf{H}\mid\mathbf{X})p(\mathbf{X})\)) aplicada a \(\mathcal{L}(q)=\int q(\mathbf{H})\ln\{p(\mathbf{X},\mathbf{H})/q(\mathbf{H})\}\,\mathrm{d}\mathbf{H}\) dá, pelos mesmos passos algébricos usados na definição de KL acima,

NotaTeorema (decomposição da evidência; PRML eq. 10.2, §10.1)

Para qualquer distribuição \(q(\mathbf{H})\) normalizada, \[ \ln p(\mathbf{X}) = \mathcal{L}(q) + \mathrm{KL}\big(q\,\|\,p(\mathbf{H}\mid\mathbf{X})\big), \qquad \mathcal{L}(q) = \int q(\mathbf{H})\ln\left\{\frac{p(\mathbf{X},\mathbf{H})}{q(\mathbf{H})}\right\}\mathrm{d}\mathbf{H}. \]

Como \(\mathrm{KL}\ge0\), \(\mathcal{L}(q)\le\ln p(\mathbf{X})\) para qualquer \(q\) — o ELBO (Evidence Lower Bound), com igualdade exatamente quando \(q(\mathbf{H})=p(\mathbf{H}\mid\mathbf{X})\), a posterior verdadeira.

Onde \(\mathbf{H}\) entra é o que decide tudo. O EM da Aula 4 corresponde a uma escolha muito específica de \(\mathbf{H}\): só a variável latente, \(\mathbf{H}=\mathbf{Z}=\{z_n\}\), com \(\theta\) mantido de fora, tratado como parâmetro fixo, não como variável aleatória — nunca integrado, nunca penalizado por se afastar de nenhuma priori. Isso muda o objeto que decompomos: em vez de \(\ln p(\mathbf{X})\) (marginal, sem condicionar em nada), queremos decompor \(\ln p(\mathbf{X}\mid\theta)\) — a log-verossimilhança para um \(\theta\) fixo, exatamente a quantidade que o Passo M da Aula 4 maximizava. A equação não sai pronta da decomposição geral por substituição direta — precisamos repetir a mesma conta, agora condicionando em \(\theta\) do início ao fim (PRML §9.4). Defina \[ \mathcal{L}(q,\theta) := \int q(\mathbf{Z})\ln\left\{\frac{p(\mathbf{X},\mathbf{Z}\mid\theta)}{q(\mathbf{Z})}\right\}\mathrm{d}\mathbf{Z}. \] A regra do produto, agora condicionada em \(\theta\), \(p(\mathbf{X},\mathbf{Z}\mid\theta)=p(\mathbf{Z}\mid\mathbf{X},\theta)\, p(\mathbf{X}\mid\theta)\), substituída dentro do logaritmo, separa a integral em dois termos — os mesmos passos algébricos de antes, só com \(\theta\) presente em toda parte: \[ \mathcal{L}(q,\theta) = \underbrace{\int q(\mathbf{Z})\ln p(\mathbf{X}\mid\theta)\,\mathrm{d}\mathbf{Z}}_{=\ln p(\mathbf{X}\mid\theta)} \;+\; \underbrace{\int q(\mathbf{Z})\ln\left\{\frac{p(\mathbf{Z}\mid\mathbf{X},\theta)}{q(\mathbf{Z})}\right\}\mathrm{d}\mathbf{Z}}_{=-\mathrm{KL}(q(\mathbf{Z})\|p(\mathbf{Z}\mid\mathbf{X},\theta))} , \] onde o primeiro termo usou que \(\ln p(\mathbf{X}\mid\theta)\) não depende de \(\mathbf{Z}\) (sai da integral) e \(\int q(\mathbf{Z})\, \mathrm{d}\mathbf{Z}=1\) (\(q\) normalizada). Rearranjando,

\[ \ln p(\mathbf{X}\mid\theta) = \mathcal{L}(q,\theta) + \mathrm{KL}\big(q(\mathbf{Z})\,\|\,p(\mathbf{Z}\mid\mathbf{X},\theta)\big). \]

O Passo E maximiza \(\mathcal{L}(q,\theta^{\text{old}})\) sobre \(q\) (o mínimo do KL, \(q=\gamma(z_{nk})\)); o Passo M maximiza \(\mathcal{L}(q,\theta)\) sobre \(\theta\) — mas sem prior nenhum sobre \(\theta\), essa maximização persegue só \(\theta_{\mathrm{ML}}\). No ótimo, \[ \mathcal{L}(q^\star,\theta_{\mathrm{ML}}) = \ln p(\mathbf{X}\mid\theta_{\mathrm{ML}}), \] que é exatamente a verossimilhança no melhor ponto — a mesma quantidade que a Abertura já rejeitou como critério de seleção. O ELBO do EM clássico não tem propriedade de Occam nenhuma, porque nunca integra ou penaliza \(\theta\): usá-lo para comparar \(K\) diferentes teria o mesmo problema da log-verossimilhança crua.

A alternativa: dar uma priori de verdade só a \(\pi\), mantendo \(\mu_k,\Sigma_k\) fixos. Não precisamos tornar todo o vetor de parâmetros \(\theta=\{\mu_k,\Sigma_k,\pi\}\) aleatório para recuperar uma penalidade de complexidade. O problema de \(K\) crescer sem limite nasce inteiramente de como os pesos de mistura \(\pi=(\pi_1,\dots,\pi_K)\) se distribuem entre os componentes — um componente “morto”, com \(\pi_k\approx0\), já é, na prática, um componente a menos, não importa quão bem ajustados \(\mu_k,\Sigma_k\) estejam. Basta colocar \(\pi\) dentro do tratamento variacional, dando-lhe uma priori de verdade \(p(\pi)\) — mantendo \(\mu_k,\Sigma_k\) exatamente como no EM clássico: pontos fixos, sem priori nenhuma, carregados como parâmetro extra em toda a conta, do mesmo jeito que \(\theta\) inteiro era carregado na especialização anterior. Para abreviar, escreva \(\phi:=\{\mu_k,\Sigma_k\}_{k=1}^K\) (o que continua fixo). Escolhendo \(\mathbf{H}=(\mathbf{Z},\pi)\), com campo médio \(q(\mathbf{Z},\pi)\approx q(\mathbf{Z})\,q(\pi)\) (PRML §10.1), repetimos a mesma conta de antes — agora com \(\phi\) no lugar de \(\theta\), e só \((\mathbf{Z},\pi)\) dentro de \(\mathbf{H}\): \[ \mathcal{L}(q,\phi) := \iint q(\mathbf{Z})q(\pi)\ln \frac{p(\mathbf{X},\mathbf{Z},\pi\mid\phi)}{q(\mathbf{Z})q(\pi)}\, \mathrm{d}\mathbf{Z}\,\mathrm{d}\pi . \]

Passo 1 — separar \(\mathbf{X}\) do resto. Dados o componente \(\mathbf{Z}\) de cada ponto e os parâmetros \(\phi\) de cada componente, a densidade de \(\mathbf{X}\) não depende mais de \(\pi\) — os pesos de mistura só afetam qual componente um ponto tende a vir, não a forma da gaussiana daquele componente: \(p(\mathbf{X}\mid\mathbf{Z},\pi,\phi)=p(\mathbf{X}\mid\mathbf{Z},\phi)\). Pela regra do produto, \[ p(\mathbf{X},\mathbf{Z},\pi\mid\phi) = p(\mathbf{X}\mid\mathbf{Z},\pi,\phi)\,p(\mathbf{Z},\pi\mid\phi) = p(\mathbf{X}\mid\mathbf{Z},\phi)\,p(\mathbf{Z},\pi\mid\phi) . \]

Passo 2 — substituir e separar o logaritmo. \[ \ln\frac{p(\mathbf{X},\mathbf{Z},\pi\mid\phi)}{q(\mathbf{Z})q(\pi)} = \ln p(\mathbf{X}\mid\mathbf{Z},\phi) + \ln\frac{p(\mathbf{Z},\pi\mid\phi)}{q(\mathbf{Z})q(\pi)} = \ln p(\mathbf{X}\mid\mathbf{Z},\phi) - \ln\frac{q(\mathbf{Z})q(\pi)}{p(\mathbf{Z},\pi\mid\phi)} . \]

Passo 3 — voltar à integral dupla e separar em dois termos. \[ \mathcal{L}(q,\phi) = \iint q(\mathbf{Z})q(\pi)\ln p(\mathbf{X}\mid\mathbf{Z},\phi)\,\mathrm{d}\mathbf{Z}\,\mathrm{d}\pi \;-\; \iint q(\mathbf{Z})q(\pi)\ln\frac{q(\mathbf{Z})q(\pi)}{p(\mathbf{Z},\pi\mid\phi)}\,\mathrm{d}\mathbf{Z}\,\mathrm{d}\pi . \]

Passo 4 — simplificar o primeiro termo. O integrando \(\ln p(\mathbf{X}\mid\mathbf{Z},\phi)\) não depende de \(\pi\): integrando primeiro em \(\pi\), \(\int q(\pi)\,\mathrm{d}\pi=1\) (\(q(\pi)\) normalizada) elimina essa variável por completo, \[ \iint q(\mathbf{Z})q(\pi)\ln p(\mathbf{X}\mid\mathbf{Z},\phi)\,\mathrm{d}\mathbf{Z}\,\mathrm{d}\pi = \int q(\mathbf{Z})\ln p(\mathbf{X}\mid\mathbf{Z},\phi)\,\mathrm{d}\mathbf{Z} = \mathbb{E}_{q(\mathbf{Z})}[\ln p(\mathbf{X}\mid\mathbf{Z},\phi)] . \] Esse é o ganho concreto de tratar só \(\pi\) (em vez de \(\theta\) inteiro) como variável: o termo de ajuste simplifica para uma esperança só sobre \(\mathbf{Z}\), sem precisar de esperança sobre \(\pi\) também.

Passo 5 — reconhecer o segundo termo como KL. Pela mesma noção de esperança usada na definição de KL, com \(\mathbf{Z}\) e \(\pi\) juntos no papel de variável não observada, o segundo termo é exatamente \(\mathrm{KL}(q(\mathbf{Z},\pi)\|p(\mathbf{Z},\pi\mid\phi))\). Juntando os dois passos: \[ \mathcal{L}(q,\phi) = \underbrace{\mathbb{E}_{q(\mathbf{Z})}[\ln p(\mathbf{X}\mid\mathbf{Z},\phi)]}_{\text{ajuste — tenta "decorar" os dados}} \;-\; \underbrace{\mathrm{KL}\big(q(\mathbf{Z},\pi)\,\|\,p(\mathbf{Z},\pi\mid\phi)\big)}_{\text{Navalha de Occam}} . \]

Essa é uma cota inferior de \(\ln p(\mathbf{X}\mid\phi)\) que, ao contrário do EM clássico, carrega uma penalidade de complexidade de verdade: um componente cujo peso \(\pi_k\) a posteriori não precisa se afastar muito da priori (porque os dados não sustentam esse componente) custa pouco KL; um componente que os dados realmente sustentam custa mais KL, mas ganha mais no termo de ajuste. \(\mu_k,\Sigma_k\) continuam exatamente como no EM clássico — não precisamos de nenhuma priori sobre eles para obter essa penalidade; toda ela vem de \(\pi\). Este procedimento — Inferência Bayesiana Variacional (Variational Bayes), aqui restrita a \(\pi\) — é diferente do EM clássico, não um caso particular dele: otimiza sobre \(q(\mathbf{Z})\) e \(q(\pi)\) alternadamente (não sobre \(q(\mathbf{Z})\) e um ponto \(\pi\)), e o resultado carrega, de verdade, a penalização de complexidade.

Verificação numérica — poda automática de componentes. Dando a \(\pi=(\pi_1,\dots,\pi_K)\) uma priori de Dirichlet com concentração \(\alpha_0\) — quanto menor \(\alpha_0\), mais a priori já “acredita” em poucos componentes ativos antes de ver os dados —, o Passo 5 prevê exatamente a poda automática: componentes supérfluos têm seu \(\pi_k\) empurrado para perto da priori (baixo), pagando pouco KL sem ajudar o ajuste. Verificamos isso com BayesianGaussianMixture do scikit-learn — na prática, essa implementação vai além do que derivamos aqui e também trata \(\mu_k,\Sigma_k\) variacionalmente, com prioris Normal-Wishart (uma extensão natural do mesmo princípio, que não desenvolvemos nesta aula: o mecanismo de poda que importa aqui vem inteiramente da priori sobre \(\pi\), como o Passo 4 mostrou). Ajustando com \(K=8\) componentes “de sobra” e três valores de \(\alpha_0\), no mesmo Breast Cancer Wisconsin:

Com \(\alpha_0=0{,}001\) (priori bem concentrada em poucos componentes), o ajuste converge para pesos \((0{,}6045,\ 0{,}3955,\ 0,\dots,0)\)dois componentes significativos, os outros seis exatamente zerados: a poda é automática, sem comparar \(\mathcal{L}\) entre rodadas separadas de \(K\). Com \(\alpha_0=1{,}0\), a poda é mais suave: \((0{,}582,\ 0{,}355,\ 0{,}061, \dots)\), um terceiro componente pequeno mas não nulo sobrevive. Com \(\alpha_0=100\) (priori bem mais permissiva), quatro componentes ficam com peso acima de \(1\%\) — a priori “deixa” o modelo usar mais componentes antes de penalizar. O próprio \(\alpha_0\) virou um botão que controla quantos componentes “sobrevivem” — o que já antecipa o problema do próximo bloco.

3.1 Pergunta

DicaSe déssemos uma priori de verdade a μ_k e Σ_k (mantendo π fixo, como no EM clássico), o problema de K=N desapareceria?

Releia o Passo 4 da derivação: o termo de ajuste virou uma esperança só sobre \(\mathbf{Z}\) exatamente porque a verossimilhança de \(\mathbf{X}\) não depende de \(\pi\). Pense em qual parâmetro efetivamente controla se um componente “sobrevive” ou não.

  • □ Não — o mecanismo de poda vem inteiramente do termo \(\mathrm{KL}(q(\mathbf{Z},\pi)\|p(\mathbf{Z},\pi\mid\phi))\): é a distância entre a priori e a posterior de \(\pi\) que penaliza componentes supérfluos; uma priori sobre \(\mu_k,\Sigma_k\), mantendo \(\pi\) fixo, não introduz esse termo em lugar nenhum da conta.
  • □ No caso-limite em que a priori \(p(\pi)\) é extremamente concentrada (quase um ponto único), a decomposição com \(\pi\) dentro de \(\mathbf{H}\) se aproxima da decomposição do EM clássico, já que \(q(\pi)\) tem pouquíssima liberdade para se afastar desse ponto.
  • □ Como o campo médio \(q(\mathbf{Z},\pi)\approx q(\mathbf{Z})q(\pi)\) é só uma conveniência computacional, o ELBO resultante deixa de ser uma cota inferior válida de \(\ln p(\mathbf{X}\mid\phi)\) sempre que essa fatoração não corresponde à dependência real entre \(\mathbf{Z}\) e \(\pi\).
  • □ O mesmo princípio de poda automática via priori esparsa também aparece em regressão linear regularizada por LASSO, onde uma priori Laplaciana sobre os coeficientes empurra muitos deles exatamente a zero.

4 O Dilema dos Hiperparâmetros

O Bloco 1 resolveu o problema de \(K\) para o GMM — mas note o preço: a escolha “qual \(K\)?” virou a escolha “qual \(\alpha_0\)?”. Isso não é uma coincidência local do GMM Bayesiano; é um padrão que se repete em todo método não supervisionado com algum grau de liberdade na sua forma:

  • No GMM Bayesiano (Bloco 1): o hiperparâmetro é \(\alpha_0\), a concentração da priori de Dirichlet sobre os pesos de mistura.
  • No K-Means (Aula 4, caso-limite do GMM): o hiperparâmetro é diretamente \(K\), o número de clusters — sem priori nenhuma para suavizar a escolha, já que o K-Means não é um modelo probabilístico.
  • No DBSCAN (Aula 3, via HDBSCAN): os hiperparâmetros são o raio de vizinhança \(\epsilon\) e o número mínimo de pontos min_samples — já discutidos então como controle da granularidade da densidade.

Trocar “escolher \(K\)” por “calibrar hiperparâmetros de priori” não elimina a subjetividade — apenas a desloca de um limite rígido (\(K\in\{1,2,3,\dots\}\)) para um limite elástico (\(\alpha_0\in\mathbb{R}_{>0}\), contínuo). E note que essa troca de problema não é exclusiva de modelos Bayesianos: o K-Means nem tenta ter uma priori — seu \(K\) precisa ser calibrado de outro jeito inteiramente. O problema central que os Blocos 3–5 resolvem: como calibrar e validar cada uma dessas escolhas de estrutura, quando o domínio é não supervisionado e não existe uma métrica de erro supervisionada (acurácia, MSE) disponível?

5 Validação Empírica: Clusterização “Dura”

Para K-Means e DBSCAN, não existe log-verossimilhança nem ELBO — a única via disponível é empírica. Antes de qualquer métrica, um passo preliminar que esta disciplina ainda não tinha precisado até agora: separar os dados em dois subconjuntos disjuntos. Sorteamos aleatoriamente uma fração dos pontos originais para formar o conjunto de treino — usado só para ajustar o modelo (encontrar os centroides do K-Means, ou aplicar as regras de vizinhança do DBSCAN) — e reservamos o restante, nunca tocado nesse ajuste, como conjunto de validação — usado só para medir a qualidade do resultado depois. Essa separação existe por um motivo preciso, já anunciado na Abertura: qualquer métrica calculada nos mesmos pontos que moldaram o modelo tende a favorecer o próprio ajuste (o K-Means, por exemplo, já minimiza a distorção interna nos pontos de treino, por construção) — isso não diz nada sobre se a estrutura encontrada é real ou generaliza para pacientes novos. Medir a qualidade em pontos que o algoritmo nunca viu durante o ajuste é o único jeito de testar isso honestamente.

Com essa separação em mãos, a ideia central: redefinir o que “validação” significa quando não há rótulo. Em vez de medir acerto contra um gabarito, medimos estabilidade topológica — o quanto a estrutura descoberta no treino se mantém coerente em dados nunca vistos. A receita: ajustar (encontrar centroides/regras) só no conjunto de treino, aplicar essas regras ao conjunto de validação, e medir a qualidade da partição resultante ali — nunca no treino.

Duas métricas intrínsecas. Ambas usam só a geometria dos pontos e dos rótulos de cluster atribuídos, sem depender de verossimilhança:

NotaDefinição (Coeficiente de Silhueta — Rousseeuw, 1987)

Para um ponto \(\mathbf{x}_i\) atribuído ao cluster \(C_i\), sejam \(a(i)\) a distância média de \(\mathbf{x}_i\) aos demais pontos do mesmo cluster (coesão) e \(b(i)\) a menor distância média de \(\mathbf{x}_i\) aos pontos de outro cluster, minimizada sobre os clusters vizinhos (separação). O coeficiente de silhueta do ponto é \[ s(i) = \frac{b(i)-a(i)}{\max\{a(i),b(i)\}} \in[-1,1], \] e o coeficiente da partição é a média de \(s(i)\) sobre todos os pontos. Valores próximos de \(1\) indicam clusters bem separados e coesos; próximos de \(0\), clusters sobrepostos; negativos, pontos provavelmente mal atribuídos.

NotaDefinição (Índice de Davies-Bouldin — Davies & Bouldin, 1979)

Para cada cluster \(C_k\) (com \(|C_k|\) pontos), defina primeiro dois objetos auxiliares, ambos calculados só com os pontos daquele cluster:

  • o centroide \(\mathbf{c}_k := \dfrac{1}{|C_k|}\sum_{\mathbf{x}\in C_k}\mathbf{x}\) — o ponto médio dos pontos do cluster (o mesmo tipo de centroide que o K-Means já calcula no seu próprio ajuste);
  • a dispersão interna \(\sigma_k := \dfrac{1}{|C_k|}\sum_{\mathbf{x} \in C_k}\|\mathbf{x}-\mathbf{c}_k\|\) — a distância média dos pontos do cluster ao seu próprio centroide, ou seja, o quão “espalhado” é aquele cluster (\(\sigma_k\) grande = pontos tipicamente longe do centro; \(\sigma_k\) pequeno = cluster compacto).

Com \(\mathbf{c}_k\) e \(\sigma_k\) definidos, a similaridade entre um par de clusters \(j,k\) é \[ R_{jk} := \frac{\sigma_j+\sigma_k}{\|\mathbf{c}_j-\mathbf{c}_k\|}. \] O numerador soma a dispersão dos dois clusters; o denominador é a distância entre seus centros. \(R_{jk}\) fica grande quando os dois clusters são muito dispersos (numerador grande) ou seus centros estão muito próximos (denominador pequeno) — em ambos os casos, sinal de que \(j\) e \(k\) são difíceis de distinguir um do outro. O índice de Davies-Bouldin compara cada cluster ao seu pior (mais parecido) vizinho, e tira a média sobre todos os \(K\) clusters: \[ \mathrm{DB} := \frac{1}{K}\sum_{k=1}^K \max_{j\ne k} R_{jk}. \] Diferente da Silhueta, menor é melhor: um bom particionamento minimiza essa pior semelhança, em média.

Técnica de perturbação e consistência. Ajustar no treino e medir na validação já é, em si, um teste de perturbação: se a estrutura encontrada é real (não um artefato do ruído específico da amostra de treino), ela deve se manter coerente quando aplicada a uma amostra diferente da mesma população. Estruturas geradas por sobreajuste — um cluster que só existe porque um punhado de pontos de treino, por acaso, formou um agrupamento — tendem a desaparecer (Silhueta cai, DB sobe) quando confrontadas com dados novos.

Aplicando ao Breast Cancer Wisconsin. Dividimos os \(569\) pacientes em treino (\(N=398\)) e validação (\(N=171\), \(30\%\), nunca usados no ajuste). Para cada \(K=2,\dots,8\), ajustamos K-Means só no treino, aplicamos os centroides à validação, e calculamos Silhueta e Davies-Bouldin só na validação:

As duas métricas concordam: a Silhueta na validação é máxima em \(K=2\) (\(0{,}593\)) e cai monotonicamente até \(K=8\) (\(0{,}315\)); o Davies-Bouldin na validação é mínimo em \(K=2\) (\(0{,}590\)) e sobe daí em diante (chegando a \(0{,}979\) em \(K=8\)). Note que nenhuma das duas métricas usa rótulo algum — ambas são calculadas só a partir da geometria dos pontos de validação e da partição que o K-Means (treinado no treino) atribuiu a eles. O acordo entre duas métricas independentes, medidas num conjunto nunca visto no ajuste, é a evidência de que \(K=2\) é uma escolha estrutural real, não um artefato do treino.

5.1 Pergunta

DicaSe calculássemos a Silhueta e o Davies-Bouldin usando os próprios pontos de TREINO em vez da validação, o resultado seria uma validação igualmente confiável da escolha de K?

Pense no que diferencia “medir a qualidade da partição nos mesmos pontos que a definiram” de “medir numa amostra independente”.

  • □ Calcular Silhueta/Davies-Bouldin no próprio conjunto de treino mediria só o quão bem o K-Means otimizou sua função objetivo ali — não diria nada sobre se essa estrutura generaliza, o mesmo problema estrutural da log-verossimilhança de treino na Abertura.
  • □ No caso-limite \(K=N\) (um cluster por ponto de treino), a Silhueta calculada no próprio treino fica matematicamente indefinida, pois cada cluster teria um único ponto e \(a(i)\) não seria calculável.
  • □ Como a Silhueta e o Davies-Bouldin são métricas puramente geométricas (não usam verossimilhança), elas são igualmente confiáveis calculadas no treino ou na validação, diferente do que acontece com log-verossimilhança.
  • □ A mesma lógica de “ajustar num conjunto, validar estabilidade em outro” se aplica a escolher o número de fatores latentes de uma Análise de Componentes Principais (PCA) por variância explicada reconstruída em dados de validação.

6 Validação por Verossimilhança: Modelos Probabilísticos

Para modelos probabilísticos (GMM, e por extensão qualquer modelo com \(p(\mathbf{x}\mid\theta)\) calculável), a avaliação empírica migra da topologia (Bloco 3) para a probabilidade direta: em vez de medir coesão/separação geométrica, congela-se o que foi aprendido no treino e avalia-se a log-verossimilhança preditiva (ou o próprio ELBO, no caso Bayesiano) nas amostras de validação — nunca ajustadas.

Mecânica. Ajuste o GMM com \(K\) componentes só no conjunto de treino, obtendo \(\hat\theta_K\). Calcule \(\ln p(\mathbf{X}_{\text{val}} \mid\hat\theta_K)=\sum_{n\in\text{val}}\ln p(\mathbf{x}_n\mid \hat\theta_K)\) — a mesma fórmula de verossimilhança do treino, só que avaliada em pontos que \(\hat\theta_K\) nunca viu. Diagnóstico de sub/sobreajuste: se o modelo é complexo demais para o treino (um componente colapsando sobre poucos pontos, a mesma singularidade da Abertura), ele concentra densidade quase infinita nesses pontos específicos — mas, ao avaliar pontos de validação (que não coincidem com os de colapso), a densidade ali é baixa, e a log-verossimilhança de validação despenca. É esse descolamento entre as duas curvas — não o valor absoluto de nenhuma delas — que sinaliza sobreajuste.

O padrão é nítido: a log-verossimilhança de treino sobe monotonicamente, de \(-938{,}05\) (\(K=1\)) a \(-808{,}51\) (\(K=10\)) — o mesmo comportamento da Abertura, agora restrito aos \(398\) pontos de treino. A log-verossimilhança de validação, calculada nos \(171\) pontos nunca ajustados, atinge seu máximo em \(K=2\) (\(-361{,}95\)) e, daí em diante, oscila e piora (chegando a \(-376{,}42\) em \(K=10\)) — a curva de validação não acompanha a de treino. Esse descolamento é exatamente o sintoma de sobreajuste que a Abertura previu, agora mostrado de forma empírica, sem precisar de nenhuma priori ou fator de Occam analítico.

Usando a mesma lógica para calibrar \(\alpha_0\) (Bloco 1). A mesma receita — congelar o que foi aprendido no treino, avaliar em validação — serve para comparar hiperparâmetros de priori, não só \(K\). Reajustando o GMM Bayesiano do Bloco 1 só no treino, para os três valores de \(\alpha_0\), e avaliando o score (proporcional ao ELBO médio por amostra) na validação:

\(\alpha_0\) ELBO total (aprox.) na validação
\(0{,}001\) \(-366{,}57\)
\(1{,}0\) \(-366{,}97\)
\(100\) \(-404{,}82\)

A priori mais concentrada (\(\alpha_0=0{,}001\)) generaliza melhor que a mais permissiva (\(\alpha_0=100\)) — a mesma conclusão da Silhueta/DB do Bloco 3 (poucos componentes bastam para este dataset), agora obtida por uma via totalmente diferente (probabilidade em dados novos, não geometria). Duas vias independentes concordando é um sinal forte — mas, como o próximo bloco mostra, ainda não é garantia de que o modelo capturou a estrutura certa.

6.1 Pergunta

DicaSe a log-verossimilhança de validação fosse máxima em K=3 em vez de K=2, isso significaria necessariamente que K=3 é a “estrutura verdadeira” da população de pacientes?

Pense na diferença entre “o critério escolhido aponta para \(K=3\)” e “existem, de fato, três populações distintas de pacientes”.

  • □ A log-verossimilhança de validação, como qualquer critério estimado a partir de uma amostra finita, tem variância de amostragem — um valor máximo em \(K=3\) indicaria que \(K=3\) generalizou melhor nesta divisão treino/validação específica, não uma garantia de que \(3\) é o número “verdadeiro” de populações latentes.
  • □ No caso-limite em que o conjunto de validação tem um único ponto, a log-verossimilhança de validação para qualquer \(K\ge1\) se torna idêntica, pois um único ponto não permite distinguir modelos.
  • □ Como a validação usa dados nunca vistos no ajuste, o \(K\) que maximiza a log-verossimilhança de validação é, por construção, a estrutura verdadeira da população, sem nenhuma incerteza residual.
  • □ O mesmo cuidado (não confundir “o critério aponta para X” com “X é a verdade”) se aplica a escolher o grau de um polinômio de regressão pelo erro quadrático mínimo num conjunto de validação.

7 A Prova Final: Posterior Predictive Checks

Métricas escalares — ELBO, log-verossimilhança de validação, Silhueta — resumem a qualidade do modelo num único número. Mas um número único pode esconder falhas estruturais: um modelo pode ter um bom escore e, ainda assim, não ter capturado a forma real do processo gerador de dados. O teste mais direto contra esse risco não compara números — ele compara dados gerados pelo modelo contra dados reais.

NotaDefinição (checagem preditiva a posteriori — Posterior Predictive Check, PPC; Gelman & Rubin, 1996)

Dado um modelo ajustado (parâmetros \(\hat\theta\), ou uma posterior \(q(\theta)\)), um PPC consiste em: (1) amostrar parâmetros a partir do que foi aprendido (\(\hat\theta\), ou \(\theta\sim q(\theta)\)); (2) gerar um conjunto de dados sintéticos \(\mathbf{X}_{\text{sim}}\) a partir do modelo generativo com esses parâmetros; (3) comparar estatísticas e propriedades de \(\mathbf{X}_{\text{sim}}\) contra as de \(\mathbf{X}_{\text{real}}\) — visualmente (sobrepondo distribuições) ou numericamente (comparando médias, variâncias, formato).

Se o modelo capturou o processo gerador, dados sintéticos devem ser estatisticamente indistinguíveis dos reais, no sentido informal de reproduzir forma, dispersão e demais características relevantes. Se não capturou, o PPC revela onde exatamente a família de modelo (não só o valor de um hiperparâmetro) falhou — informação que nenhuma métrica escalar sozinha entrega.

Aplicando ao GMM do problema-fio. Amostrando \(N=569\) pontos sintéticos do GMM com \(K=2\) (o mesmo ajustado no Bloco 4), e comparando contra os dados reais (ambos padronizados, média \(0\), desvio \(1\) por construção dos dados reais):

A sobreposição é boa: média dos dados sintéticos \((0{,}009,\ 0{,}015)\), essencialmente \(0\) como nos dados reais (por construção); desvio-padrão sintético \((0{,}940,\ 0{,}949)\), próximo de \(1\). Visualmente, os dois “blobs” elípticos — a estrutura que o GMM assume por construção — cobrem a mesma região dos dados reais. Para este dataset especificamente, o PPC confirma o que o ELBO e a Silhueta já sugeriam: \(K=2\), com covariâncias elípticas, é uma família de modelo adequada.

Quando o PPC discorda dos números — um contraexemplo controlado. Nem sempre um bom escore implica um bom PPC. Considere um dataset sintético de duas “luas” entrelaçadas (forma deliberadamente não convexa, usado aqui só para isolar este ponto matemático específico — não é um dado real do curso) e um GMM com \(K=2\), covariância completa, ajustado a ele:

O GMM converge, atinge uma log-verossimilhança total de \(-684{,}75\) — um número que, sozinho, não denuncia nada de anormal — e cobre razoavelmente bem a posição média de cada “lua”. Mas o PPC mostra o que o número esconde: cada componente Gaussiano é elíptico, e uma elipse não consegue reproduzir o formato de crescente de uma lua. Os dados sintéticos se espalham para fora do arco real (o intervalo em \(x_1\) passa de \([-1{,}10,\ 2{,}07]\) nos dados reais para \([-1{,}61,\ 2{,}54]\) no sintético) e preenchem a região côncava entre as duas luas — espaço onde os dados reais têm densidade essencialmente nula. Nenhuma métrica escalar (log-verossimilhança, Silhueta, Davies-Bouldin) captura isso diretamente: todas dependem só da distância/densidade agregada, não da forma. O PPC é o teste que sobra quando o escore parece bom mas a pergunta é “o modelo entendeu a forma do processo gerador, ou só a posição aproximada de cada grupo?”

7.1 Pergunta

DicaSe um GMM tivesse log-verossimilhança de validação ótima E Silhueta ótima num dataset com clusters em forma de lua, isso garantiria que o PPC também passaria?

Releia o exemplo das duas luas: a log-verossimilhança e a Silhueta concordaram em “razoavelmente bom” mesmo com a forma errada — pense se isso é coincidência do exemplo ou um limite estrutural das duas métricas.

  • □ Não necessariamente — tanto a log-verossimilhança quanto a Silhueta são agregados que dependem de densidade/distância entre pontos, não da forma geométrica do cluster; um modelo pode obter bons valores agregados e ainda assim gerar dados com formato visivelmente incompatível com o real, como no exemplo das luas.
  • □ No caso-limite em que os dois clusters do formato de lua estão perfeitamente separados (sem sobreposição alguma na fronteira), o PPC de um GMM elíptico necessariamente coincide pixel a pixel com os dados reais.
  • □ Como a Silhueta e a log-verossimilhança de validação já são calculadas em dados nunca vistos no ajuste, elas automaticamente capturam qualquer incompatibilidade de forma entre o modelo gerador e os dados reais.
  • □ A mesma limitação — métricas agregadas escondendo incompatibilidade de forma — motiva, em modelos generativos de imagens, o uso de inspeção visual das amostras geradas além de métricas escalares como FID (Fréchet Inception Distance).

8 Síntese, Fechamento e Ponte para a Aula 6

Síntese. Selecionar a estrutura de um modelo não supervisionado — \(K\), um hiperparâmetro de priori, \(\epsilon\)/min_samples — nunca se resolve com uma única régua. O Bloco 1 mostrou a via analítica: colocar só \(\pi\) (não \(\mu_k,\Sigma_k\)) dentro do tratamento variacional, com uma priori de verdade, já devolve ao ELBO a propriedade de Occam que o EM clássico não tem — mas essa via troca “escolher \(K\)” por “calibrar hiperparâmetros de priori” (Bloco 2), o mesmo tipo de problema em outra forma. As vias empíricas (Blocos 3–5) não desaparecem por causa disso: para clusterização dura, sem verossimilhança nenhuma, são a única opção (Silhueta/Davies-Bouldin em validação, Bloco 3); para modelos probabilísticos, complementam a via analítica com um teste direto em dados novos (verossimilhança preditiva, Bloco 4); e, mesmo quando todas as métricas escalares concordam, o Posterior Predictive Check (Bloco 5) continua sendo o único teste que compara a forma do processo gerador, não só um número agregado. As três vias empíricas, aplicadas juntas, formam uma checagem mais robusta do que qualquer uma isolada.

Retomando as quatro perguntas da Abertura, uma frase cada:

  1. Uma priori sobre θ resolve o problema de \(K\) sempre crescer? Só a parte certa de \(\theta\)\(\pi\), não \(\mu_k,\Sigma_k\) — precisa virar variável do próprio ELBO (não ponto fixo, o caso do EM clássico); o objeto resultante é o ELBO com KL entre posterior e priori conjunta de \(\mathbf{Z}\) e \(\pi\), cuja penalidade nasce exatamente desse KL.
  2. Trocar \(K\) por hiperparâmetros de priori elimina a subjetividade? Não — desloca de um limite rígido (\(K\)) para um contínuo (\(\alpha_0\)), e o mesmo problema aparece de forma nua no K-Means (sem priori nenhuma) e no DBSCAN (\(\epsilon\), min_samples).
  3. Como validar clusterização dura sem rótulo? Ajustar no treino, medir Silhueta e Davies-Bouldin na validação — duas métricas independentes concordando é evidência de estrutura real.
  4. E para modelos probabilísticos — e existe algo mais definitivo? Verossimilhança preditiva em validação generaliza a mesma lógica; o PPC vai além, comparando dados gerados contra reais diretamente, capturando incompatibilidades de forma que nenhuma métrica escalar enxerga.
DicaPonte para a Aula 6

A partir daqui, a disciplina muda de eixo — não só de método. As Aulas 3–5 trataram a variável não observada como categórica (a qual das \(K\) populações um ponto pertence). A Aula 6 abre a Parte 2 do curso (Redução de Dimensionalidade e Auto-Supervisão) trocando essa variável latente categórica por uma variável latente contínua: em vez de “de qual população este ponto veio?”, a pergunta passa a ser “que posição, num espaço de dimensão bem menor, resume este ponto sem perder o que importa?” — a Análise de Componentes Principais (PCA), sua versão probabilística (PPCA) e sua contrapartida em rede neural (o autoencoder linear). A mesma pergunta de validação desta aula reaparece lá sob nova forma: “quantas dimensões latentes são razoáveis?” também não tem gabarito, e a mesma lógica treino/validação (Bloco 3–4 desta aula) volta a valer. O ELBO construído no Bloco 1 volta a aparecer, de forma central, na Aula 7 — quando a relação entre variável latente e dados observados deixar de ser linear (o Variational Autoencoder) e a posterior \(p(\mathbf{Z}\mid\mathbf{X})\) deixar de ter forma fechada, exigindo justamente a maquinaria de campo médio construída aqui.

Exercícios Soluções