Práctica de AA: Clasificación de imágenes

Introducción a las redes neuronales convolucionales

Se produjo un avance en la creación de modelos para la clasificación de imágenes cuando se descubrió que se podía usar una red neuronal convolucional (CNN) para extraer de forma progresiva niveles cada vez más altos de representaciones del contenido de las imágenes. En lugar de preprocesar los datos para obtener atributos como texturas y formas, una CNN toma, como información de entrada, los datos de los píxeles sin procesar de la imagen y "aprende" a extraer estos atributos y a deducir qué objeto constituyen.

Para comenzar, la CNN recibe un mapa de atributos de entrada: una matriz tridimensional en la que el tamaño de las dos primeras dimensiones corresponde al largo y ancho de las imágenes en píxeles. El tamaño de la tercera dimensión es 3 (corresponde a los 3 canales de una imagen de color: rojo, verde y azul). La CNN abarca un conjunto de módulos, y cada uno realiza tres operaciones.

1. Convolución

Una convolución extrae mosaicos del mapa de atributos de entrada y les aplica filtros para procesar nuevos atributos, lo que produce un mapa de atributos de salida o un atributo convolucionado (que puede tener un tamaño y profundidad diferentes que el mapa de atributos de entrada). Las convoluciones se definen según dos parámetros:

  • El tamaño de las tarjetas que se extraen (por lo general, 3×3 o 5×5 píxeles).
  • La profundidad del mapa de atributos de salida, que corresponde a la cantidad de filtros que se aplican.

Durante una convolución, los filtros (matrices del mismo tamaño que los mosaicos) se deslizan sobre la cuadrícula del mapa de atributos de entrada de forma horizontal y vertical, un píxel a la vez, a fin de extraer cada uno de los mosaicos correspondientes (ver la Figura 3).

Convolución de 3×3 sobre un mapa de atributos de 4×4 Figura 3: Se aplica una convolución de 3×3 de profundidad 1 sobre un mapa de atributos de entrada de 5×5, también de profundidad 1. Hay nueve ubicaciones posibles de 3×3 para extraer mosaicos del mapa de atributos de 5×5, por lo que esta convolución produce un mapa de atributos de salida de 3×3.

Para cada par de filtro y mosaico, la CNN realiza una multiplicación de la matriz del filtro y la matriz del mosaico en función del elemento y, posteriormente, suma todos los elementos de la matriz resultante para obtener un único valor. Cada uno de estos valores resultantes para cada par de filtro y mosaico es arrojado por la matriz de atributos convolucionados (ver Figuras 4a y 4b).

Mapa de atributos de 5×5 y convolución de 3×3 Figura 4a. A la izquierda: Un mapa de atributos de entrada de 5×5 (profundidad 1). A la derecha: Una convolución de 3×3 (profundidad 1).

Figura 4b. A la izquierda: Se realiza la convolución 3×3 en el mapa de atributos de entrada de 5×5. A la derecha: El atributo convolucionado resultante. Haz clic en un valor del mapa de atributos de salida para ver cómo se calculó.

Durante el entrenamiento, la CNN "aprende" los valores óptimos para las matrices de filtro que le permiten extraer atributos significativos (texturas, bordes, formas) del mapa de atributos de entrada. A medida que aumenta la cantidad de filtros (profundidad del mapa de atributos de salida) que se aplican a la entrada, también aumenta la cantidad de atributos que puede extraer la CNN. Sin embargo, la contrapartida es que los filtros conforman la mayoría de los recursos que utiliza la CNN, por lo que el tiempo de entrenamiento también aumenta a medida que se agregan más filtros. Además, cada filtro agregado a la red proporciona menos valor incremental que el anterior. Por esta razón, los ingenieros tienen como objetivo construir redes que usen la cantidad mínima de filtros necesarios para extraer los atributos que se requieren a fin de obtener una clasificación de imágenes precisa.

2. ReLU

Después de cada operación de convolución, la CNN aplica al atributo convolucionado una transformación mediante una unidad lineal rectificada (ReLU), a fin de introducir una no linealidad en el modelo. La función ReLU, F(x)=max(0,x), muestra x para todos los valores de x > 0 y 0 para todos los valores de x ≤ 0.

3. Agrupación

Después de la ReLU, se aplica un paso de reducción, en el que la CNN reduce el atributo convolucionado (para ahorrar tiempo de procesamiento), lo que reduce la cantidad de dimensiones del mapa de atributos, donde todavía se conserva la información más importante de los atributos. En este proceso, normalmente se usa un algoritmo que se denomina reducción máxima.

Este algoritmo funciona de manera similar a la convolución. Deslizamos el mapa de atributos y extraemos mosaicos de un tamaño especificado. Para cada mosaico, el valor máximo es la salida de un nuevo mapa de atributos, mientras que se descarta el resto de los valores. Las operaciones de reducción máxima tienen dos parámetros:

  • Tamaño del filtro de reducción máxima (generalmente 2×2 píxeles)
  • Stride: La distancia, en píxeles, que separa cada mosaico extraído. A diferencia de la convolución, donde los filtros se deslizan sobre el mapa de atributos píxel por píxel, en la reducción máxima, el paso determina las ubicaciones de donde se extrae cada mosaico. Para un filtro de 2×2, un paso de 2 especifica que la operación de reducción máxima extraerá del mapa de atributos todos los mosaicos de 2×2 que no se superpongan (ver la Figura 5).

Animación de reducción máxima en un mapa de atributos de 4×4 con un filtro de 2×2 y un segmento de 2

Figura 5: A la izquierda: La reducción máxima realizada en un mapa de atributos de 4×4 con un filtro de 2×2 y un segmento de 2. A la derecha: El resultado de la operación de reducción máxima. Ten en cuenta que el mapa de atributos resultante ahora es de 2×2, lo que preserva solo los valores máximos de cada mosaico.

Capas totalmente conectadas

Al final de una red neuronal convolucional, hay una o más capas totalmente conectadas (cuando dos capas están "totalmente conectadas", cada uno de los nodos de la primera capa está conectado a cada uno de los nodos de la segunda capa). Su trabajo es realizar una clasificación basada en los atributos extraídos mediante las convoluciones. Por lo general, la última capa totalmente conectada contiene una función de activación softmax, que arroja un valor de probabilidad de 0 a 1 para cada una de las etiquetas de clasificación que el modelo intenta predecir.

En la Figura 6, se muestra la estructura integral de una red neuronal convolucional.

Diagrama integral de una red neuronal convolucional, en el que se muestra la entrada, dos módulos convolucionales y dos capas totalmente conectadas para la clasificación

Figura 6: La CNN que se muestra aquí contiene dos módulos convolucionales (convolución + ReLU + reducción) para la extracción de atributos y dos capas totalmente conectadas para la clasificación. Otras CNN pueden contener más o menos módulos convolucionales y más o menos capas totalmente conectadas. Por lo general, los ingenieros realizan pruebas para determinar la configuración que produce los mejores resultados para el modelo.