Un vision transformer (ViT) es un tipo de Transformer (architecture) diseñado para la visión por computadora. A diferencia de las redes neuronales convolucionales (CNN) que procesan píxeles mediante filtros convolucionales, un ViT descompone una imagen de entrada en una serie de parches cuadrados, serializa cada parche en un vector y lo mapea a una incrustación de menor dimensión mediante una única multiplicación de matrices. Estas incrustaciones de parches se procesan luego con un codificador transformer, que aplica mecanismos de atención de múltiples cabezas para capturar relaciones entre parches. Los ViT se introdujeron como alternativas a las CNN, ofreciendo diferentes sesgos inductivos, estabilidad de entrenamiento y eficiencia de datos. Generalmente son menos eficientes en datos que las CNN, pero tienen mayor capacidad, y algunos de los modelos de visión por computadora más grandes, como uno con 22 mil millones de parámetros, son ViT.
La arquitectura ViT se propuso por primera vez en 2020 y rápidamente logró resultados de última generación en clasificación de imágenes, superando el dominio previo de las CNN. Investigaciones posteriores produjeron muchas variantes, incluidas arquitecturas híbridas que combinan características de ViT y CNN. Los ViT han encontrado aplicaciones en reconocimiento de imágenes, segmentación de imágenes, predicción meteorológica y conducción autónoma.
Historia
Los transformers se introdujeron en el artículo de 2017 "Attention Is All You Need" y se volvieron ampliamente utilizados en el procesamiento del lenguaje natural. En 2019, un artículo aplicó ideas de transformers a la visión por computadora comenzando con una ResNet, una CNN estándar, y reemplazando todos los núcleos convolucionales con el mecanismo de autoatención. Este enfoque logró un rendimiento superior, pero no era un verdadero vision transformer.
En 2020, se adaptó un transformer solo con codificador para la visión por computadora, dando lugar al ViT, que alcanzó el estado del arte en clasificación de imágenes. El autoencoder enmascarado (2022) extendió el ViT para trabajar con entrenamiento no supervisado. Estos desarrollos también estimularon nuevos avances en redes neuronales convolucionales, lo que llevó a una fertilización cruzada entre los dos enfoques.
En 2021, se propusieron varias variantes importantes de ViT para mejorar la eficiencia, precisión o idoneidad de dominio. Dos estudios mejoraron la eficiencia y robustez añadiendo una CNN como preprocesador. El Swin Transformer logró resultados de última generación en conjuntos de datos de detección de objetos como COCO mediante ventanas deslizantes de atención similares a convoluciones y una estructura piramidal.
Descripción general
La arquitectura básica del ViT original de 2020 es un transformer solo con codificador similar a BERT. La imagen de entrada se representa como un tensor de forma H × W × C, donde H, W y C son altura, ancho y número de canales (típicamente RGB). La imagen se divide en parches cuadrados de tamaño P × P × C. Cada parche se aplana y se pasa a través de una capa lineal para obtener una incrustación de parche. Se añade una codificación posicional, que codifica la posición del parche en la imagen, a la incrustación. El artículo original comparó incrustaciones nulas, 1D, 2D y relativas, y adoptó la 1D.
La secuencia de incrustaciones de parches se procesa luego con varias capas de codificador transformer. El mecanismo de atención en un ViT transforma repetidamente vectores de representación de parches de imagen, incorporando relaciones semánticas entre parches, de manera análoga a cómo los transformers en el PLN capturan relaciones entre palabras.
Para usar la salida en tareas posteriores, se entrena una cabeza adicional. Para clasificación, se añade un MLP superficial (lineal-GeLU-lineal-softmax) en la parte superior, que produce una distribución de probabilidad sobre las clases.
Variantes
ViT original
El ViT original era un transformer solo con codificador entrenado con supervisión para predecir etiquetas de imagen a partir de parches. Usaba un token especial [CLS] en la entrada, y el vector de salida correspondiente servía como entrada a la cabeza MLP final. Este truco arquitectónico permitía al modelo comprimir toda la información relevante para la etiqueta en un solo vector.
Los transformers inicialmente tuvieron éxito en el PLN, como se ve en modelos como BERT y GPT-3. En contraste, el procesamiento típico de imágenes usaba CNN, con ejemplos conocidos como Xception, ResNet, EfficientNet, DenseNet e Inception. Los transformers miden relaciones entre pares de tokens de entrada, con un costo cuadrático en el número de tokens. Para imágenes, calcular relaciones para cada par de píxeles es prohibitivo, por lo que el ViT calcula relaciones entre píxeles en secciones pequeñas (por ejemplo, 16×16 píxeles), reduciendo drásticamente el costo. Cada sección se aplana, se multiplica por una matriz de incrustación y se añade a una incrustación posicional antes de alimentar al transformer.
Agrupación
Después del procesamiento, el ViT produce vectores de incrustación que deben convertirse en una única predicción de clase. El ViT original y el autoencoder enmascarado usaban un token ficticio [CLS], siguiendo a BERT. La salida en [CLS] se procesa con un módulo LayerNorm-feedforward-softmax.
La agrupación por promedio global (GAP) en su lugar toma el promedio de todos los tokens de salida como token de clasificación, y se mencionó en el artículo original como igualmente buena. La agrupación por atención de múltiples cabezas (MAP) aplica un bloque de atención de múltiples cabezas para agrupar los vectores, tomando una lista de vectores como entrada y produciendo una combinación ponderada.
Aplicaciones e impacto
Los ViT se han aplicado a una amplia gama de tareas de visión por computadora más allá de la clasificación, incluida la detección de objetos, segmentación y comprensión de video. También se usan en imágenes médicas y teledetección. La arquitectura ha influido en el desarrollo de modelos de visión a gran escala y se ha integrado en sistemas multimodales que combinan visión y lenguaje.
A pesar de sus ventajas, los ViT requieren más datos para entrenarse eficazmente que las CNN, lo que llevó al desarrollo de modelos híbridos y técnicas como destilación de conocimiento y preentrenamiento autosupervisado. El enfoque de autoencoder enmascarado permitió el aprendizaje no supervisado, reduciendo la necesidad de datos etiquetados.
Los ViT también han impulsado la innovación en optimización de hardware y software, ya que sus mecanismos de atención son computacionalmente intensivos. La investigación continúa en mejorar la eficiencia, interpretabilidad y robustez.
Véase también
- transformer
- red neuronal convolucional (no en la lista, pero como concepto)
- autoencoder enmascarado (no en la lista, pero como concepto)
- clasificación de imágenes (no en la lista, pero como concepto)