Exercícios — Aula 5: Seleção de Modelos, ELBO e Validação Empírica
Aprendizado Não Supervisionado
Contexto e notação
Um Modelo de Mistura Gaussiana (GMM) explica cada ponto observado \(\mathbf{x}_n\) como amostrado de uma entre \(K\) populações gaussianas, via uma variável latente categórica \(z_n\) (nunca observada), com prior de mistura \(\pi_k=p(z_{nk}=1)\). O Algoritmo EM ajusta os parâmetros \(\theta=\{\mu_k,\Sigma_k,\pi_k\}\) alternando um Passo E (calcular a responsabilidade \(\gamma(z_{nk})=p(z_{nk}=1\mid\mathbf{x}_n,\theta)\)) e um Passo M (reestimar \(\theta\) por máxima verossimilhança ponderada por \(\gamma\)), sem usar nenhuma priori \(p(\theta)\) — busca direto o \(\theta\) de máxima verossimilhança, \(\theta_{\mathrm{ML}}\), com \(K\) fixo. Um sintoma conhecido: a log-verossimilhança de treino de um GMM nunca piora ao aumentar \(K\) (um componente extra sempre pode replicar a solução de \(K-1\) componentes ou colapsar sua covariância sobre um único ponto, levando a densidade ali a divergir) — tornando “maximizar a verossimilhança de treino” um critério inútil para escolher \(K\).
Divergência KL e a decomposição da evidência. Para distribuições \(p(\mathbf{H})\), \(q(\mathbf{H})\) sobre a mesma variável não observada \(\mathbf{H}\) (latente, parâmetro, ou os dois), e usando que, para qualquer função \(f\), \(\int q(\mathbf{H})f(\mathbf{H})\,\mathrm{d} \mathbf{H}=\mathbb{E}_q[f(\mathbf{H})]\) é a esperança de \(f\) sob \(q\), \[ \mathrm{KL}(q\|p) := -\int q(\mathbf{H})\ln\left\{\frac{p(\mathbf{H})}{q(\mathbf{H})}\right\}\mathrm{d}\mathbf{H} = \mathbb{E}_q\!\left[\ln\frac{q(\mathbf{H})}{p(\mathbf{H})}\right] \ge 0, \] com igualdade sse \(q=p\). Para qualquer \(q\) normalizada, \(\ln p(\mathbf{X}) = \mathcal{L}(q) + \mathrm{KL}(q\| p(\mathbf{H}\mid\mathbf{X}))\), onde \(\mathcal{L}(q)\) (o ELBO) é sempre uma cota inferior de \(\ln p(\mathbf{X})\).
Onde \(\mathbf{H}\) entra decide a propriedade do ELBO. Se \(\mathbf{H}=\mathbf{Z}\) só (a escolha do EM clássico, \(\theta=\{\mu_k, \Sigma_k,\pi\}\) inteiro mantido fixo, fora do tratamento variacional, sem prior), o ELBO no ótimo colapsa a \(\ln p(\mathbf{X}\mid \theta_{\mathrm{ML}})\) — a verossimilhança no melhor ponto, sem nenhuma penalidade de complexidade. Não é preciso tornar todo \(\theta\) aleatório para consertar isso: o problema de \(K\) crescer sem limite nasce de como os pesos de mistura \(\pi=(\pi_1,\dots,\pi_K)\) se distribuem (um componente com \(\pi_k\approx0\) já é, na prática, um componente a menos). Basta colocar só \(\pi\) dentro do tratamento variacional, com uma priori de verdade \(p(\pi)\), mantendo \(\mu_k,\Sigma_k\) fixos (exatamente como no EM clássico). Com \(\mathbf{H}=(\mathbf{Z},\pi)\), campo médio \(q(\mathbf{Z},\pi)\approx q(\mathbf{Z})q(\pi)\), e \(\phi:=\{\mu_k,\Sigma_k\}\) os parâmetros que continuam fixos, o ELBO vira \[ \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}}, \] que penaliza pesos de mistura supérfluos pelo custo de se afastar da priori — essa via se chama Inferência Bayesiana Variacional (Variational Bayes), um procedimento diferente do EM clássico.
Priori de Dirichlet e poda automática. A priori \(p(\pi)\) acima é, na prática, uma priori de Dirichlet com parâmetro de concentração \(\alpha_0\): quanto menor \(\alpha_0\), mais a priori já favorece poucos componentes ativos, empurrando os pesos dos componentes supérfluos para perto de zero automaticamente, sem precisar comparar \(\mathcal{L}\) entre rodadas separadas de \(K\).
O dilema dos hiperparâmetros. Trocar “escolher \(K\)” por “calibrar \(\alpha_0\)” desloca a escolha de um conjunto discreto (\(K\in\{1,2,\dots\}\)) para um contínuo (\(\alpha_0>0\)), mas não a elimina. O mesmo tipo de escolha aparece, sem priori nenhuma, no K-Means (o hiperparâmetro é diretamente \(K\)) e no DBSCAN (o raio de vizinhança \(\epsilon\) e o número mínimo de pontos min_samples).
Validação empírica de clusterização “dura” (K-Means, DBSCAN). Sem verossimilhança disponível, a validação usa só a geometria. Primeiro, separam-se os dados em dois subconjuntos disjuntos, sorteados aleatoriamente: um conjunto de treino (usado só para ajustar o modelo — encontrar centroides/regras) e um conjunto de validação (nunca usado no ajuste, usado só para medir a qualidade do resultado depois) — sem essa separação, qualquer métrica favoreceria o próprio ajuste, sem dizer nada sobre generalização. Com essa separação, medem-se, só na validação, duas métricas: o Coeficiente de Silhueta (para um ponto \(i\) no cluster \(C_i\): \(a(i)\) = distância média aos demais pontos do mesmo cluster, \(b(i)\) = menor distância média a um cluster vizinho; \(s(i)=\frac{b(i)-a(i)}{\max\{a(i),b(i)\}}\in[-1,1]\), maior é melhor) e o Índice de Davies-Bouldin — para cada cluster \(C_k\), o centroide \(\mathbf{c}_k\) (ponto médio dos pontos de \(C_k\)) e a dispersão interna \(\sigma_k\) (distância média dos pontos de \(C_k\) ao próprio centroide, ou seja, quão espalhado é o cluster); com esses dois objetos, \(R_{jk}=\frac{\sigma_j+\sigma_k}{\|\mathbf{c}_j-\mathbf{c}_k\|}\) mede o quanto dois clusters são parecidos (dispersos e/ou com centros próximos), e \(\mathrm{DB}=\frac1K\sum_k\max_{j\ne k}R_{jk}\) compara cada cluster ao seu pior vizinho — menor é melhor.
Validação por verossimilhança (modelos probabilísticos). Para um GMM, ajustar \(\theta\) só no treino e avaliar \(\ln p(\mathbf{X}_{\text{val}}\mid\theta)\) — se um componente colapsou sobre poucos pontos de treino (a mesma singularidade acima), a verossimilhança de validação, medida em pontos diferentes, cai, mesmo que a de treino continue subindo; esse descolamento entre as duas curvas sinaliza sobreajuste.
Posterior Predictive Check (PPC). Amostrar parâmetros do que foi aprendido, gerar dados sintéticos \(\mathbf{X}_{\text{sim}}\) a partir do modelo generativo, e comparar suas estatísticas/forma contra os dados reais \(\mathbf{X}_{\text{real}}\). Diferente de métricas escalares (verossimilhança, Silhueta), o PPC compara forma diretamente — por exemplo, um GMM com componentes elípticos, ajustado a clusters em formato de “lua” (não convexos), pode ter log-verossimilhança razoável e ainda assim gerar dados sintéticos que preenchem a região côncava entre as luas, onde os dados reais não têm densidade nenhuma.