AlexNet

AlexNet
Parte de red neuronal artificial y redes neuronales convolucionales
Información general
Tipo de programa software
Desarrollador Alex Krizhevsky, Ilya Sutskever y Geoffrey Hinton
Modelo de desarrollo Código abierto
Lanzamiento inicial 30 de septiembre de 2012
Licencia BSD de 2 cláusulas
Arquitectura de AlexNet y una posible modificación. En la parte superior se encuentra la mitad de la AlexNet original, que está dividida en dos mitades, una para cada GPU. En la parte inferior se mantiene la misma arquitectura, pero la capa final de «proyección» se sustituye por otra que proyecta a menos salidas. Si se congela el resto del modelo y solo se ajusta la última capa, se puede obtener otro modelo de visión a un coste significativamente menor que si se entrenara uno desde cero.
Diagrama de bloques de LeNet (izquierda) y AlexNet (derecha)

AlexNet es una arquitectura de red neuronal convolucional desarrollada para tareas de clasificación de imágenes, que alcanzó gran prominencia gracias a su desempeño en el ImageNet Large Scale Visual Recognition Challenge (ILSVRC). Clasifica las imágenes en 1000 categorías de objetos distintas y se considera la primera aplicación ampliamente reconocida de redes neuronales convolucionales profundas en el reconocimiento visual a gran escala.

Desarrollado en 2012 por Alex Krizhevsky en colaboración con Ilya Sutskever y su director de tesis doctoral, Geoffrey Hinton, en la Universidad de Toronto, el modelo contiene 60 millones de parámetros y 650 000 neuronas. El resultado principal del artículo original fue que la profundidad del modelo era esencial para su alto rendimiento, lo cual era computacionalmente costoso, pero factible gracias al uso de unidades de procesamiento gráfico (GPU) durante el entrenamiento.

Los tres formaron el equipo SuperVision y presentaron AlexNet en el ImageNet Large Scale Visual Recognition Challenge el 30 de septiembre de 2012. La red ganó el concurso con una tasa de error top-5 del 15,3 %, más de 10,8 puntos porcentuales por delante del segundo clasificado.

Esta arquitectura influyó en un gran número de trabajos posteriores en aprendizaje profundo, especialmente en la aplicación de redes neuronales a la visión artificial.

Arquitectura

AlexNet contiene ocho capas: las primeras cinco son capas convolucionales, algunas de ellas seguidas de capas de agrupación máxima (max pooling), y las últimas tres son capas totalmente conectadas. La red, excepto la última capa, se divide en dos copias, cada una de las cuales se ejecuta en una GPU, porque la red no cabía en la VRAM de una sola GPU Nvidia GTX 580 de 3 GB.: sec. 3.2  La estructura completa se puede escribir como:

(CONV → RN → MP)2 → (CONV3 → MP) → (FC → DO)2 → Lineal → softmax

donde:

Cabe destacar que las capas convolucionales 3, 4 y 5 estaban conectadas entre sí sin ningún tipo de agrupación ni normalización. Utilizaba la función de activación no saturante ReLU, que se entrenaba mejor que tanh y la sigmoide.

Entrenamiento

El conjunto de datos de entrenamiento de ImageNet contenía 1,2 millones de imágenes. El modelo se entrenó durante 90 épocas a lo largo de un período de cinco a seis días utilizando dos GPU Nvidia GTX 580 (de 3 GB cada una).: sec. 5  Estas GPU tenían un rendimiento teórico de 1,581 TFLOPS en float32 y su precio de lanzamiento fue de 500 dólares estadounidenses. Cada pasada hacia adelante de AlexNet requería aproximadamente 1,43 GFLOP. Según estos valores, las dos GPU juntas eran teóricamente capaces de realizar más de 2200 pasadas hacia adelante por segundo en condiciones ideales.

Las imágenes del conjunto de datos se almacenaron en formato JPEG y ocupaban 27 GB de disco duro. La red neuronal consumió 2 GB de RAM en cada GPU y alrededor de 5 GB de RAM del sistema durante el entrenamiento. Las GPU se encargaban del entrenamiento, mientras que las CPU se encargaban de cargar las imágenes desde el disco y de aplicarles el aumento de datos.

AlexNet se entrenó mediante descenso de gradiente estocástico, con un tamaño de lote de 128 ejemplos, un momento de 0,9 y un decaimiento de pesos (weight decay) de 0,0005. La tasa de aprendizaje comenzó en 10−2 y se dividía manualmente por 10 cada vez que el error de validación parecía dejar de disminuir. Se redujo tres veces durante el entrenamiento, hasta terminar en 10−5.: sec. 5 

Utilizaba dos formas de aumento de datos, ambas calculadas sobre la marcha en la CPU y, por lo tanto, «sin coste computacional»:: sec. 4.1 

Se eligió la resolución de 224×224 porque 256 − 16 − 16 = 224, lo que significa que, dada una imagen de 256×256, al recortar un marco de 16 píxeles de ancho en sus cuatro lados se obtiene una imagen de 224×224.

Se utilizó normalización de respuesta local y regularización por abandono con una probabilidad de abandono de 0,5.: secs. 3.3 y 4.2 

Todos los pesos se inicializaron como gaussianas con media 0 y desviación estándar 0,01. Los sesgos de las capas convolucionales 2, 4 y 5 y de todas las capas totalmente conectadas se inicializaron con un valor constante de 1 para evitar el problema de las ReLU «muertas» (dying ReLU).: sec. 5 

En el momento de la prueba, para utilizar una red AlexNet entrenada con el fin de predecir la clase de una imagen, primero se escala esa imagen de manera que su lado más corto tenga una longitud de 256 píxeles. Luego se recorta la sección central de 256×256 píxeles. A continuación, se extraen cinco parches de 224×224 (los cuatro de las esquinas y el central), así como sus reflejos horizontales: diez parches en total. Se promedian las probabilidades predichas por la red en los diez parches, y ese promedio es la probabilidad predicha final.: sec. 4.1 

Competición ImageNet

La versión que utilizaron para participar en la competición ImageNet de 2012 fue un conjunto de siete redes AlexNet.: sec. 6 

En concreto, entrenaron cinco redes AlexNet con la arquitectura descrita anteriormente (con cinco capas CONV) en el conjunto de datos de entrenamiento ILSVRC-2012 (1,2 millones de imágenes). También entrenaron dos variantes de AlexNet, obtenidas al añadir una capa CONV adicional sobre la última capa de agrupación. Estos modelos se entrenaron primero con la versión completa de ImageNet Fall 2011 (15 millones de imágenes en 22 000 categorías) y luego se ajustaron con el conjunto de datos de entrenamiento ILSVRC-2012. En el sistema final, se promediaban las probabilidades predichas por las siete AlexNet.: sec. 6 

Historia

Trabajos anteriores

Comparación de las capas de convolución, agrupación y densas de LeNet y AlexNet.
(El tamaño de la imagen de entrada de AlexNet debería ser 227×227×3, en lugar de 224×224×3, para que los cálculos cuadren. El artículo original indicaba otras cifras, pero Andrej Karpathy, antiguo responsable de visión artificial de Tesla, señaló que debería ser 227×227×3 y que Alex no explicó por qué puso 224×224×3. La siguiente convolución debería ser de 11×11 con paso 4, lo que da 55×55×96 en lugar de 54×54×96. Se calcula, por ejemplo, así: [(ancho de entrada 227 − ancho del núcleo 11) / paso 4] + 1 = [(227 − 11) / 4] + 1 = 55. Como la salida del núcleo tiene la misma altura que anchura, su área es 55×55).

En 1980, Kunihiko Fukushima propuso una de las primeras CNN, denominada neocognitrón, que se entrenaba mediante un algoritmo de aprendizaje no supervisado. LeNet-5 (Yann LeCun et al., 1989) se entrenó mediante aprendizaje supervisado con el algoritmo de retropropagación y tenía una arquitectura que es esencialmente la misma que la de AlexNet, a pequeña escala.

La agrupación máxima se utilizó en 1990 para el procesamiento del habla (en esencia, una CNN unidimensional) y, en el procesamiento de imágenes, se utilizó por primera vez en el Cresceptron, de 1992.

Durante la década de 2000, a medida que mejoraba el hardware de las GPU, algunos investigadores las adaptaron para la computación de propósito general, incluido el entrenamiento de redes neuronales. K. Chellapilla et al. (2006) entrenaron una CNN en GPU que era cuatro veces más rápida que una implementación equivalente en CPU. Raina et al. (2009) entrenaron una red de creencia profunda con 100 millones de parámetros en una Nvidia GeForce GTX 280, con una aceleración de hasta 70 veces respecto a las CPU. Una CNN profunda de Dan Cireșan et al. (2011), del IDSIA, era 60 veces más rápida que una implementación equivalente en CPU. Entre el 15 de mayo de 2011 y el 10 de septiembre de 2012, su CNN ganó cuatro concursos de imágenes y alcanzó el estado del arte en múltiples bases de datos de imágenes. Según el artículo de AlexNet, la red anterior de Cireșan es «algo similar». Ambas se escribieron con CUDA para ejecutarse en GPU.

Visión artificial

Durante el período 1990-2010, las redes neuronales no fueron mejores que otros métodos de aprendizaje automático, como la regresión de kernel, las máquinas de vectores de soporte, AdaBoost o la estimación estructurada, entre otros. En el ámbito de la visión artificial en particular, gran parte del progreso provino de la ingeniería manual de características, como las características SIFT, SURF y HoG, las bolsas de palabras visuales, etc. La idea de que las características podían aprenderse directamente de los datos era una postura minoritaria en visión artificial, que pasó a ser dominante después de AlexNet.

En 2011, Geoffrey Hinton comenzó a contactar con sus colegas para preguntarles: «¿Qué tengo que hacer para convenceros de que las redes neuronales son el futuro?». Jitendra Malik, un escéptico de las redes neuronales, le recomendó el desafío PASCAL Visual Object Classes. Hinton respondió que su conjunto de datos era demasiado pequeño, por lo que Malik le recomendó el desafío ImageNet.

El conjunto de datos ImageNet, que resultó fundamental para el éxito de AlexNet, fue creado por Fei-Fei Li y sus colaboradores a partir de 2007. Con el objetivo de mejorar el reconocimiento visual mediante datos a gran escala, Li creó un conjunto de datos mucho mayor que los anteriores, que llegó a contener más de 14 millones de imágenes etiquetadas en 22 000 categorías. Las imágenes se etiquetaron mediante Amazon Mechanical Turk y se organizaron según la jerarquía de WordNet. Recibido inicialmente con escepticismo, ImageNet se convirtió más tarde en la base del ImageNet Large Scale Visual Recognition Challenge (ILSVRC) y en un recurso clave en el auge del aprendizaje profundo.

Sutskever y Krizhevsky eran ambos estudiantes de posgrado. Antes de 2011, Krizhevsky ya había escrito cuda-convnet para entrenar pequeñas redes neuronales convolucionales (CNN) en CIFAR-10 con una sola GPU. Sutskever convenció a Krizhevsky, que dominaba la GPGPU, para que entrenara una CNN en ImageNet, con Hinton como investigador principal. Así pues, Krizhevsky amplió cuda-convnet para el entrenamiento con múltiples GPU. AlexNet se entrenó en dos tarjetas gráficas Nvidia GTX 580 en la habitación de Krizhevsky, en casa de sus padres. Durante 2012, Krizhevsky optimizó los hiperparámetros de la red hasta que esta ganó la competición ImageNet ese mismo año. Hinton comentó: «Ilya pensó que debíamos hacerlo, Alex lo hizo funcionar y yo gané el Premio Nobel». En la Conferencia Europea de Visión por Computador (ECCV) de 2012, tras la victoria de AlexNet, el investigador Yann LeCun describió el modelo como «un punto de inflexión inequívoco en la historia de la visión artificial».

El éxito de AlexNet en 2012 fue posible gracias a la convergencia de tres avances que habían madurado durante la década anterior: los conjuntos de datos etiquetados a gran escala, la computación de propósito general en GPU y la mejora de los métodos de entrenamiento de redes neuronales profundas. La disponibilidad de ImageNet proporcionó los datos necesarios para entrenar modelos profundos en una amplia gama de categorías de objetos. Los avances en la programación de GPU a través de la plataforma CUDA de Nvidia hicieron viable el entrenamiento de modelos de gran tamaño. Junto con las mejoras algorítmicas, estos factores permitieron a AlexNet alcanzar un alto rendimiento en pruebas comparativas de reconocimiento visual a gran escala. Al reflexionar sobre su importancia más de una década después, Fei-Fei Li declaró en una entrevista de 2024: «Ese momento fue bastante simbólico para el mundo de la IA, porque tres elementos fundamentales de la IA moderna convergieron por primera vez».

Si bien AlexNet y LeNet comparten esencialmente el mismo diseño y algoritmo, AlexNet es mucho más grande que LeNet y se entrenó con un conjunto de datos mucho mayor en un hardware mucho más rápido. A lo largo de un período de 20 años, tanto los datos como la capacidad de cómputo se volvieron accesibles a bajo coste.

Trabajos posteriores

AlexNet ha ejercido una gran influencia y ha dado lugar a numerosos trabajos posteriores sobre el uso de redes neuronales convolucionales en visión artificial y sobre la utilización de GPU para acelerar el aprendizaje profundo. A principios de 2025, el artículo sobre AlexNet había sido citado más de 198 000 veces, según Google Scholar.

En el momento de su publicación, no existía ningún marco de trabajo disponible para el entrenamiento y la inferencia de redes neuronales en GPU. El código fuente de AlexNet se publicó bajo una licencia BSD y se utilizó habitualmente en la investigación sobre redes neuronales durante varios años.

Poco después, Geoffrey Hinton, Ilya Sutskever y Alex Krizhevsky fundaron DNNResearch y vendieron la empresa —junto con el código fuente de AlexNet— a Google. Si bien ha habido mejoras y reimplementaciones de AlexNet, la versión original de 2012 —la que ganó el concurso ImageNet— se ha publicado bajo la licencia BSD-2 a través del Computer History Museum.

Véase también

Referencias

  1. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Krizhevsky, Alex; Sutskever, Ilya; Hinton, Geoffrey E. (24 de mayo de 2017). «ImageNet classification with deep convolutional neural networks». Communications of the ACM 60 (6): 84-90. ISSN 0001-0782. doi:10.1145/3065386. Consultado el 6 de octubre de 2026.
  2. 1 2 3 «ImageNet Large Scale Visual Recognition Competition 2012 (ILSVRC2012)». image-net.org. Consultado el 6 de octubre de 2026.
  3. ↑ «NVIDIA GeForce GTX 580 Specs». TechPowerUp (en inglés). 12 de noviembre de 2024. Consultado el 6 de octubre de 2026.
  4. ↑ «calflops: a FLOPs and Params calculate tool for neural networks». pypi.org. Consultado el 10 de diciembre de 2024.
  5. ↑ Fukushima, K. (2007). «Neocognitron». Scholarpedia 2 (1): 1717. Bibcode:2007SchpJ...2.1717F. doi:10.4249/scholarpedia.1717.
  6. ↑ Fukushima, Kunihiko (1980). «Neocognitron: A Self-organizing Neural Network Model for a Mechanism of Pattern Recognition Unaffected by Shift in Position». Biological Cybernetics 36 (4): 193-202. PMID 7370364. doi:10.1007/BF00344251. Consultado el 6 de octubre de 2026.
  7. ↑ LeCun, Y.; Boser, B.; Denker, J. S.; Henderson, D.; Howard, R. E.; Hubbard, W.; Jackel, L. D. (1989). «Backpropagation Applied to Handwritten Zip Code Recognition». Neural Computation (MIT Press - Journals) 1 (4): 541-551. ISSN 0899-7667. OCLC 364746139. doi:10.1162/neco.1989.1.4.541. Consultado el 6 de octubre de 2026.
  8. ↑ LeCun, Yann; Bottou, Léon; Bengio, Yoshua; Haffner, Patrick (1998). «Gradient-based learning applied to document recognition». Proceedings of the IEEE 86 (11): 2278-2324. doi:10.1109/5.726791. Consultado el 6 de octubre de 2026.
  9. ↑ Yamaguchi, Kouichi; Sakamoto, Kenji; Akabane, Toshio; Fujimoto, Yoshiji (noviembre de 1990). A Neural Network for Speaker-Independent Isolated Word Recognition. First International Conference on Spoken Language Processing (ICSLP 90). Kobe, Japón. Archivado desde el original el 7 de marzo de 2021.
  10. ↑ Weng, J.; Ahuja, N.; Huang, T. S. (1992). Cresceptron: a self-organizing neural network which grows adaptively. IJCNN International Joint Conference on Neural Networks 1. IEEE. pp. 576-581. ISBN 978-0-7803-0559-5. doi:10.1109/IJCNN.1992.287150.
  11. ↑ Chellapilla, Kumar; Puri, Sidd; Simard, Patrice (2006). «High Performance Convolutional Neural Networks for Document Processing». En Lorette, Guy, ed. Tenth International Workshop on Frontiers in Handwriting Recognition. Suvisoft. Consultado el 6 de octubre de 2026.
  12. ↑ Raina, Rajat; Madhavan, Anand; Ng, Andrew Y. (14 de junio de 2009). Large-scale deep unsupervised learning using graphics processors. Proceedings of the 26th Annual International Conference on Machine Learning (en inglés). ACM. pp. 873-880. ISBN 978-1-60558-516-1. doi:10.1145/1553374.1553486.
  13. ↑ Cireșan, Dan; Meier, Ueli; Masci, Jonathan; Gambardella, Luca M.; Schmidhuber, Jürgen (2011). «Flexible, High Performance Convolutional Neural Networks for Image Classification». Proceedings of the Twenty-Second International Joint Conference on Artificial Intelligence-Volume Volume Two 2: 1237-1242. Consultado el 6 de octubre de 2026.
  14. ↑ Schmidhuber, Jürgen (17 de marzo de 2017). «History of computer vision contests won by deep CNNs on GPU» (en inglés). Consultado el 6 de octubre de 2026.
  15. ↑ Cireșan, Dan; Meier, Ueli; Schmidhuber, Jürgen (junio de 2012). «Multi-column deep neural networks for image classification». 2012 IEEE Conference on Computer Vision and Pattern Recognition. Nueva York: Institute of Electrical and Electronics Engineers (IEEE). pp. 3642-3649. ISBN 978-1-4673-1226-4. OCLC 812295155. doi:10.1109/CVPR.2012.6248110.
  16. ↑ Taskar, Ben; Guestrin, Carlos; Koller, Daphne (2003). «Max-Margin Markov Networks». Advances in Neural Information Processing Systems (MIT Press) 16. Consultado el 6 de octubre de 2026.
  17. 1 2 3 Zhang, Aston; Lipton, Zachary; Li, Mu; Smola, Alexander J. (2024). «8.1. Deep Convolutional Neural Networks (AlexNet)». Dive into deep learning. Cambridge: Cambridge University Press. ISBN 978-1-009-38943-3. Consultado el 6 de octubre de 2026.
  18. ↑ Li, Fei Fei (2023). The worlds I see: curiosity, exploration, and discovery at the dawn of AI (1.ª edición). Nueva York: Moment of Lift Books; Flatiron Books. ISBN 978-1-250-89793-0.
  19. 1 2 3 4 «How a stubborn computer scientist accidentally launched the deep learning boom». Ars Technica (en inglés). 11 de noviembre de 2024. Consultado el 6 de octubre de 2026.
  20. 1 2 hhackford (20 de marzo de 2025). «CHM Releases AlexNet Source Code». CHM (en inglés). Consultado el 6 de octubre de 2026.
  21. ↑ Krizhevsky, Alex (18 de julio de 2014). «cuda-convnet: High-performance C++/CUDA implementation of convolutional neural networks». Google Code Archive (en inglés). Consultado el 6 de octubre de 2026.
  22. ↑ computerhistory/AlexNet-Source-Code, Computer History Museum, 22 de marzo de 2025, consultado el 6 de octubre de 2026.