Mecanismo de atención (imágenes)

Rubén Rodríguez Abril

El mecanismo de atención es aquel procedimiento que permite a un algoritmo de aprendizaje profundo centrarse en partes o subconjuntos de la información que recibe del exterior, en un modo muy parecido al realizado por los humanos cuando focalizamos nuestra visión en determinadas áreas del campo visual o nos centramos en realizar una determinada actividad.

Introducción

La introducción del mecanismo de autoatención (una variable de la atención) fue verdaderamente revolucionaria en el ámbito del procesamiento de lenguaje natural, pues sentó las bases para el surgimiento de la arquitectura de transformers y de los grandes modelos de lenguaje.

En el ámbito de la visión artificial también los mecanismos de atención han encontrado aplicaciones, aunque no sean tan espectaculares como en el caso de los chatbots. Particularmente, debido a su capacidad de capturar rasgos semánticos han tenido cierto éxito en sistemas de segmentación semántica y la generación de arte por inteligencia artificial (que consiste, fundamentalmente, en la creación de imágenes a partir de descripciones textuales).

El funcionamiento de un mecanismo de atención es relativamente sencillo: a cada píxel o vector de salida se le asigna una suerte de “campo de visión” que abarca todos los datos de entrada. Una matriz, denominada de atención, determina la intensidad con la que cada sector de este campo contribuye a cada unidad, vector o pixel de la capa de salida. En los sistemas de procesamiento natural de lenguaje, este mecanismo establecer vínculos entre cada token y el resto de los tokens de la cadena de entrada, lo cual es esencial a la hora de construir estructuras lingüísticas. En los sistemas de visión artificial, la atención cuantifica la contribución de cada pixel de entrada en la formación de un pixel específico de salida.

Diferencias con las capas densamente conectadas

Una pregunta natural que surge es: ¿en qué se diferencia un mecanismo de atención de una capa densamente conectada?. La diferencia fundamental es que en el primero, los pesos sinápticos son dinámicos y se calculan durante la inferencia, mientras que en la segunda permanecen fijos y sin modificar desde que concluye el entrenamiento.

Matemáticamente, en una unidad de atención los datos de entrada son multiplicados en paralelo por tres matrices de peso sináptico fijo, lo que genera tres tipos de vectores: consulta (query), clave (key) y valor (value), que se superponen como filas en las respectivas matrices Q, K y V. La matriz de atención P se obtiene multiplicando la matriz Q por la traspuesta de K, seguido de la aplicación la función softmax a cada una de las filas de la matriz resultante:

Q = W_Q \cdot \text{entrada}
K = W_K \cdot \text{entrada}
V = W_V \cdot \text{entrada}
P = \text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)

donde WQ, WK y WV son matrices de pesos fijos y dk es un coeficiente constante.

La salida de la unidad de atención viene constituida por la multiplicación de la matriz de atención por la matriz de valores:

salida = P · V

Esta última fórmula es una simple multiplicación matricial y no es muy diferente a la usada en las capas densas. La diferencia clave es que en esta últimas los pesos sinápticos son fijos, mientras que en las unidades de atención los coeficientes de P se determinan dinámicamente a partir de los propios datos de entrada.

Incremento del poder computacional

En las unidades de atención existe, pues, una suerte de ciclo de retroalimentación en cuya virtud los datos de entrada determinan los coeficientes de la matriz de atención, y luego esta última vuelve a actuar sobre los datos de entrada. Esta situación recuerda mucho a la de las redes cíclicas de McCulloch y de Pitts, en cuyo grafo existían bucles cerrados que permitían la circulación de la información, formando bucles de retroalimentación.

La existencia de bucles dentro de las redes aumenta su complejidad y poder computacional:

-en el caso de las RNNs (redes neuronales recurrentes) dotan de memoria interna a las mismas

-en los modelos dotados de atención los bucles permiten la detección dependencias globales.

En este artículo nos centraremos en dos de los trabajos que más tempranamente incluyeron los mecanismos de atención dentro de los modelos de procesamiento de imagen: Non-local neural networks” y “Attention U-Net”, ambos del año 2018.

Non-local neural networks

Este trabajo no introduce ningún modelo original, sino que se proponen diferentes mecanismos para detectar dependencias globales en imágenes y video. Estos mecanismos permiten mejorar algunas técnicas de detección de objetos, identificando interacciones entre píxeles que, aunque espacialmente distantes, puedan estar relacionados dentro de la imagen de entrada.

El artículo introduce un nuevo tipo de capa denominado “bloque no local”, que es una suerte de generalización del concepto de atención y que se caracteriza por dos notas fundamentales:

a) Vincula a cada unidad (“neurona”) del bloque con todas las unidades de la capa anterior, en un modo muy similar al de las capas densas. Esta oriouedad le permite capturar “de un sólo golpe” dependencias globales en la imagen, a diferencia de las capas convolucionales, donde los kernels tienen tamaño relativamente limitado, y se requiere que la información atraviese varias capas para capturar relaciones a larga distancia.

b) Sus pesos sinápticos son determinados dinámicamente, a partir de los propios datos de entrada, mediante diferentes algoritmos.

La transformación de los datos de entrada se expresa del siguiente modo:

\mathbf{y}_i = \frac{1}{C(\mathbf{x})} \sum_{\forall j} f(\mathbf{x}_i, \mathbf{x}_j) g(\mathbf{x}_j).

donde yi es un vector salida del bloque, C(x) una constante, xj, xj son vectores de entrada, g(xj) es una transformación lineal de los mismos y f(xi,xj) es una matriz construida a partir de las relaciones entre los pares posibles vectores de entrada.

Los coeficientes de la matriz pueden calcularse de diferentes formas:

Producto punto: El coeficiente es igual al producto escalar de dos vectores o de sendas transformaciones lineales de los mismos.

f(\mathbf{x}_i, \mathbf{x}_j) = \theta(\mathbf{x}_i)^\top \phi(\mathbf{x}_j).

Gaussiana: El producto escalar de ambos vectores se exponencia para detectar las relaciones más relevantes.

f(\mathbf{x}_i, \mathbf{x}_j) = e^{\mathbf{x}_i^\top \mathbf{x}_j}.

Gaussiana incrustada. Similar a la gaussiana, aunque en este caso el coeficiente se calcula a partir del producto escalar de las transformaciones lineales de los dos vectores.

f(\mathbf{x}_i, \mathbf{x}_j) = e^{\theta(\mathbf{x}_i)^\top \phi(\mathbf{x}_j)}.

La gaussiana incrustada es matemáticamente equivalente a una unidad de autoatención. La transformación g(x) produce un vector valor, mientras que la constante C(x) tendría el valor:

C(\mathbf{x}) = \sum_{\forall j} f(\mathbf{x}_i, \mathbf{x}_j)

equivalente a una función softmax aplicada sobre los coeficientes de cada fila.

Concatenación: Los dos vectores se concatenan, se procesan por una transformación lineal seguida de una función ReLU.

f(\mathbf{x}_i, \mathbf{x}_j) = \text{ReLU}\left(\mathbf{w}_f^\top [\theta(\mathbf{x}_i), \phi(\mathbf{x}_j)]\right).

En todos los experimentos, las variantes producto-punto, gaussiana incrustada y concatenación obtuvieron un similar.

Figura 1. Imagen de un “bloque no local”, muy parecida en su estructura a una unidad de autoatención. Los componentes de un vector equivalen a los valores de un pixel específico, en un instante determinado (de ahí la expresión “1x1x1”), en cada uno de los 1024 mapas de características. θ, φ y g son funciones lineales. A partir de las dos primeras se obtiene la matriz no local. Una conexión residual (a la izquierda de la ilustración) permite a parte de la información X “saltarse” el bloque al completo, facilitando el flujo de información y la retropropagación del gradiente. Fuente: Non-local Neural Networks.

Los autores del trabajo sugirieron incorporar los bloques no locales al final de cada una de las secciones de una red de residual. La inclusión de los mismos en los modelos de visión artificial demostró ser particularmente efectiva en tareas que incluían una dimensión temporal como el reconocimiento de video.

Figura 2. Cada Xa representa un píxel en un marco temporal de video determinado. En este caso, usamos la matriz local para poner en conexión Xi (en el centro de la bola, en el primer marco) con el resto de la imagen (Xj) en todos los marcos. Las relaciones que obtuvieron mayor puntuación son representadas por flechas. Fuente: Non-local Neural Networks.

Attention U-Net

Los autores de este trabajo estaban vinculados a la investigación biomédica e interesados en perfeccionar mecanismos de segmentación semántica de imágenes médicas, que pudieran ayudar a la detección de tumores y a la interpretación de resonancias magnéticas y tomografías computarizadas.

Hasta este momento, las U-Nets (redes neuronales basadas en capas convolucionales) habían proporcionado resultados excelentes en la materia. Sin embargo, en situaciones donde los órganos objeto del análisis presentaban una gran variabilidad en términos de forma y tamaño entre pacientes las redes requerían de estructuras convolucionales multietapas, en cascada, para obtener buenos resultados. Esto conllevaba un enorme desperdicio de poder computacional.

Para abordar este problema y perfeccionar los sistemas de segmentación semántica, los autores propusieron modificar la arquitectura de la U-Net introduciendo un nuevo mecanismo denominado puerta de atención (attention gate). Esta puerta permitía eliminar las áreas no relevantes de la imagen de entrada y de los mapas de características, facilitando con ello la tarea de las capas convolucionales.

Arquitectura U-Net para Segmentación Semántica.

Figura 3. Esquema de la U-Net original propuesta por el trabajo Ronneberger et al. La red se divide en una sección descendente, que transforma información gráfica en semántica, y otra ascendente, que realiza el proceso contrario. Conexiones atajo permiten la comunicación entre capas de niveles similares. A través de ellas, información predominantemente geométrica puede atravesar la red sin ser procesada por las capas intermedias (izquierda, en la imagen).

En la U-Net originaria, las capas convolucionales transformaban progresivamente la información geométrica local en otra de naturaleza global, más semántica. A lo largo de la arquitectura existían “conexiones atajo” que permitían que el paso de la información entre diferentes de las secciones ascendente y descendente, sin necesidad de atravesar las capas más profundas.

La principal innovación de las Attention U-Nets fue la de incluir puertas de atención en estas conexiones atajo, que permitían a la red centrar su atención en determinados tejidos corporales relevantes para el análisis médico. Es como si un mecanismo de atención global realizara una suerte de filtro inteligente de la imagen y señalara a las capas convolucionales determinadas regiones-objetivo dentro de la imagen para un análisis más detallado.

Figura 4. En Attention-Unet, las puertas de atención no se sitúan en el flujo principal de la información, sino en las conexiones atajo. Fuente: Attention U-Net.

El mecanismo de atención propuesto en este trabajo es de tipo aditivo, en contraste con el esquema multiplicativo clásico. Dos aspectos fundamentales marcan la diferencia: el primero es que la matrices de clave (K) y de valor (V) son idénticas; el segundo es que la matriz de atención se obtiene a partir de la suma, no del producto, de las matrices de consulta y de clave.

Figura 5: Esquema de una unidad de atención. Obsérvese cómo la primera operación es de suma, no de multiplicación, como sería lo procedente en sistemas de atención multiplicativa. Tras ello, se aplican dos funciones de activación, ReLU y sigmoide. Una conexión residual (en la parte inferior del diagrama) se combina mediante una multiplicación con el resultado de la operación de atención. Fuente: Attention U-Net.

Por lo que se refiere a su entrenamiento, los autores del trabajo comprobaron que podían utilizarse U-Nets preentrenadas como base, ajustando los pesos sinápticos de las unidades de atención en un proceso posterior de afinamiento. Con estas mejores, Attention U-Net logró una avance significativo en segmentación semántica media, tanto en términos de precisión de diagnóstico clínico como en los de ahorro de poder computacional.

LLMs

DALL-E

Imagen destacada de GoogLeNet
Deep Learning

GoogLeNet

Deep Learning

CLIP