AlexNet es el nombre de una arquitectura de red neuronal convolucional (CNN), diseñada por Alex Krizhevsky en colaboración con Ilya Sutskever y Geoffrey Hinton , quien fue asesor de doctorado de Krizhevsky en la Universidad de Toronto . [¿ cuándo? ] Tenía 60 millones de parámetros y 650.000 neuronas . [1]
El resultado principal del artículo original fue que la profundidad del modelo era esencial para su alto rendimiento, que era computacionalmente costoso, pero que se hacía factible gracias a la utilización de unidades de procesamiento de gráficos (GPU) durante el entrenamiento. [1]
Los tres formaron el equipo SuperVision [2] y presentaron a AlexNet en el Desafío de reconocimiento visual a gran escala de ImageNet el 30 de septiembre de 2012. [3] La red logró un error entre los 5 primeros del 15,3 %, más de 10,8 puntos porcentuales mejor que el del segundo lugar.
La arquitectura influyó en una gran cantidad de trabajos posteriores en aprendizaje profundo , especialmente en la aplicación de redes neuronales a la visión por computadora .
AlexNet contiene ocho capas : las primeras cinco son capas convolucionales , algunas de ellas seguidas de capas de agrupamiento máximo , y las últimas tres son capas completamente conectadas. La red, excepto la última capa, se divide en dos copias, cada una de las cuales se ejecuta en una GPU. [1] La estructura completa se puede escribir como
(CNN → RN → MP)² → (CNN³ → MP) → (FC → DO)² → Lineal → softmax
dónde
Se utilizó la función de activación ReLU no saturada , que se entrenó mejor que tanh y sigmoid . [1]
Como la red no cabía en una única GPU Nvidia GTX580 de 3 GB, se dividió en dos mitades, una en cada GPU. [4] [ ¿cuándo? ]
El conjunto de entrenamiento tenía 1,2 millones de imágenes. Se entrenó durante 90 épocas, lo que llevó de cinco a seis días en dos GPU NVIDIA GTX 580 de 3 GB. [1]
Se entrenó con descenso de gradiente de momento con un tamaño de lote de 128 ejemplos, momento de 0,9 y disminución de peso de 0,0005. La tasa de aprendizaje comenzó en y se redujo manualmente 10 veces cuando el error de validación parecía dejar de disminuir. Se redujo tres veces durante el entrenamiento y finalizó en .
Se utilizaron dos formas de aumento de datos , ambas calculadas sobre la marcha en la CPU, por lo que eran "computacionalmente libres":
Se utilizó normalización de respuesta local y regularización de abandono con probabilidad de abandono de 0,5.
Todos los pesos se inicializaron como gaussianos con media de 0 y desviación estándar de 0,01. Los sesgos en las capas convolucionales 2, 4, 5 y todas las capas completamente conectadas se inicializaron con una constante de 1 para evitar el problema de la muerte de ReLU .
AlexNet es una red neuronal convolucional. En 1980, Kunihiko Fukushima propuso una CNN temprana llamada neocognitron . [5] [6] Fue entrenada por un algoritmo de aprendizaje no supervisado . LeNet-5 ( Yann LeCun et al., 1989) [7] [8] fue entrenada por aprendizaje supervisado con algoritmo de retropropagación , con una arquitectura que es esencialmente la misma que AlexNet en una escala pequeña. (J. Weng, 1993) agregó max-pooling . [9] [10]
Durante la década de 2000, a medida que el hardware de la GPU mejoraba, algunos investigadores los adaptaron para la computación de propósito general , incluido el entrenamiento de redes neuronales. (K. Chellapilla et al., 2006) entrenaron una CNN en la GPU que era 4 veces más rápida que una implementación de CPU equivalente. [11] Una CNN profunda de (Dan Cireșan et al. , 2011) en IDSIA fue 60 veces más rápida que una implementación de CPU equivalente. [12] Entre el 15 de mayo de 2011 y el 10 de septiembre de 2012, su CNN ganó cuatro concursos de imágenes y logró SOTA para múltiples bases de datos de imágenes . [13] [14] [15] Según el artículo de AlexNet, [1] la red anterior de Cireșan es "algo similar". Ambas fueron escritas con CUDA para ejecutarse en la GPU .
Durante el período 1990-2010, las redes neuronales no eran mejores que otros métodos de aprendizaje automático como la regresión de kernel , las máquinas de vectores de soporte , AdaBoost , la estimación estructurada, [16] entre otros. Para la visión por computadora en particular, gran parte del progreso provino de la ingeniería de características manual , como las características SIFT , las características SURF , las características HoG , las bolsas de palabras visuales , etc. Era una posición minoritaria en la visión por computadora que las características se pueden aprender directamente de los datos, una posición que se volvió dominante después de AlexNet. [4]
Si bien AlexNet y LeNet comparten básicamente el mismo diseño y algoritmo, AlexNet es mucho más grande que LeNet y se entrenó con un conjunto de datos mucho más grande y un hardware mucho más rápido. En un período de 20 años, tanto los datos como los cálculos se volvieron accesibles a bajo costo. [4]
AlexNet es muy influyente y ha dado lugar a muchos trabajos posteriores sobre el uso de redes neuronales convolucionales para la visión artificial y el uso de GPU para acelerar el aprendizaje profundo. A mediados de 2024, el artículo de AlexNet ha sido citado más de 157.000 veces según Google Scholar. [17]
En el momento de la publicación, no había ningún marco disponible para el entrenamiento y la inferencia de redes neuronales basados en GPU. El código base de AlexNet se publicó bajo una licencia BSD y se había utilizado comúnmente en la investigación de redes neuronales durante varios años posteriores. [18] [4]
En una dirección, trabajos posteriores apuntaron a entrenar CNN cada vez más profundas que logren un rendimiento cada vez mayor en ImageNet. En esta línea de investigación se encuentran GoogLeNet (2014), VGGNet (2014), Highway network (2015) y ResNet (2015). Otra dirección apuntaba a reproducir el rendimiento de AlexNet a un menor costo. En esta línea de investigación se encuentran SqueezeNet (2016), MobileNet (2017), EfficientNet (2019).