Redes Neurais Artificiais e Deep Learning · Insper

Modelos Generativos

Quatro formas de cortar o problema

Uma pergunta

Você tem um gerador de números aleatórios. Você quer uma fotografia.
Como transformar uma distribuição da qual você consegue amostrar em outra da qual não consegue?

  • Escrever ? Sobre um milhão de pixels, não — e só a constante que faz somar 1 sobre todas as imagens possíveis já é intratável.
  • Então toda família faz o mesmo movimento: cortar o problema difícil de amostragem numa sequência de problemas fáceis.
  • Elas diferem apenas em onde cortam. Essa escolha decide estabilidade de treino, qualidade das amostras, se há verossimilhança e quantas passagens custa uma imagem.

Quatro formas de cortar o problema

família o corte treinada por passagens por amostra verossimilhança
autorregressiva máxima verossimilhança uma por dimensão exata
variável latente (VAE) um limite (ELBO) uma um limite
adversarial (GAN) nenhum: um gerador e um crítico um jogo minimax uma nenhuma
difusão / fluxo tempo: ruído → dados em passos pequenos regressão dezenas a centenas pela ODE

: a -ésima dimensão (um pixel, um token); : as anteriores · : o latente, sorteado de um simples · ELBO: um limite inferior de · ODE: a equação diferencial que leva o ruído aos dados

Duas dessas linhas estão aposentadas como métodos de manchete. Duas movem o mundo.

Densidade explícita ou implícita

Você treinou um modelo (pesos ). Alguém lhe entrega uma imagem de teste . O modelo consegue dizer , a densidade que ele dá a ?

  • Explícito: sim, ou um limite dela — autorregressivo (exata), VAE (limite), difusão e fluxos (pela ODE).
  • Implícito: não — a GAN só amostra. Entra ruído, sai imagem; nenhuma densidade em lugar nenhum.
  • Consequência: uma verossimilhança em dados separados só existe para o primeiro grupo. Para uma GAN, as amostras são a única evidência.

Três formas de treinar

  • Por verossimilhança — maximizar ou o limite dela: autorregressivo, VAE.
  • Adversarial — um crítico ocupa o lugar da verossimilhança: GAN.
  • Regressão sobre um score ou uma velocidade — difusão e flow matching. Não precisa de densidade normalizada nem de crítico.

Score: , a direção em que a densidade sobe. Velocidade: , para onde um ponto deve andar no instante do caminho ruído → dados.

Fora da tabela: os normalizing flows — uma rede inversível com jacobiano barato, de modo que a mudança de variáveis dá verossimilhança exata numa passagem. A inversibilidade limita a arquitetura e eles perderam em qualidade; a versão em tempo contínuo deles é o que o flow matching treina (veja a aula de flow matching).

A conta do autorregressivo

= número de dimensões (pixels × canais); um fator por dimensão.

Uma passagem da rede por fator. Quantas passagens para uma imagem RGB de 64 × 64, pixel a pixel?

  • passagens sequenciais (cada fator espera o anterior) — para uma imagem pequena.
  • Por isso modelos autorregressivos de imagem primeiro comprimem a imagem em tokens: uma 512 × 512, reduzida 16× por lado, vira 1 024 tokens (veja a aula de geração autorregressiva).
  • A conta é o número de dimensões. Ela não quer saber se a imagem é simples.

A conta da difusão

  • Sorteie um ruído ; siga um campo de velocidade aprendido de (ruído) a (dados).
  • Com passos de Euler, cada passo é : uma passagem da rede. Você escolhe depois do treino, na inferência.
  • Poucos passos: rápido e errado. Muitos passos: lento e certo. A conta é o número de passos.

Qualidade trocada por latência, na hora de amostrar, com a mesma rede. Esse botão é a propriedade que fez a difusão vencer.

Simulador · o mesmo alvo, três amostradores

O que o painel mede

Fora dos dados = a mais de de todo modo (: o desvio-padrão de cada gaussiana). Em 2-D, : uma amostra perfeita já mostra .

passos de Euler 1 4 8 16 32 128
ODE (flow matching) 100% 62% 20% 4% 1% 1%
+ corretor de Langevin 100% 53% 16% 2% 1% 0%
avaliações da rede com corretor, 1 7 15 31 63 255
  • Depois de ~32 passos você está pagando por nada: 1% é o piso de uma amostra perfeita, medido em 600 pontos por painel.
  • O corretor (Langevin: um passo pequeno a favor do score, mais ruído) custa uma avaliação do score por passo, menos no último: .
  • O corretor ajuda com 8–16 passos, onde o erro de integração é grande; com 128 não sobra nada a corrigir.

Por que um passo cai no meio

Com um passo de Euler, toda amostra cai no centro do anel — onde não há dados. Por quê?

  • O flow matching treina para prever : a velocidade da reta do ruído ao dado .
  • Em o ponto ainda é : não diz a que modo vai.
  • Então a melhor previsão (exata!) é a média: .
  • Um passo de tamanho 1: , o centro do anel.

E[x]z1 passo4 passos128 passos

O caminho do ruído a um modo é curvo; um passo reto não o segue. No diagrama, o campo exato do anel e o mesmo z integrado com 1, 4 e 128 passos: com 4 ele ainda para entre dois modos.

Simulador · uma amostra, dois amostradores, linha a linha

p(x1, x2) · o alvo
uniformes do sorteio
ruído z

O outro eixo: a falha

Ajustar = minimizar uma divergência. tira a média sob o primeiro argumento — e por isso não é simétrica:

éé

O modelo não consegue representar os dados exatamente — o que é sempre. Qual direção dá o quê?

Simulador · KL para frente e reversa

KL para frente: cobrir tudo, borrar

  • Punida onde quer que os dados tenham massa e o modelo não.
  • O ótimo dela cobre todos os modos — inclusive o vale vazio entre eles.
  • Isto é máxima verossimilhança: . É o que VAEs e modelos autorregressivos otimizam.

Borrão não é bug do decodificador. É o objetivo recebendo o que pediu.

No laboratório: uma gaussiana ajustada por máxima verossimilhança ao anel deixa 78,7% das amostras fora dos dados (a mais de ) — e ainda toca os 8 modos (cada um recebe ≥ 1% das amostras).

KL reversa: escolher um modo, abandonar o resto

  • Punida só onde o modelo põe massa; indiferente a dados que ele nunca visita.
  • O ótimo dela escolhe um modo: toda amostra plausível, uma parte inteira da distribuição sumida.
  • Isso é colapso de modos — enunciado como propriedade de um objetivo, não como acidente de treino.

No laboratório: a gaussiana da KL reversa cai em 1 de 8 modos, na largura dos próprios dados (). KL : sobre o modo escolhido , então . Quatro pontos de partida, quatro modos diferentes.

Diga uma vez, use sete vezes

Borrado e colapsado não são defeitos sem relação. São as duas pontas de uma mesma assimetria.

  • Todo modelo deste módulo se posiciona em algum ponto dela.
  • Saber onde diz como serão as amostras antes de rodar o modelo.
  • A saída não é uma direção melhor da KL: é um modelo expressivo o bastante para não precisar escolher.

O trilema

Durante boa parte dos anos 2010: qualidade, cobertura, velocidade — escolha duas.

família ficou com abriu mão de
GAN qualidade, velocidade cobertura
VAE, normalizing flows cobertura, velocidade qualidade
difusão qualidade, cobertura velocidade

De qual das três você abriria mão, se só pudesse recomprar uma depois?

Xiao, Kreis & Vahdat (2022), Tackling the Generative Learning Trilemma with Denoising Diffusion GANs, ICLR.

Velocidade é a que dá para recomprar

  • Qualidade e cobertura são decididas no treino — são o que o modelo aprendeu.
  • O número de passos de amostragem é decidido na inferência.
  • Então a difusão escolheu o canto em que a propriedade ausente era recuperável — e depois a recuperou:
  • solvers melhores → fluxos retificados → destilação para um punhado de passos → para um.
  • As contagens de passos caíram de 1000 (o DDPM, 2020) para menos de 10.

As sete aulas e para que serve cada uma

aula família por que está aqui
VAE variável latente o compressor sobre o qual roda toda difusão latente
GAN adversarial a perda sobrevive: decodificadores, super-resolução, destilação de um passo
CLIP não generativo a ponte: condicionar numa frase
Stable Diffusion difusão o sistema completo: espaço latente, U-Net, guidance, samplers
Flow matching fluxo treino mais simples, caminhos mais retos
Diffusion Transformers difusão um backbone Transformer e leis de escala
Geração autorregressiva autorregressiva imagens como tokens, modelos any-to-any

Uma história de gargalos

quando o quê o gargalo que caiu
1985–2006 máquinas de Boltzmann, deep belief nets aprender uma distribuição sem rótulos
2013 VAE retropropagar através de um nó aleatório
2014 GAN precisar de uma verossimilhança tratável
2015–2020 difusão, até o DDPM qualidade sem treino adversarial
2021 CLIP, difusão latente condicionar em linguagem; um espaço 48× menor
2022–2023 Stable Diffusion, DALL·E 2, Midjourney acesso: pesos abertos
2023–2024 flow matching, DiT, destilação caminhos mais retos, backbone escalável, < 10 passos

48× = (512 · 512 · 3) / (64 · 64 · 4) = 786 432 / 16 384: os pixels de uma imagem 512 × 512 contra o latente do Stable Diffusion (aula de VAE).

Duas coisas que este curso vai repetir

Avaliação é um problema em aberto. O FID é o número padrão e um substituto ruim: sensível ao extrator de features e ao redimensionamento, não comparável entre artigos e, quando os modelos já são bons, acompanha mal o julgamento humano (veja a aula de métricas generativas).

Os dados de treino são o trabalho de outras pessoas. Consentimento, estilo sob demanda, as pessoas cujo trabalho era aquilo: nada resolvido, tudo em litígio e parte da decisão de engenharia.

Medido no laboratório · densidades explícitas

Oito gaussianas num anel de raio 2, . NLL = média de nos pontos de teste, em nats (menor é melhor); a densidade verdadeira marca 1,476.

modelo NLL treino NLL teste fora dos dados modos
uma gaussiana (GMM ) 3,547 3,546 78,7% 8/8
GMM 1,479 1,478 1,0% 8/8
estimativa por kernel, 0,891 2,581 0,9% 8/8
estimativa por kernel, 1,439 1,500 1,2% 8/8
  • Uma NLL de treino abaixo da verdade é memorização: cada ponto é avaliado pelo próprio kernel.
  • Só a verossimilhança em dados separados é evidência.

GMM k: mistura de k gaussianas · kernel: uma gaussiana de largura h em cada ponto de treino · modos: quantos recebem ≥ 1% das amostras

nat: a unidade de um log natural (base e) · 1 nat ≈ 1,44 bit · todo log deste deck é natural, então NLL e KL saem em nats

Medido no laboratório · um modelo por família

modelo NLL teste fora dos dados modos passagens
autorregressivo, 64 × 64 células 1,536 3,0% 8/8 2
GAN — 7,6% 8/8 1
flow matching, 32 passos 1,514 4,7% 8/8 32
flow matching, 1 passo 100% 0/8 1
anel fino (): GAN, 3 sementes — 22–46% modos caem a 6–7 1
anel fino: flow matching, 64 passos 6,4% 8/8 64

Passagens: avaliações sequenciais da rede por amostra (o autorregressivo paga 2 porque o dado tem d = 2 dimensões; B = 64 células por coordenada) · —: a GAN não tem verossimilhança · vazio: não medido. As amostras da GAN fora dos dados são pontes entre os modos: um gerador contínuo sobre um ruído conexo não faz oito ilhas separadas. A NLL do fluxo vem pela ODE (100 passos × 3 passagens por ponto).

Laboratório · o mapa, medido

Notebook no Colab, ~2 h, dados sintéticos 2-D, CPU. Cada seção termina num checkpoint com valor de verificação.

  1. os dados, a verdade, duas medidas
  2. misturas de gaussianas e uma estimativa por kernel
  3. KL para frente × reversa com uma gaussiana
  4. um modelo autorregressivo numa grade
  1. uma GAN e o anel fino
  2. flow matching: passos e a verossimilhança pela ODE
  3. o mapa como tabela
  4. um modo raro com 2% dos dados: quais famílias o mantêm?

abrir no Colab →

Para levar

  1. Todo modelo generativo corta um problema intratável de amostragem em pedaços tratáveis; o corte decide custo, estabilidade e verossimilhança.
  2. Modelos explícitos dão ou um limite; a GAN é implícita e só amostra.
  3. O custo autorregressivo escala com dimensões; o da difusão com passos — um botão ajustado na inferência.
  4. A KL é assimétrica: para frente cobre e borra, reversa procura um modo e colapsa.
  5. O trilema quebrou onde a propriedade ausente podia ser recomprada: a velocidade.
  6. VAEs e GANs seguem vivos como componentes. Avaliação e proveniência fazem parte do trabalho.

Roteiro: (1) a pergunta que todo modelo generativo responde; (2) as quatro decomposições e o custo de cada uma; (3) o mesmo alvo, três amostradores; (4) a assimetria da KL por trás do borrão e do colapso de modos; (5) o trilema e os sete capítulos seguintes. Fecha com o laboratório no Colab.

Esta aula é o mapa; as sete seguintes são o território. Deixe a turma chutar o que "pedaços fáceis" pode querer dizer antes dos tópicos: um pixel por vez, um latente e um decodificador, um pequeno passo de denoising.

Pergunte quais duas antes de dizer: VAE e GAN não geram mais as imagens de manchete; autorregressivos (LLMs, tokens de imagem) e difusão/fluxo geram. VAE e GAN voltam depois como componentes.

Toda grandeza é exata (score, velocidade, marginais discretas): nada é treinado, então o que se vê é a decomposição. Arraste os passos para 1, depois 8, depois 32. Depois ligue o Langevin em 8 e em 128. Encolha a grade autorregressiva para 16 para ver a escada.

O corretor custa uma avaliação a mais (do score) por passo, exceto no último: 2n − 1. É a troca ODE-versus-SDE em miniatura (Song et al., 2021).

Quatro pontos nos cantos de um quadrado, então todo número se confere à mão. Linhas 1–4: o AR lê p(x1) = 0,5, sorteia x1 = −1, depois p(x2 | x1) = (0,8; 0,2), sorteia x2 = −1; log p = log 0,4, em 2 passagens. Linhas 5–9 com n_steps = 4: x_hat começa em E[x] = (0; 0) e a amostra para em (1; 0,82). Depois "um passo: a média" (cai em (0; 0), o slide anterior em números), n_steps = 8 (no canto) e "pesos desiguais" (um passo cai em (−0,6; −0,6): a média, não o centro).

Dois modos de largura e peso diferentes, um modelo gaussiano. Aperte "minimizar KL(dados‖modelo)": ele cobre os dois modos com o pico no vale. Aperte o outro: ele escolhe o modo estreito e pesado. A paisagem à direita mostra os dois ótimos.

48×: 512·512·3 = 786 432 números contra 64·64·4 = 16 384 no latente. Os n-gramas de Shannon (1948) são a regra da cadeia como recurso generativo, antes de tudo isso.