AlexNet y clasificación de imágenes
Rubén Rodríguez Abril
La aparición de las primeras redes neuronales convolucionales, como el Neocognitrón, y los algoritmos de retropropagación necesarios para entrenarlas abrieron la posibilidad de que este tipo de redes pudieran utilizarse para el reconocimiento visual, no sólo de dígitos, sino también de todo tipo de imágenes. AlexNet es una de las redes que resultaron de estos proyectos.
El proyecto ImageNet
La primera red neuronal plenamente entrenable, LeNet-5, propuesta por Yann LeCun y su equipo de Bell Labs en el año 1989, logró reconocer, con un nivel aceptable de éxito, dígitos manuscritos en sobres del servicio postal estadounidense. Este logro animó a la investigadora de Stanford University Fei-Fei Li a proponer la creación de un banco de datos de imágenes de todas clases, que pudieran servir de base para el entrenamiento de redes neuronales especializadas en el reconocimiento visual. Fruto de estos esfuerzos surgió el proyecto ImageNet, en el cual operarios humanos retribuidos etiquetaban manualmente imágenes, que luego se agrupaban en conjuntos semánticos. Cada conjunto semántico se integraba por aquellas imágenes cuyas etiquetas tenían significados semejantes. En la actualidad, el archivo de ImageNet contiene 100.000 conjuntos semánticos (synsets) diferentes, dotados de 1.000 imágenes cada uno.
La aparición de AlexNet
Desde el año 2010, el proyecto ImageNet ha lanzado anualmente un concurso de reconocimiento de imágenes, ILSVRC –ImageNet Large Scale Visual Recognition Challenge-. Uno de los parámetros utilizados para medir el éxito de los concursantes es el error de las cinco primeras (top-5 error). La red debe proponer cinco etiquetas diferentes a cada imagen. Si ninguna de ellas se corresponde con su descripción, se considera que se ha producido un fallo. Con el objetivo de batir el récord existente hasta entonces (top-5 error del 25%), en el año 2012, Alex Krizhevsky propuso, junto con su director de tesis Geoffrey Hinton, un nuevo modelo de red convolucional que logró reducir ese porcentaje hasta el 17%. Este nuevo modelo se conocería como AlexNet.
Arquitectura de AlexNet
La arquitectura de la red se compone de cinco capas convolucionales y tres capas densas.
Las salidas de las capas convolucionales son normalizadas por lotes (aunque el esquema de normalización del artículo original era ligeramente diferente). El kernel tiene dimensiones de 11×11 en la primera capa, 5×5 en la segunda, y 3×3 en el resto. La primera, cuarta y quinta capas convolucionales vienen seguidas cada una de ellas por una capa de agrupación (max-pooling) de 3×3, en la que existe un desplazamiento (stride) de dos, lo que provoca que haya un solapamiento de las celdas en la misma. Las capas convolucionales y de pooling vienen seguidas de tres capas capas densas. Las dos primeras tienen 4.096 neuronas cada una. La última es la de salida. Está compuesta con 1.000 neuronas dotadas de una función de activación softmax. Son ellas las encargadas de realizar la clasificación de la imagen.
Como suele ser usual en los sistemas de clasificación, la función de pérdida utilizada es la entropía cruzada. Las derivadas de esta última se retropropagan del modo usual.

Arquitectura de AlexNet. La entrada consiste en una imagen con una resolución de 227×227 píxeles y 3 canales de color. La información atraviesa cinco capas convolucionales (en negro) de neuronas ReLU y tres capas de pooling (en azul). En la quinta capa de convolución existen ya 256 mapas diferentes, de una resolución de 13×13. Seguidamente se aplican dos capas densamente conectadas de 4.096 neuronas, seguidas por una capa de salida de 1.000 neuronas, dotadas de una función softmax. Cada neurona de la capa de salida representa un conjunto semántico diferente (en la imagen, diferentes edificios históricos). Y su valor de activación señala la posibilidad de que la imagen de entrada pertenezca a dicho conjunto semántico.
Funciones de Activación
La función de activación de todas las neuronas (salvo las de la capa de salida) es la función rectificadora, a diferencia de lo que sucedía en el modelo de LeCun, que utilizaba la tangente hiperbólica. La función rectificadora no sólo aproxima mejor el comportamiento de las neuronas del sistema nervioso, sino que además permite ahorrar capacidad computacional en la GPU. Para su cálculo basta simplemente con comprobar el signo del argumento, y con poner todos los bits del registro a cero, en el caso de que el número sea negativo. En cambio, para el cálculo de la tangente hiperbólica suele usarse un algoritmo de funciones polinómicas, denominado algoritmo de Volder, que requiere de un mayor uso de capacidad de cálculo.
Hardware de ALexNet
La red neuronal es simulada por dos GPUs. A cada una de ellas corresponde el cálculo de la mitad de los mapas de características de la capa convolucional de que se trate. Las dos GPUs pueden comunicarse directamente, y acceder a la memoria de la otra, sin necesidad de pasar por la CPU. Los mapas de características de la tercera capa convolucional se comunican con todas los mapas de la capa anterior. Sin embargo, los mapas de la cuarta capa sólo se comunican con los mapas de la capa tercera que residan en su GPU.
Emergencia de información semántica
El funcionamiento interno de los mecanismos de convolución de AlexNet (y en general, de todas las redes convolucionales) fue objeto de un interesante estudio del año 2013 de los profesores de la Universidad de Nueva York Matthew D. Zeiler y Rob Fergus. Hasta este momento, la mayoría de los especialistas en aprendizaje profundo consideraban que el contenido de las capas de convolución ocultas, al no ser directamente visualizable, no podía ser interpretado por observadores externos. Y constituía lo que se conoce como un sistema de caja negra –black box-.
Para analizar el comportamiento de AlexNet, los autores introdujeron el concepto de “convolución inversa”, que se expone detenidamente en nuestro artículo de las GANs, y que constituye, en ciertos casos, una suerte de reversión del proceso de convolución.
El interior de AlexNet
-La red se alimentaba con una imagen del conjunto ImageNet.
-Una vez que la información llegaba a la capa de que se trataba, se apagaban todos los mapas de características, salvo el mapa cuyo comportamiento se quería estudiar.
-Por medio de convoluciones inversas se hacía retroceder de nuevo a la información hacia la capa de entrada. Allí se formaba un dibujo, describiendo cuáles han sido los patrones concretos de la imagen de entrada que habían provocado la excitación del mapa de características que habíamos analizado.

A la izquierda se muestra el resultado de la «desconvolución» de algunos de los mapas de características de la 5 capa de convolución. El resto de los mapas de la misma capa han sido ignorados y sus neuronas se han puesto a cero durante el proceso. Se puede comprobar cómo algunos de los mapas responden tan sólo a objetos concretos como ruedas y rostros humanos. El resto de la imagen es ignorada. A partir del mapa y de los pesos sinápticos de las capas anteriores es posible reconstruir los trazos geométricos básicos de dichos objetos.
Los autores observaron que la invariancia a traslaciones espaciales (la red reconoce un helecho, aun cuando este varíe de posición), así como la capacidad de generalización geométrica aumentaban a medida que se iba penetrando en las capas convolucionales posteriores.
Reconocimiento semántico
En el trabajo, los autores realizaron un experimento que en nuestra opinión revestía de particular interés. Fueron tapando parte de las imágenes por medio de un pequeño cuadrado gris que se iba lentamente desplazando. Aunque los autores no lo mencionan, en algunas de las imágenes se observa cómo los procesos de convolución y desconvolución son capaces de reconstruir las parcelas faltantes. Así se muestra en la ilustración:

A la izquierda, colocamos un pequeño cuadrado gris junto al número 8, tapando parte de la etiqueta amarilla sobre la carcasa. A la derecha, el recuadro superior derecho (rodeado de una línea gruesa negra) se ha obtenido tras “desconvolucionar” un mapa de características concreto de la quinta capa, una vez que la red ha sido alimentada con la imagen. Los otros recuadros representan la reacción del mapa ante otras imágenes. El lector puede comprobar cómo los procesos de convolución y desconvolución han logrado reconstruir las letras A y D de la etiqueta.
Convolución y conceptualización
En nuestra opinión, estos ejemplos demuestran cómo la convolución y desconvolución pueden ser entendidas como mecanismos de compresión y descompresión semánticas respectivamente. Durante la sucesiva aplicación de los procedimientos de convolución y agrupación (pooling), el flujo de información dentro de la red se va despojando de la información de carácter geométrico/ figurativo, y va adquiriendo otra de naturaleza semántica/ conceptual. En los procedimientos de desconvolución e incremento de resolución (upsampling) el procedimiento, sin embargo, es el contrario. La información de carácter semántico es transformada progresivamente en otra de carácter geométrico. Y los rasgos de menor nivel se van añadiendo conforme el procedimiento avanza.
Esto es lo que explica que se haya podido reconstruir la etiqueta mostrada en la imagen 3. Una vez que la información ha llegado a la quinta capa, la red ya dispone de suficiente información semántica para deducir que faltan las letras A y D. Como consecuencia de ello, en el proceso de desconvolución, éstas letras se dibujan al completo, aunque parte de ellas apareciera oculta en la imagen original.
La relevancia de AlexNet
Aunque no fue la primera red neuronal en funcionar exclusivamente en GPUs, las innovaciones introducidas por AlexNet, particularmente la presencia de unidades ReLU y el apagado parcial de neuronas durante el entrenamiento fueron adoptadas por la inmensa mayoría de los sistemas de reconocimiento visual que desarrollaron en los años posteriores, como la identificación de especies arbóreas o el reconocimiento facial, por poner algunos ejemplos.
En los próximos artículos, citaremos algunos trabajos que utilizan la arquitectura de AlexNet no sólo para realizar tareas de clasificación semántica, sino también la codificación y la síntesis de imágenes.
Lecturas recomendadas
– Krizhevsky, A.; Stskever, I. y Hinton, G. (2012). ImageNet Classification with Deep Convolutional Neural Networks.
– Zeiler, M. y Fergus, R. (2013). Visualizing and Understanding Convolutional Networks.