P46 — Vision Transformer

Arquitectura y entrenamiento · Trocea la imagen en parches y trátalos como palabras. La convolución deja de ser obligatoria en visión.

Nivel: L3 · Motor: vit · Notebook: P46_vit.ipynb · Anexo: complejidad y coste

1. Identificación

Campo Valor
Título original An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
Autoría Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov y otros
Año 2020
Venue arXiv:2010.11929 · ICLR 2021
Fuente primaria arXiv:2010.11929
Acceso Abierto
Fecha de consulta 2026-08-16

2. Problema anterior

Desde AlexNet, la convolución era el supuesto de fondo de toda la visión por computador. Su fuerza está en tres sesgos inductivos que trae de fábrica: localidad —los píxeles cercanos importan juntos—, equivarianza a la traslación —un gato es un gato esté donde esté— y jerarquía espacial.

Mientras tanto, en lenguaje el Transformer había desplazado a las recurrentes por completo. La pregunta natural quedaba abierta: ¿esos sesgos son necesarios, o simplemente muy útiles cuando hay pocos datos?

3. Propuesta

Aplicar un Transformer casi sin modificar a la imagen. Se parte en parches fijos —16×16 píxeles—, cada parche se aplana y se proyecta linealmente a un vector, se le suma una codificación posicional y se le añade un token de clase. A partir de ahí, es literalmente el codificador del Transformer.

Ningún sesgo inductivo espacial. Ni localidad, ni equivarianza, ni jerarquía: solo el orden que inyecta la codificación posicional.

Y el resultado que da nombre al artículo — at scale: con datos suficientes, la ausencia de sesgos deja de ser un problema y se convierte en ventaja, porque el modelo aprende de los datos la estructura que la convolución imponía de antemano.

4. Intuición sin fórmulas

Un rompecabezas donde te dan las piezas numeradas por su posición. Nadie te dice que las piezas contiguas se relacionan más: lo descubres mirando muchísimos rompecabezas.

Dónde deja de funcionar la analogía: con pocos rompecabezas, quien ya sabe que las piezas vecinas encajan gana siempre. Ese «ya sabe» es exactamente el sesgo inductivo de la convolución, y por eso la CNN gana en régimen de datos medianos.

5. Matemática mínima

Imagen H×W×C, parche P×P
    N = (H/P) · (W/P)  parches
    cada uno se aplana a P²·C y se proyecta a dimensión d

    z₀ = [x_clase ; x¹E ; x²E ; … ; x^N E] + E_pos

Coste de la atención: O(N²)
imagen parche tokens (+clase) coste de atención relativo
224×224 32×32 50 0,06
224×224 16×16 197 1,00
384×384 16×16 577 8,58
512×512 16×16 1025 27,07

Bajar el parche de 32 a 16 multiplica el coste por 17: la resolución se paga al cuadrado. Ese es el compromiso central de la arquitectura.

💡 Consejo

Puente matemático. Esta sección da por sabido lo siguiente. Si algo no te suena, léelo primero: está explicado una sola vez, en un solo sitio, y sirve para todas las fichas.

Dónde Qué necesitas de ahí
A05 §2 · El cruce: atención frente a recurrencia el coste cuadrático en el número de parches, que decide la resolución viable
A01 §4 · Matrices como transformaciones proyectar un parche aplanado es una transformación lineal

6. Arquitectura o flujo

flowchart LR
    I["🖼️ imagen 224×224"] --> P["parches 16×16<br/>→ 196 trozos"]
    P --> E["proyección lineal<br/>768 → d"]
    E --> PE["+ codificación posicional"]
    CLS["token [clase]"] --> PE
    PE --> T["🔁 codificador Transformer<br/>(sin cambios)"]
    T --> H["estado del token [clase]"]
    H --> C["clasificador"]
    style T fill:#2a1a3a,stroke:#8957e5,color:#f0f6fc

7. Qué observar en el paper original

8. Evidencia y resultados

Preentrenamiento en conjuntos de imágenes de tamaño creciente —del orden de un millón, diez millones y cientos de millones de imágenes— con evaluación por transferencia a varios conjuntos de clasificación.

Las cifras por conjunto y por tamaño de preentrenamiento están en el artículo. Verificarlas allí. El punto de cruce entre CNN y ViT es el dato que hay que leer, no el máximo absoluto.

La miniatura de este eje cuenta tokens y coste de atención: hace tangible por qué la resolución es cara y qué se gana bajando el tamaño de parche.

9. Impacto

10. Limitaciones

  1. Hambre de datos: sin preentrenamiento a gran escala, una CNN comparable lo supera.
  2. Coste cuadrático en el número de parches, que hace cara la alta resolución.
  3. Los parches son una rejilla rígida: parten objetos por la mitad sin miramiento.
  4. Menos eficiente en datos por diseño: lo que la convolución sabe gratis, aquí hay que aprenderlo.
  5. La comparación con CNN depende del régimen de datos y de cómputo: no hay un ganador absoluto, y el propio paper es explícito en esto.
  6. Difícil en tareas densas (segmentación, detección) sin modificaciones, que llegaron después con arquitecturas jerárquicas como Swin.

11. Errores comunes

Error Corrección
«ViT es mejor que las CNN» Solo por encima de cierta escala de preentrenamiento. Por debajo, la CNN gana — y el paper lo muestra.
«No tiene ningún sesgo inductivo» Tiene uno: la partición en parches impone una rejilla. Lo que no tiene son localidad ni equivarianza.
«Es un Transformer adaptado a imagen» Es lo contrario: la aportación es que no hace falta adaptarlo. La adaptación está en la entrada.
«El token de clase es imprescindible» Es una elección heredada de BERT. El promediado de parches funciona de forma comparable.
«Parches más pequeños siempre mejor» Mejora la resolución y multiplica el coste al cuadrado: de parche 32 a 16, ×17.

12. Relación con trabajos anteriores

13. Relación con trabajos posteriores

14. Notebook asociado

P46_vit.ipynb

Qué implementa: el conteo de tokens y el coste relativo de atención para cuatro configuraciones de imagen y parche, y la comparación explícita de sesgos inductivos entre CNN y ViT.

Qué NO implementa: no hay imagen, ni parches reales, ni modelo, ni entrenamiento. El resultado central del paper —qué pasa al preentrenar a escala— no es reproducible aquí.

ai-evolution paper-lab P46 --seed 7

15. Actividades Bloom

Nivel Actividad
Recordar Enumera los tres sesgos inductivos de la convolución.
Explicar Explica por qué ViT necesita más datos que una CNN.
Aplicar Calcula los tokens de una imagen de 640×640 con parches de 16.
Analizar ¿Por qué el coste crece al cuadrado al bajar el tamaño de parche?
Evaluar «Las CNN quedaron obsoletas». Evalúa con el régimen de datos en la mano.
Crear Diseña un esquema de parcheado que reduzca el coste sin perder resolución efectiva.

16. Autoevaluación

  1. ¿Cómo se convierte una imagen en una secuencia?
  2. ¿Qué sesgos inductivos pierde ViT y qué gana a cambio?
  3. ¿Cuántos tokens produce una imagen de 224×224 con parches de 16?
  4. ¿Por qué la alta resolución es cara?
  5. ¿En qué régimen gana la CNN?
  6. ¿Qué redescubre el modelo en sus capas bajas?
  7. ¿Por qué este paper importa para lo multimodal?

17. Respuestas esperadas

  1. Se parte en parches de tamaño fijo, cada uno se aplana y se proyecta linealmente a un vector, y se le suma una codificación posicional. Se añade un token de clase al principio.
  2. Pierde localidad, equivarianza a la traslación y jerarquía espacial. Gana capacidad de modelar relaciones a larga distancia desde la primera capa y de escalar mejor con datos.
  3. 196 parches más el token de clase: 197.
  4. Porque el coste de la atención es cuadrático en el número de tokens, y el número de tokens crece con el cuadrado del lado de la imagen dividido por el del parche.
  5. Con conjuntos de datos pequeños o medianos, donde sus sesgos inductivos sustituyen a datos que no existen.
  6. La localidad: las visualizaciones muestran que en capas bajas la atención se concentra en parches cercanos, aunque nada en la arquitectura se lo imponga.
  7. Porque unifica la arquitectura: si imagen y texto son secuencias de vectores procesadas por el mismo bloque, un solo modelo puede consumir ambas.

18. Fuentes primarias


⬅️ Anterior: P45 Destilación · 📇 Índice · 📝 Evaluación · 🏫 Clase 061 · Clasificación y representación visual · ➡️ Siguiente: P47 AlphaFold