Aprendizado Não Supervisionado
2026-09-16
GMM: variável latente \(z_n\) (1-de-\(K\), prior \(\pi_k\)); responsabilidade \(\gamma(z_{nk})=p(z_{nk}=1\mid\mathbf{x}_n)\) via Bayes; EM alterna Passo E (recalcula \(\gamma\)) e Passo M (reestima \(\mu_k,\Sigma_k,\pi_k\) por MLE ponderada), sem solução fechada.
Importante
Em nenhum momento o EM da Aula 4 usa uma priori sobre \(\theta=\{\mu_k,\Sigma_k,\pi_k\}\) — busca direto \(\theta_{\mathrm{ML}}\), com \(K\) fixo. Essa ausência é a raiz do problema desta aula.
Nota
No Breast Cancer Wisconsin (radius_worst/concave points_worst, sem rótulo), o GMM com \(K=2\) mapeou quase perfeitamente para benigno/maligno — mas \(K=2\) foi fixado a priori, nunca escolhido pelos dados.
Pergunta nova: não “como ajustar \(\theta\)” (resolvida), mas “como saber se a estrutura do modelo — \(K\), ou qualquer hiperparâmetro que defina sua forma — é boa, sem rótulo de gabarito?”
Verossimilhança de treino mede só ajuste. Plausibilidade do modelo como um todo exige uma penalidade — de uma priori sobre os parâmetros, ou de dados nunca vistos no ajuste.
1. Uma priori sobre os parâmetros resolve o problema de \(K\) sempre crescer? Que objeto matemático ela produz?
2. Trocar \(K\) por hiperparâmetros de priori elimina a subjetividade, ou só a desloca?
3. Sem rótulo, como validar clusterização dura (K-Means, DBSCAN)?
4. Para modelos probabilísticos, existe algo mais direto — e um teste ainda mais definitivo que qualquer número único?
Reencenando o teste que fechou a Aula 4: GMM para \(K=1,\dots,10\), todos os dados, sem separar validação — de propósito, é isso que vamos questionar.
Mesmo resultado da Aula 4: log-verossimilhança de treino nunca cai, de \(-1339{,}45\) (\(K=1\)) a \(-1169{,}66\) (\(K=10\)).
Importante
Se o critério fosse “maximizar log-verossimilhança usando todos os dados”, a resposta seria sempre “use o maior \(K\) possível”.
Duas soluções complementares: analítica (priori, Bloco 1) e empírica (nunca julgar pelos dados já vistos, Blocos 3–5).
Se 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}\).
Resposta — verossimilhança de treino e complexidade
Voltando à pergunta: sim — o próprio mecanismo que permite \(K\) grande “vencer” no treino (colapso de covariância) já é um sintoma de que o critério está quebrado. Precisamos de uma penalidade — analítica ou empírica.
Toda liberdade extra de um modelo precisa ser paga, ou ele sempre vai preferir usá-la — mesmo só para decorar ruído.
1. Analiticamente, com uma priori \(p(\theta)\): mais complexidade só compensa se o ganho de ajuste superar a distância (KL) até a crença prévia.
2. Empiricamente, com dados nunca vistos: guardar uma fatia de validação — um modelo que só decorou o treino aparece pior ali, sem precisar calcular penalidade nenhuma.
Nota
Via 1 (Bloco 1) resolve \(K\) do GMM, mas cria um problema do mesmo tipo (Bloco 2). Via 2 (Blocos 3–5) nunca desaparece — e é a única disponível para modelos sem verossimilhança fechada (K-Means, DBSCAN).
Definição: \(\mathrm{KL}(q\|p)=-\int q(\mathbf{H})\ln\{p(\mathbf{H})/q(\mathbf{H})\}\,\mathrm{d}\mathbf{H}\) — \(\mathbf{H}\) = qualquer variável não observada (latente, parâmetro, ou os dois). Não simétrica.
Nota
\(\int q(\mathbf{H})f(\mathbf{H})\,\mathrm{d}\mathbf{H} = \mathbb{E}_q[f(\mathbf{H})]\) (esperança de \(f\) sob \(q\)), para qualquer \(f\). Logo, a mesma KL, em notação compacta: \[ \mathrm{KL}(q\|p) = \mathbb{E}_q\!\left[\ln\frac{q(\mathbf{H})}{p(\mathbf{H})}\right] \] — não é objeto novo, só a notação usada daqui em diante.
Nota
Teorema (Gibbs): \(\mathrm{KL}(q\|p)\ge0\), igualdade sse \(q=p\).
Prova. \(-\ln(\cdot)\) convexa \(\Rightarrow\) Jensen: \(-\ln\mathbb{E}_q[X]\le\mathbb{E}_q[-\ln X]\). Com \(X=p(\mathbf{H})/q(\mathbf{H})\): \(\mathrm{KL}(q\|p)\ge-\ln\int p(\mathbf{H})\,\mathrm{d}\mathbf{H}=0\). Igualdade sse \(p=q\). \(\blacksquare\)
Nota
Teorema (decomposição, PRML eq. 10.2): para qualquer \(q(\mathbf{H})\) normalizada, \[ \ln p(\mathbf{X}) = \mathcal{L}(q) + \mathrm{KL}(q\|p(\mathbf{H}\mid\mathbf{X})) \;\Rightarrow\; \mathcal{L}(q)\le\ln p(\mathbf{X}). \]
EM da Aula 4: \(\mathbf{H}=\mathbf{Z}\) só, \(\theta\) fora, fixo — nunca integrado, nunca penalizado. Isso troca o alvo: não mais \(\ln p(\mathbf{X})\), e sim \(\ln p(\mathbf{X}\mid\theta)\) — precisa repetir a conta, condicionando em \(\theta\) do início ao fim.
\(\mathcal{L}(q,\theta):=\int q(\mathbf{Z})\ln\{p(\mathbf{X},\mathbf{Z} \mid\theta)/q(\mathbf{Z})\}\,\mathrm{d}\mathbf{Z}\). Regra do produto (condicionada): \(p(\mathbf{X},\mathbf{Z}\mid\theta)=p(\mathbf{Z}\mid \mathbf{X},\theta)p(\mathbf{X}\mid\theta)\) \(\Rightarrow\) mesma separação de antes, com \(\theta\) em toda parte: \[ \ln p(\mathbf{X}\mid\theta) = \mathcal{L}(q,\theta) + \mathrm{KL}(q(\mathbf{Z})\|p(\mathbf{Z}\mid\mathbf{X},\theta)) \]
Importante
No ótimo: \(\mathcal{L}(q^\star,\theta_{\mathrm{ML}})= \ln p(\mathbf{X}\mid\theta_{\mathrm{ML}})\) — verossimilhança no melhor ponto, sem penalidade nenhuma de complexidade.
Não precisa tornar todo \(\theta=\{\mu_k,\Sigma_k,\pi\}\) aleatório — \(K\) crescer sem limite vem só de como \(\pi\) se distribui (\(\pi_k\approx 0\) = componente morto). \(\mu_k,\Sigma_k\) ficam fixos, como no EM clássico; abrevie \(\phi:=\{\mu_k,\Sigma_k\}\).
\(\mathbf{H}=(\mathbf{Z},\pi)\), campo médio \(q(\mathbf{Z},\pi)\approx q(\mathbf{Z})q(\pi)\) (PRML §10.1): \[ \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: dado \(\mathbf{Z}\) e \(\phi\), \(\mathbf{X}\) não depende mais de \(\pi\) (\(\pi\) só decide qual componente, não a forma dele) — \(p(\mathbf{X}\mid\mathbf{Z},\pi,\phi)=p(\mathbf{X}\mid\mathbf{Z},\phi)\). Produto: \(p(\mathbf{X},\mathbf{Z},\pi\mid\phi)=p(\mathbf{X}\mid \mathbf{Z},\phi)\,p(\mathbf{Z},\pi\mid\phi)\).
Passos 2-3: substitui no log, separa a integral dupla em dois termos — mesma mecânica de antes, agora com \(\pi\) e \(\phi\) no lugar de \(\theta\).
Passo 4: o termo de ajuste não depende de \(\pi\) \(\Rightarrow\int q(\pi)\,\mathrm{d}\pi=1\) elimina \(\pi\) dele: \[ \iint q(\mathbf{Z})q(\pi)\ln p(\mathbf{X}\mid\mathbf{Z},\phi)\,\mathrm{d}\mathbf{Z}\,\mathrm{d}\pi = \mathbb{E}_{q(\mathbf{Z})}[\ln p(\mathbf{X}\mid\mathbf{Z},\phi)] \] Ganho concreto de isolar só \(\pi\): esperança só sobre \(\mathbf{Z}\).
Passo 5: segundo termo = \(\mathrm{KL}(q(\mathbf{Z},\pi)\|p(\mathbf{Z},\pi\mid\phi))\) (mesma definição de esperança de KL). Logo: \[ \mathcal{L}(q,\phi) = \underbrace{\mathbb{E}_{q(\mathbf{Z})}[\ln p(\mathbf{X}\mid\mathbf{Z},\phi)]}_{\text{ajuste}} - \underbrace{\mathrm{KL}(q(\mathbf{Z},\pi)\|p(\mathbf{Z},\pi\mid\phi))}_{\text{Navalha de Occam}} \]
Nota
\(\mu_k,\Sigma_k\) continuam fixos, sem priori — toda a penalidade vem de \(\pi\). Variational Bayes (restrito a \(\pi\)): procedimento diferente do EM (otimiza \(q(\mathbf{Z})\) e \(q(\pi)\), não \(q(\mathbf{Z})\) e um ponto \(\pi\)).
GMM Bayesiano: priori de Dirichlet em \(\pi\), concentração \(\alpha_0\) — menor \(\alpha_0\) = crê a priori em menos componentes ativos. \(K=8\) “de sobra”, Breast Cancer Wisconsin, três valores de \(\alpha_0\):
Importante
BayesianGaussianMixture (scikit-learn) vai além do que derivamos: também trata \(\mu_k,\Sigma_k\) variacionalmente (prioris Normal-Wishart) — não desenvolvido aqui. O mecanismo de poda que importa nesta aula vem só da priori sobre \(\pi\).
\(\alpha_0=0{,}001\): pesos \((0{,}6045,\ 0{,}3955,\ 0,\dots)\) — 2 componentes, resto exatamente zerado.
\(\alpha_0=1{,}0\): \((0{,}582,\ 0{,}355,\ 0{,}061,\dots)\) — poda mais suave, um 3º componente pequeno sobrevive.
\(\alpha_0=100\): 4 componentes com peso \(>1\%\) — priori mais permissiva, “deixa” o modelo usar mais estrutura antes de penalizar.
Importante
\(\alpha_0\) virou um botão que controla quantos componentes sobrevivem — o problema do próximo bloco.
Se 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.
Resposta — a priori certa é sobre π, não sobre μ,Σ
Voltando à pergunta: não — priori sobre \(\mu_k,\Sigma_k\) não ataca a raiz do problema, que é como \(\pi\) se distribui entre os componentes. É colocar \(\pi\), especificamente, dentro do tratamento variacional, com um prior de verdade, que devolve a propriedade de Occam.
Bloco 1 resolveu \(K\) para o GMM — trocando “qual \(K\)?” por “qual \(\alpha_0\)?”. Não é coincidência do GMM: é um padrão.
GMM Bayesiano: \(\alpha_0\) (concentração da priori de Dirichlet). K-Means: \(K\) direto, sem priori nenhuma. DBSCAN (Aula 3, via HDBSCAN): \(\epsilon\), min_samples.
Limite rígido (\(K\in\{1,2,\dots\}\)) \(\to\) limite elástico (\(\alpha_0\in\mathbb{R}_{>0}\)) — não elimina subjetividade, só desloca.
Importante
K-Means nem tem priori — seu \(K\) precisa de outra calibração inteira. Sem métrica supervisionada (acurácia, MSE), como calibrar e validar qualquer uma dessas escolhas? Blocos 3–5 respondem.
K-Means/DBSCAN não têm verossimilhança — única via é empírica. Passo preliminar novo: separar os dados — sortear uma fração como treino (ajusta o modelo) e reservar o resto, nunca tocado no ajuste, como validação (só mede o resultado depois).
Importante
Por quê: métrica calculada nos mesmos pontos que moldaram o modelo favorece o próprio ajuste (mesmo problema da Abertura) — medir em pontos nunca vistos é o único jeito honesto de testar generalização.
“Validação” aqui não é acerto contra gabarito, é estabilidade topológica: a estrutura do treino se mantém em dados novos?
Receita: ajustar (centroides/regras) só no treino, aplicar à validação, medir a qualidade da partição só ali.
Rousseeuw (1987): \(a(i)\) = coesão (distância média ao próprio cluster); \(b(i)\) = separação (distância média ao cluster vizinho mais próximo). \[ s(i) = \frac{b(i)-a(i)}{\max\{a(i),b(i)\}}\in[-1,1] \]
Nota
Próximo de \(1\): clusters bem separados/coesos. Próximo de \(0\): sobrepostos. Negativo: ponto provavelmente mal atribuído.
Para cada cluster \(C_k\): centroide \(\mathbf{c}_k:=\frac{1}{|C_k|}\sum_{\mathbf{x}\in C_k}\mathbf{x}\) (ponto médio do cluster) e dispersão interna \(\sigma_k:=\frac{1}{|C_k|}\sum_{\mathbf{x}\in C_k}\|\mathbf{x}-\mathbf{c}_k\|\) (distância média dos pontos ao próprio centroide — quão “espalhado” é o cluster).
Davies & Bouldin (1979): similaridade entre dois clusters \(R_{jk}=\dfrac{\sigma_j+\sigma_k}{\|\mathbf{c}_j-\mathbf{c}_k\|}\) — numerador soma a dispersão dos dois, denominador é a distância entre seus centros. \(R_{jk}\) grande = clusters dispersos ou centros próximos — difíceis de distinguir.
\[ \mathrm{DB} = \frac1K\sum_k \max_{j\ne k} R_{jk} \] Cada cluster comparado ao seu pior (mais parecido) vizinho, média sobre os \(K\) clusters.
Importante
Menor é melhor aqui (diferente da Silhueta).
Ajustar no treino, medir na validação já é um teste de perturbação: estrutura real se mantém numa amostra diferente da mesma população; estrutura de sobreajuste desaparece (Silhueta cai, DB sobe).
Treino \(N=398\), validação \(N=171\) (\(30\%\), nunca usada no ajuste). K-Means para \(K=2,\dots,8\) no treino, Silhueta/DB calculados só na validação.
Silhueta (validação): máxima em \(K=2\) (\(0{,}593\)), cai até \(K=8\) (\(0{,}315\)).
Davies-Bouldin (validação): mínimo em \(K=2\) (\(0{,}590\)), sobe até \(K=8\) (\(0{,}979\)).
Nota
Nenhuma métrica usa rótulo. Duas métricas independentes concordando, medidas em dados nunca vistos no ajuste, é evidência de estrutura real — não artefato do treino.
Se 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”.
Resposta — treino vs. validação nas métricas intrínsecas
Voltando à pergunta: não — medir no próprio treino testaria só o ajuste, o mesmo erro conceitual da Abertura. A validação genuína exige dados que o algoritmo nunca usou para decidir centroides/regras.
Modelos probabilísticos (GMM): congelar \(\hat\theta_K\) (aprendido no treino), avaliar \(\ln p(\mathbf{X}_{\text{val}}\mid\hat\theta_K)\) — mesma fórmula de verossimilhança, pontos nunca vistos.
Importante
Diagnóstico: modelo complexo demais colapsa densidade sobre poucos pontos de treino (singularidade da Abertura) — na validação, esses pontos não existem, e a log-verossimilhança de validação despenca. O descolamento entre as curvas sinaliza sobreajuste.
Treino: \(-938{,}05\) (\(K=1\)) a \(-808{,}51\) (\(K=10\)), monotônico — mesmo padrão da Abertura, restrito aos 398 pontos de treino.
Validação: máximo em \(K=2\) (\(-361{,}95\)), oscila e piora depois (\(-376{,}42\) em \(K=10\)) — não acompanha o treino.
Nota
O descolamento entre as curvas é o sintoma de sobreajuste — mostrado empiricamente, sem priori nem fator de Occam analítico.
GMM Bayesiano do Bloco 1, reajustado só no treino, avaliado na validação (ELBO total aprox.):
| \(\alpha_0\) | ELBO na validação |
|---|---|
| \(0{,}001\) | \(-366{,}57\) |
| \(1{,}0\) | \(-366{,}97\) |
| \(100\) | \(-404{,}82\) |
Importante
Priori concentrada generaliza melhor que a permissiva — mesma conclusão da Silhueta/DB (Bloco 3), por uma via totalmente diferente. Duas vias concordando é forte — mas não é garantia final (próximo bloco).
Se 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”.
Resposta — validação escolhe, não garante “a verdade”
Voltando à pergunta: não — a validação escolhe a estrutura que generaliza melhor nesta amostra, uma estimativa sujeita a variância, não uma prova definitiva da estrutura populacional real.
ELBO, log-verossimilhança de validação, Silhueta: cada um resume a qualidade num único número — pode esconder falha estrutural (bom escore, forma errada).
Nota
Definição (PPC — Gelman & Rubin, 1996): (1) amostrar \(\theta\) aprendido; (2) gerar \(\mathbf{X}_{\text{sim}}\) do modelo generativo; (3) comparar \(\mathbf{X}_{\text{sim}}\) contra \(\mathbf{X}_{\text{real}}\) — visual ou numericamente.
Média sintética \((0{,}009,\ 0{,}015)\) (real: \(0\)); desvio sintético \((0{,}940,\ 0{,}949)\) (real: \(1\)). Visualmente, os “blobs” elípticos cobrem a mesma região dos dados reais.
Nota
Para este dataset, o PPC confirma o que ELBO e Silhueta já sugeriam: \(K=2\) elíptico é família adequada.
Log-verossimilhança total: \(-684{,}75\) — nada de anormal, sozinho. Cobre razoavelmente a posição média de cada lua.
Importante
PPC revela o que o número esconde: componentes elípticos não reproduzem a forma de crescente. Sintético se espalha além do arco real (\(x_1\in[-1{,}61,2{,}54]\) vs. real \([-1{,}10,2{,}07]\)) e preenche a região côncava entre as luas — onde os dados reais não têm densidade.
Nota
Nenhuma métrica escalar (log-verossimilhança, Silhueta, DB) captura isso — todas dependem de densidade/distância agregada, não de forma. O PPC é o teste que sobra quando o escore parece bom mas a forma pode estar errada.
Se 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.
Resposta — métricas agregadas vs. forma geométrica
Voltando à pergunta: não — boas métricas agregadas não garantem forma correta. O PPC é o único dos testes desta aula que compara forma diretamente, e por isso captura falhas que os outros dois (Bloco 3 e Bloco 4) estruturalmente não conseguem ver.
Analítica (Bloco 1): só \(\pi\) (não \(\mu_k,\Sigma_k\)) dentro do ELBO, com priori, já devolve a propriedade de Occam — mas troca \(K\) por hiperparâmetros de priori (Bloco 2).
Empíricas (Blocos 3–5): única opção para clusterização dura (Silhueta/ DB); complementam a via analítica para modelos probabilísticos (verossimilhança em validação); PPC continua sendo o único teste de forma.
Nota
As três vias empíricas, juntas, formam uma checagem mais robusta que qualquer uma isolada.
1. Priori sobre θ resolve \(K=N\) só na parte certa: \(\pi\) precisa virar variável do ELBO, não \(\mu_k,\Sigma_k\) — a penalidade nasce do KL entre posterior e priori conjunta de \(\mathbf{Z}\) e \(\pi\).
2. Trocar \(K\) por hiperparâmetros de priori desloca a subjetividade (rígido \(\to\) contínuo), não a elimina — visível também no K-Means e no DBSCAN.
3. Clusterização dura: ajustar no treino, medir Silhueta/DB na validação — concordância entre métricas independentes é evidência de estrutura real.
4. Modelos probabilísticos: verossimilhança preditiva em validação; PPC vai além, comparando dados gerados vs. reais, capturando forma.
Ponte para a Aula 6
Mudança de eixo: variável latente categórica (Aulas 3–5) \(\to\) contínua (Aula 6, Parte 2: Redução de Dimensionalidade). PCA, PPCA, autoencoder linear — a mesma pergunta de validação (“quantas dimensões latentes?”) reaparece, mesma lógica treino/validação. ELBO volta na Aula 7 (VAE), quando a posterior deixar de ter forma fechada e a maquinaria de campo médio desta aula for necessária de novo.
UNICAMP — Instituto de Computação