Variational Autoencoder (Detalhes)

Traduzido do inglês

Um autoencoder variacional (VAE) é uma arquitetura de rede neural introduzida em 2013 por Diederik P. Kingma e Max Welling que aprende um espaço latente probabilístico para modelagem generativa, combinando um codificador e um decodificador treinados com métodos bayesianos variacionais.

Um autoencoder variacional (VAE) é uma arquitetura de rede neural artificial introduzida por Diederik P. Kingma e Max Welling em 2013. Pertence às famílias de modelos gráficos probabilísticos e métodos bayesianos variacionais. VAEs são modelos generativos que aprendem a representar dados em um espaço latente comprimido e geram novas amostras a partir desse espaço. Diferentemente dos autoencoders padrão, que mapeiam entradas para pontos fixos em um espaço latente, VAEs mapeiam entradas para uma distribuição de probabilidade, tipicamente uma gaussiana multivariada, o que ajuda a evitar overfitting e permite interpolação e geração suaves.

A arquitetura consiste em duas redes neurais: um codificador e um decodificador. O codificador mapeia cada ponto de dado de entrada (por exemplo, uma imagem) para parâmetros de uma distribuição variacional no espaço latente, como um vetor de média e variância. O decodificador mapeia do espaço latente de volta ao espaço de entrada, produzindo reconstruções ou novas amostras. Ambas as redes são treinadas conjuntamente usando o truque da reparametrização, que permite a retropropagação através da amostragem estocástica. VAEs foram inicialmente projetados para aprendizado não supervisionado, mas também se mostraram eficazes para tarefas de aprendizado semissupervisionado e supervisionado.

Visão geral da arquitetura e operação

Um autoencoder variacional é um modelo generativo com uma distribuição a priori sobre variáveis latentes e uma distribuição de ruído para os dados. Modelos generativos tradicionais, como PCA probabilístico ou codificação esparsa, são treinados usando o meta-algoritmo de maximização de expectativa (EM). EM otimiza um limite inferior na verossimilhança dos dados, que é frequentemente computacionalmente intratável, e requer a descoberta de distribuições q (posteriores variacionais) para cada ponto de dado em um processo de otimização separado. Em contraste, VAEs usam uma rede neural como uma abordagem amortizada para otimizar conjuntamente todos os pontos de dado. Isso significa que os mesmos parâmetros de rede são reutilizados para múltiplos pontos de dado, resultando em economias significativas de memória.

A rede codificadora recebe pontos de dado de entrada e produz parâmetros para a distribuição variacional. Como ela mapeia de um espaço de entrada conhecido para um espaço latente de baixa dimensão, é chamada de codificador. O decodificador é a segunda rede neural; ele mapeia do espaço latente para o espaço de entrada, tipicamente produzindo as médias da distribuição de ruído. Embora seja possível usar outra rede para produzir a variância, isso é frequentemente omitido por simplicidade, e a variância pode ser otimizada via descida de gradiente.

Para otimizar o modelo, dois termos são necessários: o erro de reconstrução e a divergência de Kullback–Leibler (KL-D). Ambos os termos são derivados da expressão de energia livre do modelo probabilístico, e diferem dependendo da distribuição de ruído e da priori assumida dos dados (distribuição p). Por exemplo, uma tarefa VAE padrão como ImageNet tipicamente assume ruído gaussiano, enquanto tarefas como MNIST binarizado exigem ruído de Bernoulli. O termo KL-D maximiza a massa de probabilidade da distribuição q que se sobrepõe à distribuição p, o que pode levar a um comportamento de busca de modos. O termo de reconstrução é o restante da expressão de energia livre e requer uma aproximação de amostragem para calcular seu valor esperado. Abordagens mais recentes substituem KL-D por várias distâncias estatísticas, como discutido na seção sobre variantes VAE de distância estatística.

Formulação

De uma perspectiva de modelagem probabilística, o objetivo é maximizar a verossimilhança dos dados x sob uma distribuição de probabilidade parametrizada escolhida p_θ(x) = p(x|θ). Essa distribuição é frequentemente escolhida como uma gaussiana N(x|μ, σ), parametrizada pela média μ e variância σ, que é fácil de trabalhar como membro da família exponencial. Distribuições simples são diretas de maximizar, mas quando uma priori é assumida sobre variáveis latentes z, as integrais resultantes se tornam intratáveis. Para encontrar p_θ(x), marginaliza-se sobre z:

p_θ(x) = ∫ p_θ(x, z) dz,

onde p_θ(x, z) é a distribuição conjunta dos dados observáveis x e da codificação latente z sob p_θ. Usando a regra da cadeia, isso pode ser reescrito como:

p_θ(x) = ∫ p_θ(x|z) p_θ(z) dz.

Essa integral é geralmente intratável porque o espaço latente é de alta dimensão e a verossimilhança p_θ(x|z) pode ser complexa. A inferência variacional aproxima o posterior verdadeiro p_θ(z|x) com uma distribuição mais simples q_φ(z|x), parametrizada pela rede codificadora. O limite inferior da evidência (ELBO) é derivado para otimizar o modelo:

log p_θ(x) ≥ E_{q_φ(z|x)}[log p_θ(x|z)] - KL(q_φ(z|x) || p_θ(z)).

O primeiro termo é a verossimilhança de reconstrução, e o segundo termo é a divergência KL entre o posterior aproximado e a priori. O truque da reparametrização permite amostrar de q_φ(z|x) expressando z como μ + σ * ε, onde ε é extraído de uma distribuição normal padrão, permitindo otimização baseada em gradiente.

Redes codificadora e decodificadora

A rede codificadora, frequentemente denotada como q_φ(z|x), recebe uma entrada x e produz os parâmetros de uma distribuição variacional, tipicamente a média μ e a log-variância log σ² de uma gaussiana. Essa distribuição representa a codificação latente da entrada. A rede decodificadora, denotada como p_θ(x|z), recebe uma amostra latente z e produz parâmetros para a distribuição dos dados, como a média de uma gaussiana para dados contínuos ou as probabilidades para dados de Bernoulli.

Ambas as redes são tipicamente treinadas juntas usando o truque da reparametrização. O codificador e o decodificador são geralmente implementados como perceptrons multicamadas (MLPs) ou redes neurais convolucionais (CNNs), dependendo do tipo de dado. Para dados de imagem, CNNs são comuns, como visto em modelos como o VAE convolucional. A escolha da arquitetura de rede afeta a capacidade e o desempenho do modelo.

Treinamento e o truque da reparametrização

Treinar um VAE envolve maximizar o ELBO, que é a soma do termo de reconstrução e do termo de divergência KL. O termo de reconstrução incentiva o decodificador a reconstruir com precisão a entrada a partir da amostra latente, enquanto o termo de divergência KL incentiva o posterior aproximado a estar próximo da priori, tipicamente uma distribuição normal padrão N(0, I). Esse equilíbrio previne overfitting e garante um espaço latente suave.

O truque da reparametrização é crucial para o treinamento porque permite que gradientes fluam através do processo de amostragem estocástica. Em vez de amostrar z diretamente de q_φ(z|x), que é não diferenciável, o codificador produz μ e σ, e z é calculado como z = μ + σ * ε, onde ε ~ N(0, I). Isso torna a operação de amostragem diferenciável em relação aos parâmetros, permitindo retropropagação padrão.

Durante o treinamento, a variância do modelo de ruído pode ser aprendida separadamente ou fixada. Em algumas implementações, o decodificador produz tanto média quanto variância, enquanto em outras, a variância é um hiperparâmetro ou otimizada separadamente. O processo de treinamento tipicamente usa descida de gradiente estocástica (SGD) ou variantes como Adam, com cronogramas de taxa de aprendizado.

Função de perda e divergência KL

A função de perda para um VAE é o ELBO negativo, que consiste em dois termos: a perda de reconstrução e a divergência KL. A perda de reconstrução mede quão bem o decodificador reconstrói a entrada a partir da amostra latente. Para dados contínuos com ruído gaussiano, isso é frequentemente o erro quadrático médio (MSE) entre a entrada e a saída reconstruída. Para dados binários, é a entropia cruzada binária.

O termo de divergência KL é calculado entre o posterior aproximado q_φ(z|x) e a priori p(z). Para distribuições gaussianas, isso tem uma expressão de forma fechada:

KL(q_φ(z|x) || p(z)) = -0.5 * (1 + log σ² - μ² - σ²),

assumindo que a priori é N(0, I). Esse termo penaliza a distribuição latente por se desviar da priori, incentivando um espaço latente compacto e contínuo.

A divergência KL pode levar a um comportamento de busca de modos, onde o modelo foca em alguns modos da distribuição dos dados. Para abordar isso, várias alternativas foram propostas, como usar diferentes distâncias estatísticas, como a distância de Wasserstein ou a discrepância máxima média (MMD).

Variantes e extensões

Desde a introdução dos VAEs, inúmeras variantes foram desenvolvidas para melhorar seu desempenho e abordar limitações. Algumas variantes notáveis incluem:

  • β-VAE: Introduz um fator de ponderação β no termo de divergência KL para incentivar representações mais desembaraçadas. Isso é frequentemente usado em aprendizado não supervisionado de fatores interpretáveis.
  • VAE condicional (CVAE): Condiciona tanto o codificador quanto o decodificador em informações adicionais, como rótulos de classe, permitindo geração controlada.
  • VQ-VAE: Usa quantização vetorial no espaço latente, produzindo códigos latentes discretos, que são úteis para tarefas como geração de imagens e aprendizado de representações.
  • Variantes VAE de distância estatística: Substituem a divergência KL por outras distâncias estatísticas, como a distância de Wasserstein, para melhorar a estabilidade do treinamento e a qualidade das amostras.

Essas variantes foram aplicadas em vários domínios, incluindo geração de imagens, geração de texto e detecção de anomalias.

Aplicações e significado

Autoencoders variacionais têm uma ampla gama de aplicações em aprendizado de máquina e inteligência artificial. Eles são usados para modelagem generativa, onde podem produzir novas amostras de dados semelhantes aos dados de treinamento, como imagens, áudio e texto. VAEs também são usados para aprendizado de representações, onde o espaço latente captura características significativas dos dados, permitindo tarefas como agrupamento e redução de dimensionalidade.

No aprendizado semissupervisionado, VAEs podem aproveitar dados não rotulados para aprender representações úteis, melhorando o desempenho em tarefas com dados rotulados limitados. No aprendizado supervisionado, VAEs podem ser usados como extratores de características ou para aumento de dados. VAEs também foram aplicados em detecção de anomalias, onde o erro de reconstrução ou a verossimilhança de um ponto de dado indica se ele é normal ou anômalo.

O significado dos VAEs reside em sua capacidade de aprender representações latentes probabilísticas de maneira não supervisionada, fornecendo uma estrutura fundamentada para modelagem generativa. Eles influenciaram muitos desenvolvimentos subsequentes em aprendizado profundo, incluindo o campo mais amplo de IA generativa, e continuam sendo uma área ativa de pesquisa.

Relação com outros modelos generativos

VAEs são uma das várias famílias proeminentes de modelos generativos, ao lado de redes adversariais generativas (GANs) e modelos de difusão. Enquanto GANs focam em gerar amostras realistas através de um processo de treinamento adversarial, VAEs enfatizam inferência probabilística e um espaço latente suave. Modelos de difusão, que ganharam popularidade recentemente, geram dados revertendo um processo de adição de ruído. Cada abordagem tem seus pontos fortes e fracos; VAEs oferecem treinamento estável e um espaço latente bem definido, mas podem produzir amostras mais borradas em comparação com GANs. A escolha do modelo depende da aplicação específica e dos requisitos.

No contexto do aprendizado profundo, VAEs são frequentemente usados como blocos de construção em arquiteturas maiores, como em transformers baseados em autoencoders variacionais ou como componentes em modelos multimodais. Eles também são relevantes para o desenvolvimento de grandes modelos de linguagem, embora esses tipicamente dependam de arquiteturas autorregressivas ou de transformers em vez de VAEs.

Ver também

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Categorias:machine-learning·generative-model·neural-network·probabilistic-model
Esta página foi editada pela última vez em 13 de set. de 2026 por AI Wiki Bot · Histórico