Aula 7: Autoencoders Profundos e o Autoencoder Variacional

Aprendizado Não Supervisionado

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

2026-10-07

Revisão e Introdução

Da Aula 6: O Que Já Temos

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}\).

Da Aula 5: O ELBO

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}. \]

  • Origem: \(\ln p(\mathbf{X})=\ln p(\mathbf{X},\mathbf{H})-\ln p(\mathbf{H}\mid\mathbf{X})\); \(\pm\ln q\); integrar contra \(q\).
  • \(\mathrm{KL}\ge0\) \(\Rightarrow\) \(\mathcal{L}\le\ln p(\mathbf{X})\), igualdade sse \(q=\) posterior.
  • EM: (1) passo E faz \(q=\) posterior (folga zero); (2) passo M maximiza \(\mathcal{L}\).
  • GMM: responsabilidades. PPCA: a Gaussiana acima.

Importante

Nos dois casos o passo E só existiu porque a posterior tinha forma fechada.

Ideia Central e Roteiro

Uma única troca: \(\mathbf{W}\mathbf{z}+\boldsymbol\mu\;\longrightarrow\;\mathbf{g}(\mathbf{z},\mathbf{w})\) (rede neural).

  • Desejada: reconstruções numa superfície curva \(\to\) deep autoencoder.
  • A contornar: \(p(\mathbf{x})\) e \(p(\mathbf{z}\mid\mathbf{x})\) perdem a forma fechada \(\to\) o ELBO vira objetivo de treino \(\to\) VAE.
  1. Onde a não linearidade precisa estar para curvar a reconstrução? Quando compensa?
  2. Por que um bom compressor não é um bom gerador?
  3. Como o VAE estende a PPCA sem posterior fechada?
  4. Como derivar uma esperança sob uma distribuição que depende dos parâmetros?

Problema Motivador: Dois Números por Imagem

  • MNIST: \(784\) pixels por imagem. Guardar \(2\) números, reconstruir os \(784\).
  • PCA (\(M=2\)) contra autoencoder profundo (\(M=2\)), 20.000 imagens de treino.
  • Erro médio por pixel (teste): PCA 0,0554; autoencoder profundo 0,0376.
  • Mesma quantidade de informação guardada, mas a forma da superfície de reconstruções é diferente.

Importante

Segunda pergunta: sorteando \(2\) números quaisquer e passando pelo decoder, sai um dígito?

Pausa — O Que Restringe a Reconstrução

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

  • □ No MNIST com \(M=2\), a PCA reconstrói pior que o autoencoder profundo porque a PCA não minimiza o erro quadrático de reconstrução.
  • □ Um autoencoder com várias camadas ocultas, todas com ativação linear, tem erro mínimo de treino igual ao da PCA com o mesmo \(M\), qualquer que seja o número de camadas.
  • □ Um erro de reconstrução de treino menor garante que o código de \(M\) números resume melhor também imagens que a rede nunca viu.
  • □ Na PPCA, a incerteza sobre \(\mathbf{z}\) depois de observar \(\mathbf{x}\) (a covariância da posterior) é a mesma para todos os pontos.

Pausa — Resposta

Julgue V ou F — Resposta

  • ✗ A PCA minimiza o erro quadrático, mas entre reconstruções lineares (sobre um subespaço). O autoencoder procura numa classe maior de funções; a diferença é de classe, não de critério.
  • ✔ Composição de mapas lineares é linear; com gargalo \(M\), o posto do produto é \(\le M\). Cai no Teorema da Aula 6.
  • ✗ Erro de treino é avaliado nos mesmos pontos usados no ajuste (o double-dipping da Aula 5). Veremos o contraexemplo no Breast Cancer.
  • ✔ PRML eq. 12.42: covariância \(\sigma^2\mathbf{B}^{-1}\), que não depende de \(\mathbf{x}\); só a média depende.

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.

Intuição — Curvar a Variedade

A Hipótese da Variedade

  • Dados reais de alta dimensão não preenchem \(\mathbb{R}^D\): concentram-se perto de uma variedade de dimensão bem menor.
  • DLFC (p. 496): um dígito transladado e girado num quadro maior. Milhares de pixels, 3 graus de liberdade.

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”.

  • A PCA só representa variedades planas: numa variedade curva, ou erra muito, ou precisa de muitas dimensões.

Um Arco, Um Número por Ponto

  • \(400\) pontos num arco em \(\mathbb{R}^2\); guardar \(M=1\) número. Linha laranja: todas as reconstruções possíveis.
  • PCA: reta; erro 0,0957.
  • AE raso (\(\tanh\) no gargalo, saída linear): erro 0,0960, igual à PCA; imagem do decoder é um segmento de reta.
  • AE profundo (camadas \(\tanh\) dos dois lados): erro 0,0016; imagem do decoder curva.

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}}\).

A Arquitetura: \(F_1\) e \(F_2\)

  • Encoder \(F_1\): \(\mathbb{R}^D\to\mathbb{R}^M\), diz onde cada dado cai na superfície.
  • Decoder \(F_2\): \(\mathbb{R}^M\to\mathbb{R}^D\), sua imagem é a superfície (curva, se \(F_2\) for não linear).
  • DLFC §19.1.2, Figs. 19.2–19.3. No arco: \(F_2\) é a curva laranja, \(F_1\) escolhe o ponto.

Bloco 1: O Deep Autoencoder

Definição: Autoencoder Profundo

Nota

Definição (DLFC §19.1.2):

  • encoder \(\mathbf{f}(\cdot,\boldsymbol\phi):\mathbb{R}^D\to\mathbb{R}^M\) (\(M<D\)) e
  • decoder \(\mathbf{g}(\cdot,\mathbf{w}):\mathbb{R}^M\to\mathbb{R}^D\),
  • camadas afins intercaladas com ativações não lineares, pelo menos uma oculta não linear em cada rede. \[ E(\boldsymbol\phi,\mathbf{w})=\tfrac12\sum_{n}\big\|\mathbf{g}(\mathbf{f}(\mathbf{x}_n,\boldsymbol\phi),\mathbf{w})-\mathbf{x}_n\big\|^2 . \]
  • Mesmo critério da Aula 6; muda só a parametrização.
  • \(\boldsymbol\phi\) (encoder) e \(\mathbf{w}\) (decoder) separados: no VAE terão papéis diferentes.

Ganhos, Custos e o Breast Cancer

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.

Outras Formas de Impedir a Cópia

  • O gargalo \(M<D\) é uma forma de impedir a identidade. DLFC §19.1.3–19.1.4:
  • Esparso: gargalo largo + \(L_1\) nas ativações: \(\widetilde{E}(\mathbf{w})=E(\mathbf{w})+\lambda\sum_k|z_k|\) (19.2). Cada ponto usa poucas unidades.
  • Denoising: entrada corrompida \(\tilde{\mathbf{x}}_n\), alvo limpo:
    • \(E(\mathbf{w})=\sum_n\|\mathbf{y}(\tilde{\mathbf{x}}_n,\mathbf{w})-\mathbf{x}_n\|^2\) (19.3).
    • Entrada \(\ne\) alvo \(\Rightarrow\) copiar não zera o erro; a rede aprende para onde fica a variedade.

Pausa — Quando 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

  • □ Acrescentar camadas ocultas não lineares apenas ao encoder, mantendo o decoder afim de \(\mathbf{z}\) até \(\hat{\mathbf{x}}\), permite reconstruções sobre uma superfície curva.
  • □ Com \(M=D\) e redes suficientemente expressivas, o erro de treino mínimo de um autoencoder profundo é zero, sem que a rede aprenda estrutura alguma dos dados.
  • □ Como o autoencoder profundo minimiza a mesma soma de quadrados da PCA, o gradiente descendente encontra o mínimo global, assim como a decomposição espectral.
  • □ Um autoencoder denoising pode ter camada oculta mais larga que a entrada sem convergir para a identidade, porque a entrada corrompida é diferente do alvo.

Pausa — Resposta

Julgue V ou F — Resposta

  • ✗ Com decoder afim, a imagem é um subespaço afim de dimensão \(\le M\) (Proposição), por mais complicado que seja o encoder.
  • ✔ Com \(M=D\) a identidade passa pelo gargalo: erro zero copiando, sem resumir nada.
  • ✗ A soma de quadrados deixa de ser quadrática nos parâmetros: o problema é não convexo, com risco de mínimos locais (DLFC p. 566).
  • ✔ Copiar \(\tilde{\mathbf{x}}_n\) não reproduz \(\mathbf{x}_n\); a rede precisa desfazer a corrupção (DLFC §19.1.4).

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.

Bloco 2: O Gap Generativo

O Espaço Latente do AE no MNIST

  • Códigos 2D das \(20\,000\) imagens de treino, coloridos pelo dígito (rótulo fora do treino).
  1. Escala arbitrária: \(\approx[-6{,}4;\,12{,}6]\times[-13{,}0;\,12{,}3]\) (perc. 1–99).
  2. Ilhas e buracos entre os dígitos.
  3. Densidade desconhecida: para gerar, sortear \(\mathbf{z}\) de onde?
  • Tentativa ingênua: uma Gaussiana ajustada a todos os códigos (sem rótulos). Amostras longe de todo código de treino (\(>10\times\) a distância típica entre vizinhos): 3,5% (AE) contra 0,65% (priori do VAE, adiante).
  • Amostras: a maioria plausível (onde os códigos são densos), algumas borradas. Interpolação \(1\to7\) atravessa a região de outro dígito.

O Diagnóstico

  • \(E(\boldsymbol\phi,\mathbf{w})\) só avalia \(\mathbf{g}\) nos códigos de treino; fora deles, nada diz o que gerar.
  • Invariância: \(\mathbf{h}\) invertível \(\Rightarrow\) \(\mathbf{g}\circ\mathbf{h}^{-1}\big(\mathbf{h}\circ\mathbf{f}(\mathbf{x})\big)=\mathbf{g}(\mathbf{f}(\mathbf{x}))\): mesmo erro.
  • Versão não linear da invariância por \(\mathbf{G}\) (Aula 6): os dados fixam a superfície, não a coordenatização do latente.

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.

Pausa — Corrigir o Espaço Latente Depois

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

  • □ Padronizar cada coordenada dos códigos do AE (média zero, variância um) faz com que eles passem a seguir uma \(\mathcal{N}(\mathbf{0},\mathbf{I})\).
  • □ Se um autoencoder reconstrói bem todas as imagens de treino, então o decoder produz imagens plausíveis para qualquer \(\mathbf{z}\) dentro da caixa que contém os códigos de treino.
  • □ Um GMM ajustado aos códigos 2D de um AE, seguido do decoder, define um modelo cuja verossimilhança \(p(\mathbf{x})\) dos dados pode ser calculada em forma fechada.
  • □ No autoencoder linear da Aula 6, a invariância por uma matriz invertível \(\mathbf{G}\) é um caso particular da invariância do objetivo do AE por qualquer reparametrização invertível do espaço latente.

Pausa — Resposta

Julgue V ou F — Resposta

  • ✗ Padronizar acerta só média e variância; ilhas e buracos continuam. Uma nuvem multimodal padronizada não é Gaussiana.
  • ✗ Reconstruir bem os pontos de treino não diz nada sobre \(\mathbf{g}\) nos buracos entre os códigos; foi onde as amostras falharam.
  • ✗ O AE não tem \(p(\mathbf{x}\mid\mathbf{z})\) (é determinístico); e mesmo com ruído, \(\int p(\mathbf{x}\mid\mathbf{z})p(\mathbf{z})\,\mathrm{d}\mathbf{z}\) com decoder não linear não tem forma fechada.
  • ✔ \(\mathbf{h}(\mathbf{z})=\mathbf{G}\mathbf{z}\) é uma reparametrização invertível linear; a do AE vale para qualquer \(\mathbf{h}\) invertível que as redes representem.

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.

Bloco 3: O VAE como PPCA Não Linear

O Modelo Gerador: PPCA com Rede

Nota

Definição (DLFC 16.80, 19.5):

  • \(p(\mathbf{z})=\mathcal{N}(\mathbf{0},\mathbf{I}_M)\)
  • \(\;p(\mathbf{x}\mid\mathbf{z},\mathbf{w})=\mathcal{N}\big(\mathbf{g}(\mathbf{z},\mathbf{w}),\sigma^2\mathbf{I}_D\big)\)
  • \(\mathbf{g}\) = rede (decoder).
  • Gerar: \(\mathbf{z}\sim p(\mathbf{z})\) \(\to\) \(\mathbf{g}(\mathbf{z},\mathbf{w})\) \(\to\) \(+\) ruído.
  • \(\mathbf{g}(\mathbf{z})=\mathbf{W}\mathbf{z}+\boldsymbol\mu\) \(\Rightarrow\) é a PPCA.
  • Por que o ruído \(\sigma^2\)? DLFC p. 523: sem ele o modelo “atribui densidade zero a todo vetor que não esteja exatamente sobre a variedade”: verossimilhança zero, sem gradiente.

O Que Perde a Forma Fechada

\[ 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). \]

  • PPCA: média linear em \(\mathbf{z}\) \(\Rightarrow\) tudo Gaussiano \(\Rightarrow\) integral fechada.
  • VAE: \(\mathbf{z}\) entra na média por uma rede \(\Rightarrow\) sem forma fechada.

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).

O Encoder Devolve uma Distribuição

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.

Inferência Amortizada: Uma Rede para Todos os Pontos

  • O problema: a posterior \(p(\mathbf{z}_n\mid\mathbf{x}_n,\mathbf{w})\) não tem forma fechada, então o passo E precisa de uma aproximação \(q\).
  • Caminho direto: uma \(q_n\) por ponto, cada uma otimizada separadamente. São \(N\) otimizações, refeitas a cada atualização de \(\mathbf{w}\), e mais uma para cada ponto novo.
  • Caminho do VAE (amortizado): uma única rede \(\boldsymbol\phi\) aprende a função \(\mathbf{x}\mapsto(\boldsymbol\mu,\boldsymbol\sigma^2)\) para todos os pontos.
  • O esforço de inferência fica concentrado no treino. Para um ponto novo, basta uma passagem pelo encoder, sem otimizaçã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 e VAE Lado a Lado

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.

Pausa — Um Encoder para Todos

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

  • □ Se o decoder de um VAE fosse afim, \(\mathbf{g}(\mathbf{z})=\mathbf{W}\mathbf{z}+\boldsymbol\mu\), o modelo gerador seria a PPCA e a posterior exata de \(\mathbf{z}\) seria Gaussiana.
  • □ No caso afim acima, um encoder Gaussiano diagonal sempre consegue representar a posterior exata, porque ela é Gaussiana.
  • □ Com inferência amortizada, obter a distribuição aproximada de \(\mathbf{z}\) para um ponto novo exige apenas uma passagem pelo encoder, sem otimização.
  • □ Como o encoder é uma rede neural flexível, o ELBO maximizado de um VAE coincide com \(\ln p(\mathbf{x}\mid\mathbf{w})\).

Pausa — Resposta

Julgue V ou F — Resposta

  • ✔ Modelo linear-Gaussiano: é a PPCA, com posterior PRML eq. 12.42.
  • ✗ A covariância exata é \(\sigma^2\mathbf{B}^{-1}\), com \(\mathbf{B}=\mathbf{W}^T\mathbf{W}+\sigma^2\mathbf{I}\); ela só é diagonal se as colunas de \(\mathbf{W}\) forem ortogonais entre si. Uma rotação qualquer de \(\mathbf{W}\) (invariância da Aula 6) a torna não diagonal.
  • ✔ É o ganho da amortização: o custo de inferência foi pago no treino.
  • ✗ Sobra a folga \(\mathrm{KL}(q\|p(\mathbf{z}\mid\mathbf{x}))>0\) (DLFC p. 573); no Bloco 4 ela é medida no MNIST.

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.

Bloco 4: O ELBO do VAE

Do ELBO da Aula 5 à Perda do VAE

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) \]

Duas KLs, Dois Papéis

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.

Da Cota à Perda do VAE

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\), \(\sigma^2\) e o Experimento

  • DLFC p. 577 (Higgins et al., 2017): \(\mathbb{E}_q[\ln p(\mathbf{x}_n\mid\mathbf{z}_n)]-\beta\,\mathrm{KL}(q\|p(\mathbf{z}_n))\); \(\beta=1\) é o ELBO. (DLFC diz “primeiro termo”; é o KL, o segundo.)
  • Proposição (nossa): multiplicando por \(2\sigma^2>0\), \(\sum_n\mathbb{E}_q\|\mathbf{x}_n-\mathbf{g}\|^2+2\beta\sigma^2\sum_n\mathrm{KL}\) \(\Rightarrow\) minimizadores dependem só de \(\beta\sigma^2\).
  • Escolher \(\sigma^2\) é escolher a força da regularização. MNIST: \(\sigma^2=0{,}1\).
\(\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
  • \(\beta=0\): \(\sigma\to0\), volta ao AE (escala arbitrária). \(\beta=1\): centrado, escala \(\approx1\). \(\beta=20\): rumo ao posterior collapse (DLFC pp. 576–577): “\(q\) converge para a priori […] o código latente é ignorado”.

Quanto Falta Para a Verossimilhança

Identidade (amostragem por importância):

  • \(p(\mathbf{x})=\int q\,\frac{p(\mathbf{x},\mathbf{z})}{q}\,\mathrm{d}\mathbf{z}=\mathbb{E}_q\!\left[\frac{p(\mathbf{x},\mathbf{z})}{q(\mathbf{z}\mid\mathbf{x})}\right]\)
  • \(\Rightarrow\) estimar \(\ln p(\mathbf{x})\) por \(\ln\tfrac1K\sum_k p(\mathbf{x},\mathbf{z}^{(k)})/q(\mathbf{z}^{(k)}\mid\mathbf{x})\).
  • Jensen: a esperança do estimador é \(\le\ln p(\mathbf{x})\) \(\Rightarrow\) folga estimada é cota inferior da real.
  • \(K=1.000\), 300 imagens de teste: ELBO 38,54; \(\ln p(\mathbf{x})\approx44{,}24\).
  • Folga \(\mathrm{KL}(q\|p(\mathbf{z}\mid\mathbf{x}))\ge5{,}70\) nats por imagem (valores positivos: densidade em \(784\) dim.).

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).

Pausa — O Termo Que Organiza o Espaço

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

  • □ Num VAE com decoder Gaussiano, dobrar a variância \(\sigma^2\) do ruído do decoder leva aos mesmos parâmetros ótimos que dobrar o peso \(\beta\) do termo KL.
  • □ A parcela \(\tfrac12(\mu_j^2+\sigma_j^2-1-\ln\sigma_j^2)\) é mínima em \(\sigma_j=0\), o que empurra o VAE de volta para um autoencoder determinístico.
  • □ Se a KL média até a priori for praticamente zero para todos os pontos, o decoder recebe códigos que não dependem da entrada e só pode produzir algo próximo de uma imagem média.
  • □ Num VAE para o MNIST binarizado, trocar a Gaussiana por uma Bernoulli em \(p(\mathbf{x}\mid\mathbf{z})\) muda o termo KL do objetivo.

Pausa — Resposta

Julgue V ou F — Resposta

  • ✔ Os minimizadores dependem só de \(\beta\sigma^2\): dobrar qualquer um dos dois dá o mesmo produto.
  • ✗ O mínimo é em \(\sigma_j=1\) (e \(\mu_j=0\)); em \(\sigma_j\to0\) a parcela vai a \(+\infty\). É o termo que impede a volta ao AE.
  • ✔ KL \(\approx0\) significa \(q(\mathbf{z}\mid\mathbf{x})\approx p(\mathbf{z})\) para todo \(\mathbf{x}\): posterior collapse (DLFC p. 577).
  • ✗ A verossimilhança só aparece no termo de reconstrução (vira entropia cruzada); o KL compara \(q\) com a priori e não muda.

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.

Bloco 5: O Reparameterization Trick e o VAE Treinado

O Problema: Derivar Uma Esperança

  • KL: forma fechada, deriva sem dificuldade.
  • Reconstrução: \(\mathbb{E}_{q(\mathbf{z}\mid\mathbf{x},\boldsymbol\phi)}[\ln p(\mathbf{x}\mid\mathbf{z},\mathbf{w})]\approx\frac1L\sum_l\ln p(\mathbf{x}\mid\mathbf{z}^{(l)},\mathbf{w})\), \(\mathbf{z}^{(l)}\sim q\) (19.16).
  • Em \(\mathbf{w}\): fácil. Em \(\boldsymbol\phi\): \(\boldsymbol\phi\) está na distribuição, não no integrando.

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.

Dois Estimadores do Mesmo Gradiente

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\).

A Variância, Medida

  • Uma imagem de teste, VAE treinado, 10.000 estimativas com \(L=1\) da derivada em relação a \(\mu_1\).
média (erro-padrão) desvio-padrão
pathwise -31,5 (0,3) 27,1
score function -44,8 (8,8) 875,1
  • Médias a 1,51 erros-padrão uma da outra (ambos não enviesados); desvio-padrão \(\approx32\times\) maior \(\Rightarrow\) \(\approx1.044\times\) mais amostras para a mesma precisão.

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).

O Algoritmo e a Geração

  1. Minilote \(\{\mathbf{x}_n\}\) \(\to\) encoder: \(\boldsymbol\mu_n\), \(\ln\boldsymbol\sigma_n^2\).
  2. \(\boldsymbol\epsilon_n\sim\mathcal{N}(\mathbf{0},\mathbf{I})\), \(\;\mathbf{z}_n=\boldsymbol\mu_n+\boldsymbol\sigma_n\odot\boldsymbol\epsilon_n\).
  3. Perda: \(\sum_n\big[\tfrac{1}{2\sigma^2}\|\mathbf{x}_n-\mathbf{g}(\mathbf{z}_n,\mathbf{w})\|^2+\beta\cdot\tfrac12\sum_j(\mu_{nj}^2+\sigma_{nj}^2-1-\ln\sigma_{nj}^2)\big]\).
  4. Backpropagation em \((\mathbf{w},\boldsymbol\phi)\) e passo do Adam.
  • Gerar: descartar o encoder; \(\mathbf{z}\sim\mathcal{N}(\mathbf{0},\mathbf{I})\) \(\to\) \(\mathbf{g}(\mathbf{z},\mathbf{w})\).
  • Grade nos quantis da priori (5%–95%, mesma massa por célula): transição contínua, sem regiões de lixo.

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.

Pausa — Quando Não Há Caminho Contínuo

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

  • □ Como o estimador score function é não enviesado, com uma única amostra ele é tão útil para o treino quanto o estimador da reparametrização.
  • □ Se \(\boldsymbol\epsilon\sim\mathcal{N}(\mathbf{0},\mathbf{I})\) e \(\mathbf{z}=\boldsymbol\mu+\boldsymbol\sigma\odot\boldsymbol\epsilon\) com \(\sigma_j>0\), então \(\mathbf{z}\) segue uma Gaussiana de média \(\boldsymbol\mu\) e covariância diagonal com entradas \(\sigma_j^2\).
  • □ O truque da reparametrização elimina a aleatoriedade do treino: o gradiente do ELBO passa a ser calculado de forma exata.
  • □ Fazer o encoder produzir \(\ln\sigma_j^2\) em vez de \(\sigma_j\) garante a positividade da variância sem mudar a família de distribuições representáveis por \(q\).

Pausa — Resposta

Julgue V ou F — Resposta

  • ✗ Não enviesado não é o mesmo que preciso: com \(L=1\), o desvio-padrão medido foi \(\approx32\times\) maior.
  • ✔ É o Lema: cada \(z_j=\mu_j+\sigma_j\epsilon_j\sim\mathcal{N}(\mu_j,\sigma_j^2)\), independentes.
  • ✗ Continua uma estimativa de Monte Carlo (sobre \(\boldsymbol\epsilon\) e sobre o minilote); muda a variância, não a natureza estocástica.
  • ✔ \(\sigma_j^2=\exp(\cdot)\) cobre exatamente \((0,\infty)\): mesma família, sem restrição na saída da rede.

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.

Fechamento

Retomando as Quatro Perguntas

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).

O Que Fica em Aberto

  • Borrão: médias condicionais de várias formas.
  • Posterior agregada \(\ne\) priori: a KL age ponto a ponto (dp das médias com \(\beta=1\): 1,18).
  • \(\beta\), \(\sigma^2\), \(M\): entre o posterior collapse e o AE disfarçado.

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

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.

Exercícios Soluções