stringtranslate.com

AlexNet

Arquitectura de AlexNet y una posible modificación. En la parte superior se muestra la mitad de la AlexNet original (que se divide en dos mitades, una por GPU). En la parte inferior se muestra la misma arquitectura pero con la última capa de "proyección" reemplazada 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 costo mucho menor que si se entrena desde cero.
Diagrama de bloques de AlexNet

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 .

Arquitectura

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? ]

Capacitación

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 .

Historia

Trabajos previos

Comparación de la convolución, agrupación y capas densas de LeNet
y AlexNet (el tamaño de la imagen de AlexNet debería ser 227×227×3, en lugar de 224×224×3, para que los cálculos salgan bien. El artículo original decía números diferentes, pero Andrej Karpathy, exdirector de visión por computadora en Tesla, dijo que debería ser 227×227×3 (dijo que Alex no describió por qué puso 224×224×3). La siguiente convolución debería ser 11×11 con paso 4: 55×55×96 (en lugar de 54×54×96). Se calcularía, por ejemplo, como: [(ancho de entrada 227 - ancho del kernel 11) / paso 4] + 1 = [(227 - 11) / 4] + 1 = 55. Dado que la salida del kernel tiene la misma longitud que el ancho, Su área es 55×55.)

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 .

Visión por computadora

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]

Trabajos posteriores

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).

Referencias

  1. ^ abcdef Krizhevsky, Alex; Sutskever, Ilya; Hinton, Geoffrey E. (24 de mayo de 2017). "Clasificación ImageNet con redes neuronales convolucionales profundas" (PDF) . Comunicaciones de la ACM . 60 (6): 84–90. doi : 10.1145/3065386 . ISSN  0001-0782. S2CID  195908774.
  2. ^ Desafío de reconocimiento visual a gran escala 2012 (ILSVRC2012)
  3. ^ "Concurso de reconocimiento visual a gran escala ImageNet 2012 (ILSVRC2012)". image-net.org .
  4. ^ abcd Zhang, Aston; Lipton, Zachary; Li, Mu; Smola, Alexander J. (2024). "8.1. Redes neuronales convolucionales profundas (AlexNet)". Sumérjase en el aprendizaje profundo . Cambridge New York Port Melbourne New Delhi Singapore: Cambridge University Press. ISBN 978-1-009-38943-3.
  5. ^ Fukushima, K. (2007). "Neocognitron". Scholarpedia . 2 (1): 1717. Código Bibliográfico :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 Noffected by Shift in Position" (PDF) . Cibernética biológica . 36 (4): 193–202. doi :10.1007/BF00344251. PMID  7370364. S2CID  206775608 . Consultado el 16 de noviembre de 2013 .
  7. ^ LeCun, Y.; Boser, B.; Denker, JS; Henderson, D.; Howard, RE; Hubbard, W.; Jackel, LD (1989). "Retropropagación aplicada al reconocimiento de códigos postales escritos a mano" (PDF) . Neural Computation . 1 (4). MIT Press - Revistas: 541–551. doi :10.1162/neco.1989.1.4.541. ISSN  0899-7667. OCLC  364746139.
  8. ^ LeCun, Yann; León Bottou; Yoshua Bengio; Patricio Haffner (1998). "Aprendizaje basado en gradientes aplicado al reconocimiento de documentos" (PDF) . Actas del IEEE . 86 (11): 2278–2324. CiteSeerX 10.1.1.32.9552 . doi : 10.1109/5.726791. S2CID  14542261 . Consultado el 7 de octubre de 2016 . 
  9. ^ Weng, J; Ahuja, N; Huang, TS (1993). "Aprendizaje del reconocimiento y segmentación de objetos 3-D a partir de imágenes 2-D". Proc. 4th International Conf. Computer Vision : 121–128.
  10. ^ Schmidhuber, Jürgen (2015). "Aprendizaje profundo". Scholarpedia . 10 (11): 1527–54. CiteSeerX 10.1.1.76.1541 . doi :10.1162/neco.2006.18.7.1527. PMID  16764513. S2CID  2309950. 
  11. ^ Kumar Chellapilla; Sidd Puri; Patrice Simard (2006). "Redes neuronales convolucionales de alto rendimiento para el procesamiento de documentos". En Lorette, Guy (ed.). Décimo taller internacional sobre fronteras en el reconocimiento de escritura a mano . Suvisoft.
  12. ^ Cireșan, Dan; Ueli Meier; Jonathan Masci; Luca M. Gambardella; Jurgen Schmidhuber (2011). "Redes neuronales convolucionales flexibles y de alto rendimiento para la clasificación de imágenes" (PDF) . Actas de la vigésimo segunda conferencia conjunta internacional sobre inteligencia artificial, volumen dos . 2 : 1237–1242 . Consultado el 17 de noviembre de 2013 .
  13. ^ "Tabla de resultados de la competición IJCNN 2011". COMPETICIÓN OFICIAL IJCNN2011 . 2010. Consultado el 14 de enero de 2019 .
  14. ^ Schmidhuber, Jürgen (17 de marzo de 2017). «Historia de los concursos de visión artificial ganados por las CNN profundas en la GPU» . Consultado el 14 de enero de 2019 .
  15. ^ Cireșan, Dan; Meier, Ueli; Schmidhuber, Jürgen (junio de 2012). "Redes neuronales profundas de múltiples columnas para la clasificación de imágenes". Conferencia IEEE de 2012 sobre visión artificial y reconocimiento de patrones . Nueva York, NY: Instituto de Ingenieros Eléctricos y Electrónicos (IEEE). págs. 3642–3649. arXiv : 1202.2745 . CiteSeerX 10.1.1.300.3283 . doi :10.1109/CVPR.2012.6248110. ISBN .  978-1-4673-1226-4. OCLC  812295155. S2CID  2161592.
  16. ^ Taskar, Ben; Guestrin, Carlos; Koller, Daphne (2003). "Redes de Markov de margen máximo". Avances en sistemas de procesamiento de información neuronal . 16 . MIT Press.
  17. ^ Artículo de AlexNet en Google Scholar
  18. ^ Krizhevsky, Alex (18 de julio de 2014). «cuda-convnet: implementación de alto rendimiento en C++/CUDA de redes neuronales convolucionales». Archivo de código de Google . Consultado el 20 de octubre de 2024 .