Aprendizado Não Supervisionado
2026-10-07
Autoencoder linear \(\equiv\) PCA. Rede \(D\)-\(M\)-\(D\) linear calcula \(\mathbf{A}\mathbf{x}\), \(\mathrm{posto}(\mathbf{A})\le M\) \(\Rightarrow\) reconstruções num subespaço de dim. \(\le M\) \(\Rightarrow\) o melhor é o subespaço principal.
Aviso
DLFC §19.1.1, p. 565 (tradução livre): “mesmo com unidades ocultas não lineares, a solução de erro mínimo é novamente dada pela projeção sobre o subespaço dos componentes principais”. Trocar a ativação não basta.
PPCA: \(\mathbf{z}\sim\mathcal{N}(\mathbf{0},\mathbf{I})\), \(\mathbf{x}=\mathbf{W}\mathbf{z}+\boldsymbol\mu+\boldsymbol\epsilon\), \(\boldsymbol\epsilon\sim\mathcal{N}(\mathbf{0},\sigma^2\mathbf{I})\). Tudo linear-Gaussiano \(\Rightarrow\) posterior fechada (PRML eq. 12.42): \[ p(\mathbf{z}\mid\mathbf{x})=\mathcal{N}\!\left(\mathbf{B}^{-1}\mathbf{W}^T(\mathbf{x}-\boldsymbol\mu),\;\sigma^2\mathbf{B}^{-1}\right), \quad \mathbf{B}=\mathbf{W}^T\mathbf{W}+\sigma^2\mathbf{I}_M. \] - Um “encoder” exato, linear em \(\mathbf{x}\), saído de Bayes; covariância não depende de \(\mathbf{x}\).
Para qualquer \(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\ln\frac{p(\mathbf{X},\mathbf{H})}{q}\,\mathrm{d}\mathbf{H}. \]
Importante
Nos dois casos o passo E só existiu porque a posterior tinha forma fechada.
Uma única troca: \(\mathbf{W}\mathbf{z}+\boldsymbol\mu\;\longrightarrow\;\mathbf{g}(\mathbf{z},\mathbf{w})\) (rede neural).
Importante
Segunda pergunta: sorteando \(2\) números quaisquer e passando pelo decoder, sai um dígito?
Se o decoder fosse uma função afim de \(\mathbf{z}\), \(\hat{\mathbf{x}}=\mathbf{B}\mathbf{z}+\mathbf{c}\), que forma teria o conjunto de todas as reconstruções possíveis, por mais complicado que fosse o encoder?
Pense no conjunto \(\{\mathbf{B}\mathbf{z}+\mathbf{c}:\mathbf{z}\in\mathbb{R}^M\}\) e no que o encoder pode e não pode mudar nele.
Julgue V ou F
Julgue V ou F — Resposta
Voltando à pergunta: um subespaço afim \(\mathbf{c}+\mathcal{C}(\mathbf{B})\) de dimensão \(\le M\), um “plano”. O encoder só escolhe em que ponto do plano cada \(\mathbf{x}\) cai; não pode curvar o plano. A curvatura tem de vir do decoder.
Nota
DLFC, p. 496 (tradução livre): “a variedade será não linear porque, se transladarmos o dígito passando por um pixel, o valor desse pixel vai de zero (branco) a um (preto) e de volta a zero”.
Importante
Os dois AEs têm não linearidade. A diferença é onde: só no profundo há camadas não lineares entre \(\mathbf{z}\) e \(\hat{\mathbf{x}}\).
Nota
Definição (DLFC §19.1.2):
Nota
DLFC p. 566 (tradução livre): “uma forma não linear de PCA […] contém a PCA como caso particular. Porém, o treino envolve otimização não linear […] risco de mínimo local subótimo. Além disso, a dimensão do subespaço precisa ser especificada antes do treino.”
Breast Cancer, \(M=2\), treino 455 / teste 114; AE profundo com 8.288 parâmetros:
| PCA | AE raso | AE profundo | |
|---|---|---|---|
| erro treino | 0,363 | 0,366 | 0,112 |
| erro teste | 0,307 | 0,310 | 0,425 |
| acurácia (logística, teste) | 91,2% | — | 93,9% (diferença: 3 de 114 pacientes) |
Importante
Treino \(\div3\), teste pior: memorização (double-dipping, Aula 5). Com \(455\) pacientes e estrutura quase linear, não há curvatura que a amostra sustente. No MNIST (\(20\,000\) imagens, variedade curva) a flexibilidade compensa.
No Breast Cancer, o AE profundo reduz o erro de treino a um terço do da PCA e piora no teste. O que mudaria esse resultado: mais camadas, mais pacientes ou um \(M\) maior?
Separe o que aumenta a capacidade do modelo do que aumenta a informação disponível para ajustá-lo.
Julgue V ou F
Julgue V ou F — Resposta
Voltando à pergunta: mais camadas ou \(M\) maior aumentam a capacidade e tendem a piorar o sobreajuste. O que ajuda é mais pacientes (mais informação para sustentar a curvatura) ou restringir a capacidade (rede menor, regularização, parada antecipada guiada por um conjunto de validação). E, antes disso, conferir se há curvatura real: com estrutura quase linear, a PCA já é o modelo adequado.
Nota
DLFC p. 564 (tradução livre): “autoencoders simples […] não fornecem representações semanticamente significativas no espaço latente e não são capazes de gerar diretamente novos exemplos”.
Importante
Falta o que a PPCA tinha: \(p(\mathbf{z})\) fixada e \(p(\mathbf{x}\mid\mathbf{z})\), isto é, um modelo gerador.
Ajustar uma distribuição aos códigos do AE já treinado (uma Gaussiana, ou um GMM da Aula 4) e sortear dela resolveria o problema de gerar?
Pense no que essa distribuição ajustada consegue corrigir e no que fica igual: o decoder foi treinado olhando para quais pontos de \(\mathbf{z}\)?
Julgue V ou F
Julgue V ou F — Resposta
Voltando à pergunta: ajuda em parte. A distribuição ajustada descreve onde os códigos estão e reduz amostras nos buracos, mas o decoder continua sem treino fora dos códigos, a forma da nuvem é acidente do treino e não há verossimilhança para comparar modelos. O VAE resolve na direção oposta: fixa \(p(\mathbf{z})\) antes e treina encoder e decoder para respeitá-la.
Nota
Definição (DLFC 16.80, 19.5):
\[ p(\mathbf{x}\mid\mathbf{w})=\int p(\mathbf{x}\mid\mathbf{z},\mathbf{w})\,p(\mathbf{z})\,\mathrm{d}\mathbf{z}\;\;(19.4), \qquad p(\mathbf{z}\mid\mathbf{x},\mathbf{w})=\frac{p(\mathbf{x}\mid\mathbf{z},\mathbf{w})\,p(\mathbf{z})}{p(\mathbf{x}\mid\mathbf{w})}\;\;(19.12). \]
Nota
DLFC p. 571 (tradução livre): “o numerador é fácil de avaliar […]. Porém, o denominador é a verossimilhança, que é intratável”. E a posterior pode ser até bimodal com priori unimodal (Fig. 19.7).
No AE, o encoder devolvia um ponto \(\mathbf{z}_n=\mathbf{f}(\mathbf{x}_n,\boldsymbol\phi)\). No VAE, devolve duas saídas por coordenada: média \(\mu_j\) e log-variância \(\ln\sigma_j^2\) (o log garante \(\sigma_j^2>0\)).
Nota
Definição (encoder Gaussiano diagonal; DLFC 19.13): \(q(\mathbf{z}\mid\mathbf{x},\boldsymbol\phi)=\prod_{j=1}^M\mathcal{N}\big(z_j\mid\mu_j(\mathbf{x},\boldsymbol\phi),\sigma_j^2(\mathbf{x},\boldsymbol\phi)\big)\).
O que se modela: cada \(\mathbf{x}_n\) vira uma nuvem de códigos compatíveis com ele (a), não um código único; decodificada, a nuvem é uma família de dados parecidos com \(\mathbf{x}_n\). Em (b), \(q\) aproxima a posterior, no sentido inverso ao da geração.
Nota
Definição (VAE; DLFC §19.2): o modelo gerador mais o encoder \(q(\mathbf{z}\mid\mathbf{x},\boldsymbol\phi)\), com \((\mathbf{w},\boldsymbol\phi)\) ajustados conjuntamente maximizando a soma dos ELBOs dos pontos de treino.
DLFC pp. 569–570: o VAE combina três ideias. (i) ELBO, com relação próxima ao EM (Bloco 4). (ii) Inferência amortizada (este slide). (iii) Reparametrização (Bloco 5).
| PPCA (Aula 6) | VAE | |
|---|---|---|
| \(p(\mathbf{x}\mid\mathbf{z})\) | \(\mathcal{N}(\mathbf{W}\mathbf{z}+\boldsymbol\mu,\sigma^2\mathbf{I})\) | \(\mathcal{N}(\mathbf{g}(\mathbf{z},\mathbf{w}),\sigma^2\mathbf{I})\) |
| \(p(\mathbf{x})\) | \(\mathcal{N}(\boldsymbol\mu,\mathbf{W}\mathbf{W}^T+\sigma^2\mathbf{I})\) | sem forma fechada |
| “encoder” | posterior exata (12.42), linear em \(\mathbf{x}\) | \(q(\mathbf{z}\mid\mathbf{x},\boldsymbol\phi)\), rede |
| incerteza de \(\mathbf{z}\) | \(\sigma^2\mathbf{B}^{-1}\), fixa | \(\sigma_j^2(\mathbf{x},\boldsymbol\phi)\), varia |
| folga do ELBO | zero | positiva em geral |
| ajuste | forma fechada / EM | gradiente estocástico |
Importante
DLFC p. 573: otimizar \(\boldsymbol\phi\) “não reduz, em geral, a KL a zero, porque o encoder não é um preditor perfeito da posterior”. O passo E deixa de ser exato.
Por que não otimizar uma \(q_n(\mathbf{z}_n)\) separada para cada ponto, como faria um passo E aproximado ponto a ponto? O que se ganha e o que se perde ao usar um único encoder para todos os pontos?
Compare as duas opções em custo para um ponto novo e em quão perto cada uma consegue chegar da posterior de cada ponto.
Julgue V ou F
Julgue V ou F — Resposta
Voltando à pergunta: com uma \(q_n\) por ponto, cada aproximação pode chegar mais perto da sua posterior, mas são \(N\) otimizações, refeitas a cada passo em \(\mathbf{w}\), e um ponto novo exige mais uma. O encoder único torna a inferência uma passagem pela rede e compartilha informação entre pontos parecidos. Perde-se a precisão por ponto: a rede impõe uma função suave \(\mathbf{x}\mapsto(\boldsymbol\mu,\boldsymbol\sigma)\), e a folga resultante soma-se à da família Gaussiana diagonal.
Passo 1 — decomposição da Aula 5 (\(\mathbf{H}=\mathbf{z}_n\), \(q=q(\mathbf{z}_n\mid\mathbf{x}_n,\boldsymbol\phi)\)): \[ \ln p(\mathbf{x}_n\mid\mathbf{w})=\mathcal{L}_n(\mathbf{w},\boldsymbol\phi)+\mathrm{KL}\big(q\,\|\,p(\mathbf{z}_n\mid\mathbf{x}_n,\mathbf{w})\big). \]
Passo 2 — definição do ELBO, \(p(\mathbf{x}_n,\mathbf{z}_n)=p(\mathbf{x}_n\mid\mathbf{z}_n,\mathbf{w})p(\mathbf{z}_n)\): \[ \mathcal{L}_n=\int q\,\ln\frac{p(\mathbf{x}_n\mid\mathbf{z}_n,\mathbf{w})\,p(\mathbf{z}_n)}{q}\,\mathrm{d}\mathbf{z}_n . \]
Passo 3 — \(\ln\) de produto = soma de \(\ln\): \[ \mathcal{L}_n=\int q\,\ln p(\mathbf{x}_n\mid\mathbf{z}_n,\mathbf{w})\,\mathrm{d}\mathbf{z}_n+\int q\,\ln\frac{p(\mathbf{z}_n)}{q}\,\mathrm{d}\mathbf{z}_n . \]
Passo 4 — definição de KL (\(\mathrm{KL}(q\|p)=-\int q\ln\{p/q\}\)): \[ \boxed{\;\mathcal{L}_n=\mathbb{E}_{q}\big[\ln p(\mathbf{x}_n\mid\mathbf{z}_n,\mathbf{w})\big]-\mathrm{KL}\big(q(\mathbf{z}_n\mid\mathbf{x}_n,\boldsymbol\phi)\,\|\,p(\mathbf{z}_n)\big)\;}\quad(19.14) \]
As duas equações do slide anterior, com as KLs nomeadas: \[ \ln p(\mathbf{x}_n\mid\mathbf{w})=\mathcal{L}_n+\underbrace{\mathrm{KL}\big(q\,\|\,p(\mathbf{z}_n\mid\mathbf{x}_n,\mathbf{w})\big)}_{\text{KL até a posterior}}, \qquad \mathcal{L}_n=\mathbb{E}_q\big[\ln p(\mathbf{x}_n\mid\mathbf{z}_n,\mathbf{w})\big]-\underbrace{\mathrm{KL}\big(q\,\|\,p(\mathbf{z}_n)\big)}_{\text{KL até a priori}}. \]
| KL até a posterior | KL até a priori | |
|---|---|---|
| compara \(q\) com | \(p(\mathbf{z}_n\mid\mathbf{x}_n,\mathbf{w})\) | \(p(\mathbf{z}_n)=\mathcal{N}(\mathbf{0},\mathbf{I})\) |
| calculável? | não: depende de \(p(\mathbf{x}_n\mid\mathbf{w})\) | sim: forma fechada (fórmula nas notas) |
| papel | folga entre a cota e \(\ln p(\mathbf{x}_n\mid\mathbf{w})\) | termo do objetivo (regularização) |
Importante
Só a KL até a priori aparece em \(\mathcal{L}_n\). Com \(\mathbf{w}\) fixo, \(\ln p(\mathbf{x}_n\mid\mathbf{w})\) não depende de \(\boldsymbol\phi\); então maximizar \(\mathcal{L}_n\) em \(\boldsymbol\phi\) equivale a reduzir a folga, sem nunca calculá-la.
Onde paramos: \(\mathcal{L}_n=\mathbb{E}_q\big[\ln p(\mathbf{x}_n\mid\mathbf{z}_n,\mathbf{w})\big]-\mathrm{KL}\big(q\,\|\,p(\mathbf{z}_n)\big)\).
Passo 5 — independência entre pontos e \(\mathrm{KL}\ge0\) (Gibbs, Aula 5): \[ \ln p(\mathcal{D}\mid\mathbf{w})=\sum_n\ln p(\mathbf{x}_n\mid\mathbf{w})=\sum_n\mathcal{L}_n+\sum_n\mathrm{KL}\big(q\,\|\,p(\mathbf{z}_n\mid\mathbf{x}_n,\mathbf{w})\big)\ge\sum_n\mathcal{L}_n\quad(19.10). \]
Passo 6 — log da Gaussiana: \(\ln\mathcal{N}(\mathbf{x}\mid\mathbf{g},\sigma^2\mathbf{I})=-\tfrac D2\ln(2\pi\sigma^2)-\tfrac{1}{2\sigma^2}\|\mathbf{x}-\mathbf{g}\|^2\).
Passo 7 — perda por ponto: \[ -\mathcal{L}_n=\underbrace{\frac{1}{2\sigma^2}\,\mathbb{E}_{q}\big\|\mathbf{x}_n-\mathbf{g}(\mathbf{z}_n,\mathbf{w})\big\|^2}_{\text{reconstrução}} +\underbrace{\mathrm{KL}\big(q\,\|\,p(\mathbf{z}_n)\big)}_{\text{regularização}} +\underbrace{\tfrac D2\ln(2\pi\sigma^2)}_{\text{const.}} \]
Importante
O erro quadrático do AE reaparece como log-verossimilhança Gaussiana. Bernoulli em \(p(\mathbf{x}\mid\mathbf{z})\) \(\to\) entropia cruzada; o termo KL não muda.
| \(\beta\) | erro/pixel | KL média | \(\sigma_{nj}\) médio | dp de \(\mu_{nj}\) |
|---|---|---|---|---|
| \(0\) | 0,0377 | 39,5 | 0,0010 | 3,87 |
| \(1\) | 0,0375 | 7,3 | 0,0373 | 1,18 |
| \(20\) | 0,0443 | 2,2 | 0,3446 | 0,94 |
Identidade (amostragem por importância):
Importante
A folga do Bloco 3, medida: o ELBO fica abaixo de \(\ln p(\mathbf{x})\) porque o encoder não reproduz a posterior (DLFC Fig. 19.8).
Sem o termo KL (\(\beta=0\)), o encoder levou \(\sigma_{nj}\) a quase zero. Por que o treino “quer” eliminar o ruído da amostragem, e o que exatamente o termo KL faz para impedir isso?
Olhe para cada termo da perda separadamente: como o primeiro reage a \(\sigma_{nj}\) grande, e como o segundo reage a \(\sigma_{nj}\to0\)?
Julgue V ou F
Julgue V ou F — Resposta
Voltando à pergunta: o termo de reconstrução é avaliado em \(\mathbf{z}=\boldsymbol\mu+\boldsymbol\sigma\odot\boldsymbol\epsilon\): quanto maior \(\boldsymbol\sigma\), mais longe do ponto ideal o decoder recebe o código, e pior a reconstrução esperada. Sozinho, ele leva \(\boldsymbol\sigma\to0\). A parcela \(-\tfrac12\ln\sigma_j^2\) da KL cresce sem limite nesse caso, e o equilíbrio fica num \(\sigma_{nj}>0\): cada dado ocupa uma nuvem, e o decoder aprende a responder bem a toda ela.
Nota
DLFC p. 575 (tradução livre): “mudanças em \(\boldsymbol\phi\) mudam a distribuição da qual as amostras são tiradas, e no entanto essas amostras são valores fixos”: a amostragem bloqueia o gradiente.
Problema geral: \(\nabla_{\boldsymbol\phi}\mathbb{E}_{q(\mathbf{z}\mid\boldsymbol\phi)}[f(\mathbf{z})]\). Dois estimadores.
1. Score function (DLFC Ex. 19.1): \(\nabla_{\boldsymbol\phi}q=q\,\nabla_{\boldsymbol\phi}\ln q\) \(\Rightarrow\) \[ \nabla_{\boldsymbol\phi}\mathbb{E}_q[f]=\mathbb{E}_q\big[f(\mathbf{z})\,\nabla_{\boldsymbol\phi}\ln q(\mathbf{z}\mid\boldsymbol\phi)\big]. \] - Só valores de \(f\); serve para \(\mathbf{z}\) discreta. Não enviesado, mas variância alta (Williams, 1992): \(f\) entra multiplicando.
Nota
Lema (DLFC 19.17, Ex. 19.2): \(\epsilon\sim\mathcal{N}(0,1)\), \(\sigma>0\) \(\Rightarrow\) \(\mu+\sigma\epsilon\sim\mathcal{N}(\mu,\sigma^2)\). Prova: \(P(\mu+\sigma\epsilon\le t)=\Phi\big(\tfrac{t-\mu}{\sigma}\big)\). Vetorial: componentes independentes.
2. Reparametrização (pathwise): mesma distribuição \(\Rightarrow\) mesma esperança, e \(\boldsymbol\epsilon\) não depende de \(\boldsymbol\phi\): \[ \nabla_{\boldsymbol\phi}\mathbb{E}_q[f(\mathbf{z})] =\mathbb{E}_{\boldsymbol\epsilon}\big[\nabla_{\boldsymbol\phi}f(\boldsymbol\mu+\boldsymbol\sigma\odot\boldsymbol\epsilon)\big] =\mathbb{E}_{\boldsymbol\epsilon}\Big[\Big(\tfrac{\partial\mathbf{z}}{\partial\boldsymbol\phi}\Big)^T\nabla_{\mathbf{z}}f\Big]. \] - Usa a derivada de \(f\) (backpropagation). Limite: só variáveis contínuas (DLFC p. 575). - DLFC (19.18) e Alg. 19.1 imprimem \(\mu_j\epsilon+\sigma_j^2\); o correto é \(\mu_j+\sigma_j\epsilon\).
| média (erro-padrão) | desvio-padrão | |
|---|---|---|
| pathwise | -31,5 (0,3) | 27,1 |
| score function | -44,8 (8,8) | 875,1 |
Importante
DLFC p. 575: a reparametrização é “também uma técnica de redução de variância”. Na prática, \(L=1\) amostra por ponto (DLFC p. 576).
Importante
Amostras borradas: o decoder devolve a média de \(p(\mathbf{x}\mid\mathbf{z})\); um \(\mathbf{z}\) compatível com várias formas dá a média delas.
O truque exige \(\mathbf{z}\) contínua. Num modelo com latente categórica (um GMM da Aula 4 com decoder neural, digamos), como se obteria o gradiente do termo de reconstrução em relação aos parâmetros do encoder?
Releia o que cada estimador precisa saber sobre \(f\) e sobre \(q(\mathbf{z}\mid\boldsymbol\phi)\); e pense em quantos valores uma latente com \(K\) categorias pode assumir.
Julgue V ou F
Julgue V ou F — Resposta
Voltando à pergunta: não há \(\mathbf{z}=h(\boldsymbol\phi,\boldsymbol\epsilon)\) diferenciável quando \(\mathbf{z}\) só assume \(K\) valores. Duas saídas: o estimador score function, que só usa valores de \(f\) e funciona com \(\mathbf{z}\) discreta, ao custo da variância alta; ou, com \(K\) pequeno, somar exatamente sobre as categorias, \(\mathbb{E}_q[f]=\sum_kq(k\mid\mathbf{x},\boldsymbol\phi)f(k)\), que é diferenciável em \(\boldsymbol\phi\) sem amostragem, como as responsabilidades do passo E do GMM.
1. Não linearidade entre \(\mathbf{z}\) e \(\hat{\mathbf{x}}\): decoder afim \(\Rightarrow\) subespaço afim de dim. \(\le M\) (AE raso = PCA). Profundo compensa no MNIST, sobreajusta no Breast Cancer.
2. O objetivo do AE só vê os códigos de treino e é invariante a reparametrizações do latente: escala, forma e densidade são acidentes; sem \(p(\mathbf{z})\) para sortear.
3. VAE = PPCA com rede; posterior sem forma fechada \(\to\) encoder amortizado; ELBO = reconstrução \(-\) KL até a priori (fechada); folga mensurável.
4. Score function (geral, variância alta) ou reparametrização \(\mathbf{z}=\boldsymbol\mu+\boldsymbol\sigma\odot\boldsymbol\epsilon\) (\(\boldsymbol\phi\) sai da distribuição; só contínuas).
Nota
DLFC p. 582 (tradução livre): “modelos de difusão podem ser vistos como um autoencoder variacional hierárquico em que o encoder é fixo, definido pelo processo de ruído, e só a distribuição geradora é aprendida”.
Ponte para a Aula 8
Os mapas 2D desta aula são subprodutos da reconstrução; no VAE, o KL ainda espreme as classes num disco. Para só visualizar vizinhanças, dispensa-se o decoder e otimizam-se as posições no plano diretamente: MDS (distâncias) e t-SNE (vizinhanças probabilísticas). O obstáculo de partida: o crowding problem.
UNICAMP — Instituto de Computação