Um autoencoder variacional (VAE) é uma arquitetura de rede neural artificial introduzida por Diederik P. Kingma e Max Welling em 2013. Ele faz parte das famílias de modelos gráficos probabilísticos e métodos bayesianos variacionais. Além de ser visto como uma arquitetura de rede neural autoencoder, os autoencoders variacionais também podem ser estudados dentro da formulação matemática dos métodos bayesianos variacionais, conectando uma rede codificadora neural ao seu decodificador por meio de um espaço latente probabilístico (por exemplo, como uma distribuição gaussiana multivariada) que corresponde aos parâmetros de uma distribuição variacional.
O codificador mapeia cada ponto (como uma imagem) de um grande conjunto de dados complexo para uma distribuição dentro do espaço latente, em vez de um único ponto nesse espaço. O decodificador tem a função oposta, que é mapear do espaço latente para o espaço de entrada, novamente de acordo com uma distribuição (embora, na prática, ruído raramente seja adicionado durante o estágio de decodificação). Ao mapear um ponto para uma distribuição em vez de um único ponto, a rede pode evitar o sobreajuste dos dados de treinamento. Ambas as redes são tipicamente treinadas em conjunto com o uso do truque de reparametrização, embora a variância do modelo de ruído possa ser aprendida separadamente. Embora esse tipo de modelo tenha sido inicialmente projetado para aprendizado não supervisionado, sua eficácia foi comprovada para aprendizado semissupervisionado e aprendizado supervisionado.
Visão geral da arquitetura e operação
Um autoencoder variacional é um modelo generativo com uma distribuição anterior e de ruído, respectivamente. Normalmente, esses modelos são treinados usando o meta-algoritmo de maximização de expectativa (por exemplo, PCA probabilístico, codificação esparsa). Tal esquema otimiza um limite inferior da verossimilhança dos dados, que geralmente é computacionalmente intratável, e, ao fazê-lo, requer a descoberta de distribuições q, ou posteriores variacionais. Essas distribuições q são normalmente parametrizadas para cada ponto de dados individual em um processo de otimização separado. No entanto, os autoencoders variacionais usam uma rede neural como uma abordagem amortizada para otimizar conjuntamente entre os pontos de dados. Dessa forma, os mesmos parâmetros são reutilizados para múltiplos pontos de dados, o que pode resultar em economias massivas de memória. A primeira rede neural recebe como entrada os próprios pontos de dados e gera parâmetros para a distribuição variacional. Como ela mapeia de um espaço de entrada conhecido para o espaço latente de baixa dimensão, é chamada de codificador.
O decodificador é a segunda rede neural deste modelo. É uma função que mapeia do espaço latente para o espaço de entrada, por exemplo, como as médias da distribuição de ruído. É possível usar outra rede neural que mapeie para a variância, no entanto, isso pode ser omitido por simplicidade. Nesse caso, a variância pode ser otimizada com descida de gradiente.
Para otimizar este modelo, é necessário conhecer dois termos: 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, portanto, diferem dependendo da distribuição de ruído e da anterior assumida dos dados, aqui referida como distribuição p. Por exemplo, uma tarefa VAE padrão como IMAGENET é tipicamente assumida como tendo ruído gaussianamente distribuído; no entanto, tarefas como MNIST binarizado exigem ruído de Bernoulli. A KL-D da expressão de energia livre maximiza a massa de probabilidade da distribuição q que se sobrepõe à distribuição p, o que infelizmente pode resultar em comportamento de busca de modos. O termo de "reconstrução" é o restante da expressão de energia livre e requer uma aproximação por amostragem para calcular seu valor esperado.
Abordagens mais recentes substituem a divergência de Kullback–Leibler (KL-D) por várias distâncias estatísticas, veja "Variantes de VAE com distância estatística" abaixo.
Formulação
Do ponto de vista da modelagem probabilística, deseja-se maximizar a verossimilhança dos dados \(x\) por sua distribuição de probabilidade parametrizada escolhida \(p_\theta(x)=p(x|\theta)\). Essa distribuição é geralmente escolhida como uma gaussiana \(N(x|\mu,\sigma)\) que é parametrizada por \(\mu\) e \(\sigma\), respectivamente, e, como membro da família exponencial, é fácil de trabalhar como distribuição de ruído. Distribuições simples são fáceis o suficiente para maximizar, no entanto, distribuições onde uma anterior é assumida sobre os latentes \(z\) resultam em integrais intratáveis. Vamos encontrar \(p_\theta(x)\) via marginalização sobre \(z\).
\(p_\theta(x) = \int_z p_\theta({x,z}) \, dz,\)
onde \(p_\theta({x,z})\) representa a distribuição conjunta sob \(p_\theta\) dos dados observáveis \(x\) e sua representação latente ou codificação \(z\). De acordo com a regra da cadeia, a equação pode ser reescrita como
\(p_\theta(x) = \int_z p_\theta({x|z}) p_\theta(z) \, dz.\)
Na prática, a integral sobre \(z\) é intratável porque o espaço latente é de alta dimensão e o posterior verdadeiro \(p_\theta(z|x)\) é desconhecido. O VAE introduz uma rede codificadora \(q_\phi(z|x)\) para aproximar o posterior verdadeiro, e uma rede decodificadora \(p_\theta(x|z)\) para reconstruir os dados. O objetivo de treinamento é o limite inferior da evidência (ELBO), que é a soma do termo de reconstrução e do termo de divergência KL. O truque de reparametrização permite a retropropagação através do processo de amostragem ao expressar \(z\) como \(z = \mu + \sigma \odot \epsilon\), onde \(\epsilon\) é amostrado de uma distribuição normal padrão.
Treinamento e otimização
O VAE é treinado maximizando o ELBO em relação aos parâmetros \(\theta\) e \(\phi\). O termo de reconstrução incentiva o decodificador a reconstruir com precisão os dados de entrada, enquanto o termo de divergência KL regulariza o espaço latente para estar próximo da anterior (tipicamente uma distribuição normal padrão). Esse equilíbrio ajuda a prevenir o sobreajuste e permite a geração de novos pontos de dados ao amostrar da anterior e decodificar.
O truque de reparametrização é crucial para o treinamento eficiente usando descida de gradiente estocástica. Ao mover a estocasticidade para a variável de ruído \(\epsilon\), os gradientes podem fluir através das partes determinísticas da rede. A variância do modelo de ruído pode ser aprendida separadamente, e o erro de reconstrução é frequentemente calculado usando erro quadrático médio para dados contínuos ou entropia cruzada binária para dados binários.
Aplicações e impacto
O VAE tornou-se um modelo fundamental em IA generativa, permitindo tarefas como geração de imagens, detecção de anomalias e aprendizado de representações. Ele foi estendido a vários domínios, incluindo aprendizado profundo e aprendizado de máquina, e influenciou o desenvolvimento de outros modelos generativos como modelos de linguagem de grande escala, embora esses tipicamente usem arquiteturas diferentes. VAEs também são usados em configurações de aprendizado semissupervisionado e supervisionado, demonstrando sua versatilidade além do aprendizado não supervisionado.
O artigo original de Kingma e Welling foi altamente influente, e o framework VAE foi adaptado de inúmeras maneiras, como o uso de diferentes distâncias estatísticas em vez da divergência KL para abordar o colapso de modos. A capacidade do modelo de aprender espaços latentes suaves tornou-o útil para interpolação e manipulação de atributos de dados.
Variantes e extensões
Várias variantes de VAEs foram propostas para melhorar seu desempenho. Por exemplo, o beta-VAE introduz um fator de ponderação no termo de divergência KL para incentivar representações mais desembaraçadas. Outras variantes usam diferentes anteriores, como modelos de mistura gaussiana, ou empregam treinamento adversarial para melhorar o realismo das amostras geradas. O truque de reparametrização também foi generalizado para outras distribuições, como variáveis categóricas, usando a aproximação Gumbel-softmax.
No contexto de inteligência artificial, VAEs são frequentemente comparados com redes adversariais generativas (GANs), que são outra classe de modelos generativos. Enquanto GANs podem produzir imagens mais nítidas, VAEs tendem a ser mais estáveis para treinar e fornecem um framework probabilístico útil para estimativa de incerteza. A partir do início dos anos 2020, VAEs permanecem uma área ativa de pesquisa, com aplicações em design de redes neurais e além.