Transformers Visuales (ViT)
Rubén Rodríguez Abril
Los Transformers Visuales (ViT), aparecidos en 2021, adaptan la arquitectura transformer a tareas de visión artificial, usando preentrenamiento autosupervisado sobre grandes bases de datos (ImageNet, JFT-300M). Dividen imágenes en parches procesados como tokens en una estructura muy parecida a la de los modelos de lenguaje, superando el rendimiento de las CNNs con suficientes datos. Aunque inicialmente enfocados en clasificación de imágenes, modelos posteriores de ViT demostraron gran eficiencia en otras tareas como detección de objetos y segmentación. Su aparición estableció un nuevo nexo entre el procesamiento de lenguaje y la visión artificial y abrió paso con ello a futuros modelos multimodales.
Introducción
La arquitectura transformer dio un extraordinario impuso a la disciplina del procesamiento de lenguaje natural, y por ello algunos autores se plantearon introducirla también en los sistemas de visión artificial, desplazando (o combinándose) con las redes convolucionales (CNNs), en aras a conseguir una mayor integración de las información gráfica y de texto en los redes neuronales artificiales.
En este artículo analizaremos someramente uno de estos modelos, el de los Transformers Visuales (Visual Transformers, ViT), dedicado a la clasificación de imágenes y que fue presentado por un equipo de Google Research en su trabajo Transformers for Image Recognition At Scale, de Junio de 2021.
Arquitectura
La arquitectura del modelo es la de un codificador transformer, muy similar a la original de 2017 (Vaswani et al) y a su implementación de BERT. Los transformers visuales presentan las siguientes innovaciones y particularidades:
-La imagen es dividida en trozos (patches) de dimensión 16×16.
-Estos trozos son sometidos a un embedding que los transforma en vectores unidimensionales/tokens. A cada vector de embedding se le suma otro de codificación posicional unidimensional. Los vectores resultantes son dispuestos en una matriz de contexto con la que se alimenta al cuerpo principal del modelo.
-En el último módulo transformer, el primer token de la matriz, que recibe el nombre de [CLS], es extraído. Y se le hace pasar a través de mini-red orientada hacia adelante acompañada de una función softmax, que es la que realiza la clasificación.
Figura 1. Esquema de un transformer visual. Como es usual, cada módulo de transformer se compone de dos subsecciones: una unidad de atención y una mini-red orientada hacia adelante. Esta última consiste en dos capas densas intercaladas por una capa GeLU. Una capa de normalización se encarga de que todos los vectores puedan ser entendidos como puntos en la superficie de una hipersuperficie de radio 1.
Alternativamente, es posible crear una arquitectura híbrida en los que los parches sean extraídos de los mapas de características de una red convolucional, en lugar de directamente desde la imagen.
Versiones del modelo
Los investigadores crearon varias versiones del modelo, de diferentes tamaños:
-Básico (Basic, ViT-B/16), con 86 millones de parámetros, 12 capas, tokens de dimensión 768 y parches (patches) de dimensión 16×16.
-Grande (Large, ViT-L/16), con 307 millones de parámetros, 24 capas, tokens de dimensión 1024 y parches (patches) de dimensión 16×16.
-Enorme (Huge, ViT-H/14), con 632 millones de parámetros, 32 capas, tokens de dimensión 1280 y parches (patches) de dimensión 14×14.
Entrenamiento
Una de las causas de la enorme eficiencia de los transformers es su capacidad de ser preentrenados de una manera autosupervisada, con datos no etiquetados por operadores humanos. También los transformers visuales fueron sometidos a un proceso de preentrenamiento. Para ello fueron utilizadas varias bases de datos, de menor a mayor tamaño: ImageNet, ImageNet-21k y JFT-300M.
El método utilizado fue el enmascaramiento de tokens, procedente de BERT. Este proceso consiste en enmascarar varios tokens de la cadena entrada para que el modelo los reconstruya. Mientras que en BERT lo que se ocultaba eran fragmentos de palabras, en un transformer visual se enmascaran parches singulares de la imagen.
El modelo original fue afinado para realizar tareas de clasificación de imágenes, utilizando las bases de datos ya referidas. Modelos posteriores de transformers visuales han demostrado su eficiencia en la realización de otras tareas como la detección de objetos, la generación de imágenes o el procesamiento de video.
Rendimiento
En las pruebas de reconocimiento visual, el rendimiento de los ViT fue inferior al de las CNNs en las bases de datos más pequeñas, pero lo superó cuando se superaba una cierta masa crítica de datos de entrenamiento. Tal vez ello se deba al hecho de que en las capas convolucionales el kernel sólo actúa sobre una determinada área (cuadrangular) del mapa de características anterior, por lo que las primeras capas procesan información relativa a patrones locales mientras que la información global, de una naturaleza más semántica, es extraída por las últimas capas.
En cambio, en una unidad de atención cada token se relaciona con todos los demás (incluso consigo mismo), sin importar su distancia recíproca en la imagen. Además, dado que la codificación posicional de un ViT es de una sola dimensión, el modelo tiene que aprender, desde cero, a inferir la posición en la imagen de cada parche/token.
Pero de algún modo, tras suficiente entrenamiento y si los datos son suficientemente abundantes, las unidades de atención de las primeras capas aprender a reconocer patrones geométricos locales. Este proceso recuerda al de los modelos de lenguaje convencionales, donde las capas iniciales se especializan en el reconocimiento de estructuras lingüísticas de bajo nivel como las palabras, los afijos, las desinencias o los sintagmas.
Figura 2. Comparación del rendimiento de los transformers visuales con el de las redes residuales. El eje de abscisas mide el porcentaje de aciertos de la red (es decir, la categoría correcta recibe la mayor puntuación, Top1). El eje de ordenadas mide la cantidad de imágenes usadas en el preentrenamiento. El modelo más grande de todos los analizados, ViT-L/16, supera en efectividad a las redes convolucionales residuales a partir los 100 millones de ejemplos.
En la mente de la máquina
Los autores del trabajo realizaron una inspección de las representaciones internas del modelo (“la mente de la máquina”) cuando ésta leía imágenes. De acuerdo con su interpretación, la matriz de embedding de la primera capa podía ser entendida como una combinación lineal de filtros, que actuarían como bases de un espacio matricial. Los primeros 28 componentes tendrían la apariencia siguiente:
Figura 3: Primeros 28 componentes de la matriz de embedding.
En el caso de las unidades de atención, en las primeras capas algunas de sus cabezas parecían integrar información de toda la imagen mientras que otras únicamente vinculaban parches localmente, con otros situados en su vecindad. En las capas más profundas, casi todas las cabezas procesaban información de carácter global, como se muestra en la imagen.
Figura 4: Cada punto coloreado representa una cabeza de una unidad de atención. El eje vertical representa la distancia media de atención de cada cabeza, en píxeles. El eje horizontal, la profundidad de la capa dentro de la red. Las cabezas de las capas más profundas (a partir de la décima) vinculaban los parches con otros situados, de media, a unos 115 píxeles de distancia. En las cabezas de las primeras capas se observa una mayor variedad. Algunas de ellas procesaban información de carácter local, de un modo muy parecido al de las capas de una red convolucional, cuyo kernel es de tamaño limitado.
Para apreciar en toda su magnitud el impacto que la atención ejerce en el ámbito de la visión artificial, los autores crearon una suerte de mapas de atención. En cada capa de ViT-L/16, se procedía a calcular la media de los pesos de todas las cabezas de la unidad de atención. A continuación, estos valores se multiplicaban recursivamente a través de todas las capas del modelo. Los mapas resultantes tendían a focalizarse en el objeto a identificar, oscureciendo aquellas áreas de la imagen que eran innecesarias (o contraproducentes) para la clasificación. Esta dinámica se muestra en la ilustración:
Figura 5. En estos dos ejemplos, el efecto neto de la atención es iluminar el efecto a clasificar, oscureciendo el resto de la imagen.
Conclusiones
El Transformer Visual (ViT) presentado por el trabajo de 2021 marcó un hito al adaptar la arquitectura de transformers con preentrenamiento autosupervisado al ámbito de la visión artificial. Este avance no sólo creó un nexo más entre las disciplinas de procesamiento natural de lenguaje y la visión artificial sino que además allanó el camino para los nuevos modelos multimodales y de IA generativa.
Aunque el Transformer Visual original tenía como tarea exclusiva la clasificación visual, no tardaron en surgir otros modelos capaces de abordar tareas más complejas como la detección de objetos o la segmentación semántica.