Aula 7: O Mundo Não Linear — Autoencoders e VAEs
Aprendizado Não Supervisionado
1 Revisão e Introdução
Na aula anterior, vimos que a PCA e a PPCA definem um subespaço linear onde a variância é maximizada. Provamos que um Autoencoder (AE) com ativações lineares e um gargalo de dimensão \(M\) converge para o mesmo subespaço da PCA. No entanto, a natureza linear da PCA é limitante: se os dados residem em uma estrutura curva (um manifold), a projeção linear “achata” a geometria e perde informações essenciais.
Ideia Central: Para capturar estruturas complexas, precisamos de não linearidade. Ao introduzir funções de ativação (como ReLU ou Sigmoide) e camadas profundas, transformamos o AE em uma ferramenta capaz de aprender representações comprimidas de variedades não lineares. Mas isso traz um novo problema: a perda da interpretabilidade geométrica e a incapacidade de gerar novos dados.
Roteiro da Aula: 1. Autoencoders (AE): Como a compressão não linear funciona e a hipótese do manifold. 2. O Gap Generativo: Por que AEs não servem para gerar dados (o problema do espaço latente “buracado”). 3. Variational Autoencoders (VAE): A transição de pontos para distribuições. 4. O ELBO no VAE: Como a regularização via KL impede o colapso do espaço latente. 5. Reparameterization Trick: A solução matemática para treinar VAEs via gradiente.
Problema Motivador: Imagine que queremos comprimir as imagens do MNIST. Um AE linear (PCA) consegue reduzir a dimensão, mas se tentarmos interpolar entre dois dígitos no espaço latente, o resultado será uma mancha borrada. Um VAE, por outro lado, garante que o espaço latente seja contínuo, permitindo que “naveguemos” suavemente entre as formas dos dígitos.
1.1 Pausa Ativa
Se os dados de alta dimensão (ex: 784 pixels) residem em um manifold de baixa dimensão (ex: 10 dimensões), o que acontece com a distância euclidiana entre dois pontos próximos no manifold quando medida no espaço original?
- □ Um Autoencoder linear é matematicamente equivalente a uma PCA.
- □ A função de ativação ReLU introduz a não linearidade necessária para aprender manifolds.
- □ Aumentar a dimensão do gargalo (\(M\)) sempre melhora a generalização do modelo.
- □ O objetivo de um AE é minimizar a distância entre a entrada e a reconstrução.
2 Intuição — O Gargalo e o Manifold
A premissa fundamental dos Autoencoders é a Hipótese do Manifold: dados do mundo real, embora representados em espaços de altíssima dimensão, tendem a concentrar-se em subvariedades (manifolds) de dimensão muito menor.
Um Autoencoder opera criando um “estrangulamento” (bottleneck). Ao forçar a rede a comprimir a entrada \(\mathbf{x} \in \mathbb{R}^D\) em um vetor latente \(\mathbf{z} \in \mathbb{R}^M\) (com \(M \ll D\)), obrigamos o modelo a descartar o ruído e reter apenas as características essenciais para a reconstrução. Se a rede for profunda e não linear, ela não aprende apenas um plano (como a PCA), mas uma superfície curva que “envolve” os dados.
3 Bloco 1: Autoencoders (AE) Tradicionais
Um Autoencoder tradicional é treinado para minimizar a função de custo de reconstrução, tipicamente o Erro Quadrático Médio (MSE): \[J(\phi, \theta) = \frac{1}{N} \sum_{n=1}^N \|\mathbf{x}_n - g_{\theta}(f_{\phi}(\mathbf{x}_n))\|^2\]
O Risco do Mapeamento Identidade: Se \(M \ge D\), a rede pode simplesmente aprender a função identidade (\(\mathbf{z} = \mathbf{x}\)), copiando os pixels sem aprender nada sobre a estrutura dos dados. Para evitar isso, devemos: 1. Manter \(M < D\) (Undercomplete AE). 2. Adicionar ruído à entrada (Denoising AE). 3. Forçar a esparsidade no gargalo (Sparse AE).
No nosso dataset de Breast Cancer, um AE não linear consegue capturar correlações complexas entre os atributos que a PCA ignora, resultando em um erro de reconstrução menor para a mesma dimensão de gargalo.
4 Bloco 2: O Gap Generativo
Embora o AE seja excelente para compressão, ele falha miseravelmente como modelo generativo. Por que?
O AE aprende a mapear cada \(\mathbf{x}\) para um ponto \(\mathbf{z}\) no espaço latente. No entanto, ele não impõe nenhuma restrição sobre a distribuição desses pontos. O resultado é um espaço latente “buracado”: regiões onde o decoder nunca foi treinado. Se amostramosmos um \(\mathbf{z}\) de uma região vazia, o decoder produzirá lixo.
Para ser generativo, precisamos que o espaço latente seja contínuo (pontos próximos em \(\mathbf{z}\) geram imagens semelhantes) e completo (qualquer ponto amostrado de uma distribuição conhecida, como \(\mathcal{N}(\mathbf{0}, \mathbf{I})\), resulte em algo válido).
4.1 Pausa Ativa
Isso resolveria o problema dos “buracos” no espaço latente ou apenas mudaria a escala do problema?
- □ O Autoencoder tradicional aprende a densidade de probabilidade dos dados.
- □ No AE, a função de custo penaliza a distância entre a entrada e a saída.
- □ Um espaço latente contínuo é essencial para a interpolação de características.
- □ O decoder de um AE funciona como um modelo generativo por definição.
5 Bloco 3: Variational Autoencoders (VAE)
O VAE resolve o gap generativo mudando a natureza do gargalo. Em vez de mapear \(\mathbf{x}\) para um ponto \(\mathbf{z}\), o encoder agora estima os parâmetros de uma distribuição de probabilidade \(q_{\phi}(\mathbf{z}|\mathbf{x})\).
Geralmente, assumimos que essa distribuição é uma Gaussiana multivariada com diagonal: \[q_{\phi}(\mathbf{z}|\mathbf{x}) = \mathcal{N}(\mathbf{z} \mid \boldsymbol\mu_{\phi}(\mathbf{x}), \text{diag}(\boldsymbol\sigma_{\phi}^2(\mathbf{x})))\]
O encoder produz dois vetores: \(\boldsymbol\mu\) (a localização do dado no espaço latente) e \(\boldsymbol\sigma\) (a incerteza ou “espalhamento” desse dado). O decoder então tenta reconstruir \(\mathbf{x}\) a partir de amostras \(\mathbf{z} \sim q_{\phi}(\mathbf{z}|\mathbf{x})\). Isso força o decoder a ser robusto a pequenas variações em \(\mathbf{z}\), promovendo a continuidade do espaço.
6 Bloco 4: O Objetivo do VAE (ELBO)
Se deixássemos o VAE apenas com o erro de reconstrução, o modelo simplesmente definiria \(\boldsymbol\sigma \to 0\) e voltaria a ser um AE tradicional (pontos isolados). Para evitar isso, introduzimos uma regularização: queremos que a distribuição latente \(q_{\phi}(\mathbf{z}|\mathbf{x})\) seja próxima de uma priori simples, tipicamente \(\mathcal{N}(\mathbf{0}, \mathbf{I})\).
Isso nos leva de volta ao ELBO (Aula 5). A função de custo do VAE é a minimização da perda: \[\text{Loss} = \underbrace{\mathbb{E}_{\mathbf{z} \sim q_{\phi}(\mathbf{z}|\mathbf{x})} [\|\mathbf{x} - g_{\theta}(\mathbf{z})\|^2]}_{\text{Fidelidade (Reconstrução)}} + \beta \cdot \underbrace{\mathrm{KL}(q_{\phi}(\mathbf{z}|\mathbf{x}) \| \mathcal{N}(\mathbf{0}, \mathbf{I}))}_{\text{Regularização (Prior)}}\]
- Fidelidade: Força o modelo a reconstruir o dado com precisão.
- Regularização: Força o espaço latente a ser compacto, centralizado e sem buracos.
- O Equilíbrio: Se \(\beta\) for muito alto, todos os dados colapsam no centro (borrado). Se for muito baixo, temos o problema do AE tradicional (overfitting).
7 Bloco 5: O Reparameterization Trick
Há um problema técnico fundamental: a operação de amostragem \(\mathbf{z} \sim \mathcal{N}(\boldsymbol\mu, \boldsymbol\sigma^2)\) é estocástica e não é diferenciável. O gradiente do erro de reconstrução não consegue “atravessar” a amostragem para atualizar os pesos do encoder (\(\boldsymbol\mu\) e \(\boldsymbol\sigma\)).
A solução é o Reparameterization Trick. Em vez de amostrar diretamente da Gaussiana dependente de \(\mathbf{x}\), expressamos \(\mathbf{z}\) como uma transformação determinística de um ruído externo \(\boldsymbol\epsilon \sim \mathcal{N}(\mathbf{0}, \mathbf{I})\): \[\mathbf{z} = \boldsymbol\mu + \boldsymbol\sigma \odot \boldsymbol\epsilon\]
Agora, a estocasticidade está isolada em \(\boldsymbol\epsilon\), que não depende dos parâmetros da rede. O gradiente pode fluir livremente através de \(\boldsymbol\mu\) e \(\boldsymbol\sigma\) via a soma e a multiplicação, permitindo o treinamento via backpropagation.
7.1 Pausa Ativa
O modelo ainda consegue gerar imagens? Elas seriam semelhantes às do MNIST?
- □ O Reparameterization Trick torna a amostragem diferenciável.
- □ No VAE, o encoder prevê o valor exato de \(\mathbf{z}\) para cada \(\mathbf{x}\).
- □ A divergência KL no VAE atua como um regularizador do espaço latente.
- □ O decoder de um VAE é capaz de transformar qualquer \(\mathbf{z} \sim \mathcal{N}(\mathbf{0}, \mathbf{I})\) em um dado plausível.
8 Fechamento
Retomando as perguntas do roteiro: - O que é um AE? Uma rede que aprende a comprimir e reconstruir dados via gargalo não linear. - Por que o AE não é generativo? Porque seu espaço latente é descontínuo e não modela a densidade dos dados. - Como o VAE resolve isso? Transformando o gargalo em uma distribuição e regularizando-a via KL para ser próxima de \(\mathcal{N}(\mathbf{0}, \mathbf{I})\). - O que é o Reparameterization Trick? Uma técnica para permitir o fluxo de gradientes através de amostragem estocástica.
O Que Fica em Aberto: Vimos que VAEs geram dados “borrados” (devido à natureza da Gaussiana e do MSE). Existem formas de gerar imagens mais nítidas? (Spoiler: GANs e Diffusion Models).
Ponte para a Aula 8: Até agora, focamos em reconstruir o dado. Mas e se quisermos apenas visualizar a estrutura de vizinhança em 2D, preservando a topologia local sem necessariamente reconstruir os pixels? Entraremos no mundo do MDS e t-SNE.