: 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.
os dados, a verdade, duas medidas
misturas de gaussianas e uma estimativa por kernel
KL para frente × reversa com uma gaussiana
um modelo autorregressivo numa grade
uma GAN e o anel fino
flow matching: passos e a verossimilhança pela ODE
o mapa como tabela
um modo raro com 2% dos dados: quais famílias o mantêm?
Todo modelo generativo corta um problema intratável de amostragem em pedaços tratáveis; o corte decide custo, estabilidade e verossimilhança.
Modelos explícitos dão ou um limite; a GAN é implícita e só amostra.
O custo autorregressivo escala com dimensões; o da difusão com passos — um botão ajustado na inferência.
A KL é assimétrica: para frente cobre e borra, reversa procura um modo e colapsa.
O trilema quebrou onde a propriedade ausente podia ser recomprada: a velocidade.
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.