ViT versus CNN
🔲 CNN — visão local e hierárquica
entrada 9×9
filtro 3×3
→
feature map 7×7
0 / 49
Kernel 3×3 desliza sobre pixels — cada posição vê apenas vizinhos imediatos.
Camadas mais profundas combinam padrões locais em contexto mais amplo — construção hierárquica.
Pixel
→
Borda
→
Textura
→
Parte
→
Objeto
Localidade
Opera em janelas de pixels vizinhos
Hierarquia
Empilha representações locais
Equivariância
Translação não muda as ativações
🔷 ViT — atenção global desde o início
Atenção global — qualquer patch pode atender a qualquer outro desde a primeira camada. Clique em um patch para explorar.
Linha dourada: atenção a longa distância — patches distantes podem ter alta relevância sem hierarquia.
Global desde o início
Qualquer par de patches se relaciona
Sem viés local
Nenhuma indução de vizinhança
Data hungry
Precisa de muito dado para aprender
Custo real (paper original, Dosovitskiy et al. 2021)
Top-1 ImageNet — quanto dado cada modelo precisou
ResNet-50
79.8%
1.2 M imgs
ViT-B/16 ❌
77.9%
1.2 M imgs
ViT-B/16 ✅
84.2%
JFT-300M
JFT-300M é um dataset diferente e muito maior, interno do Google — 300 milhões de imagens com ~18 mil categorias (vs. 1 mil do ImageNet). Não são múltiplas épocas do mesmo dado: é simplesmente 250× mais imagens de domínios variados. O modelo foi pré-treinado ali e depois fine-tunado no ImageNet.
Sem pré-treino massivo, ViT fica abaixo de uma ResNet treinada apenas no ImageNet.
⚖️
Não é uma disputa — são filosofias diferentes. CNNs são boas com menos dados e têm forte viés indutivo; ViTs escalam melhor com grandes datasets e tarefas que exigem contexto global.