stringtranslate.com

Red neuronal residual

Un bloque residual en una red residual profunda. Aquí, la conexión residual omite dos capas.

Una red neuronal residual (también denominada red residual o ResNet ) [1] es una arquitectura de aprendizaje profundo en la que las capas aprenden funciones residuales con referencia a las entradas de la capa. Se desarrolló en 2015 para el reconocimiento de imágenes y ganó el ImageNet Large Scale Visual Recognition Challenge (ILSVRC) de ese año. [2] [3]

Como punto de terminología, "conexión residual" se refiere al motivo arquitectónico específico de, donde es un módulo de red neuronal arbitrario. El motivo se había utilizado anteriormente (consulte §Historial para obtener más detalles). Sin embargo, la publicación de ResNet lo hizo muy popular para las redes de propagación hacia adelante , apareciendo en redes neuronales que aparentemente no están relacionadas con ResNet.

La conexión residual estabiliza el entrenamiento y la convergencia de redes neuronales profundas con cientos de capas, y es un motivo común en redes neuronales profundas, como los modelos de transformadores (por ejemplo, BERT y modelos GPT como ChatGPT ), el sistema AlphaGo Zero , el sistema AlphaStar y el sistema AlphaFold .

Matemáticas

Conexión residual

En un modelo de red neuronal multicapa, considere una subred con una cierta cantidad de capas apiladas (por ejemplo, 2 o 3). Denote la función subyacente realizada por esta subred como , donde es la entrada a la subred. El aprendizaje residual vuelve a parametrizar esta subred y permite que las capas de parámetros representen una "función residual" . La salida de esta subred se representa entonces como:

La operación de " " se implementa a través de una "conexión de salto" que realiza un mapeo de identidad para conectar la entrada de la subred con su salida. Esta conexión se denomina "conexión residual" en trabajos posteriores. La función se representa a menudo mediante la multiplicación de matrices entrelazadas con funciones de activación y operaciones de normalización (por ejemplo, normalización por lotes o normalización por capas ). En conjunto, una de estas subredes se denomina "bloque residual". [1] Una red residual profunda se construye simplemente apilando estos bloques.

La memoria a corto plazo larga (LSTM) tiene un mecanismo de memoria que sirve como una conexión residual. [4] En una LSTM sin una puerta de olvido , una entrada es procesada por una función y agregada a una celda de memoria , lo que da como resultado . Una LSTM con una puerta de olvido funciona esencialmente como una red de autopistas .

Para estabilizar la varianza de las entradas de las capas, se recomienda reemplazar las conexiones residuales con , donde es el número total de capas residuales. [5]

Conexión de proyección

Si la función es del tipo donde , entonces no está definida. Para manejar este caso especial, se utiliza una conexión de proyección:

donde es típicamente una proyección lineal, definida por donde es una matriz. La matriz se entrena mediante retropropagación , al igual que cualquier otro parámetro del modelo.

Propagación de señales

La introducción de asignaciones de identidad facilita la propagación de señales tanto en trayectorias hacia adelante como hacia atrás. [6]

Propagación hacia adelante

Si la salida del -ésimo bloque residual es la entrada del -ésimo bloque residual (asumiendo que no hay función de activación entre bloques), entonces la -ésima entrada es:

Aplicando esta formulación recursivamente, por ejemplo:

produce la relación general:

donde es el índice de un bloque residual y es el índice de algún bloque anterior. Esta formulación sugiere que siempre hay una señal que se envía directamente desde un bloque menos profundo a un bloque más profundo .

Propagación hacia atrás

La formulación de aprendizaje residual proporciona el beneficio adicional de mitigar el problema del gradiente evanescente hasta cierto punto. Sin embargo, es fundamental reconocer que el problema del gradiente evanescente no es la causa raíz del problema de degradación, que se aborda mediante el uso de la normalización. Para observar el efecto de los bloques residuales en la retropropagación, considere la derivada parcial de una función de pérdida con respecto a alguna entrada de bloque residual . Usando la ecuación anterior de propagación hacia adelante para un bloque residual posterior : [6]

Esta formulación sugiere que el cálculo del gradiente de una capa menos profunda, , siempre tiene un término posterior que se agrega directamente. Incluso si los gradientes de los términos son pequeños, el gradiente total resiste la desaparición debido al término agregado .

Variantes de bloques residuales

Dos variantes de bloques residuales convolucionales. [1] Izquierda : un bloque básico que tiene dos capas convolucionales de 3x3. Derecha : un bloque de cuello de botella que tiene una capa convolucional de 1x1 para reducción de dimensión, una capa convolucional de 3x3 y otra capa convolucional de 1x1 para restauración de dimensión.

Bloque básico

Un bloque básico es el bloque de construcción más simple estudiado en la ResNet original. [1] Este bloque consta de dos capas convolucionales secuenciales de 3x3 y una conexión residual. Las dimensiones de entrada y salida de ambas capas son iguales.

Diagrama de bloques de ResNet (2015). Muestra un bloque de ResNet con y sin la convolución 1x1. La convolución 1x1 (con paso) se puede utilizar para cambiar la forma de la matriz, lo que es necesario para la conexión residual a través de una capa de muestreo ascendente/descendente.

Bloque de cuello de botella

Un bloque de cuello de botella [1] consta de tres capas convolucionales secuenciales y una conexión residual. La primera capa de este bloque es una convolución 1x1 para la reducción de la dimensión (por ejemplo, a la mitad de la dimensión de entrada); la segunda capa realiza una convolución 3x3; la última capa es otra convolución 1x1 para la restauración de la dimensión. Los modelos de ResNet-50, ResNet-101 y ResNet-152 se basan en bloques de cuello de botella. [1]

Bloque de preactivación

El bloque residual de preactivación [6] aplica funciones de activación antes de aplicar la función residual . Formalmente, el cálculo de un bloque residual de preactivación se puede escribir como:

donde puede ser cualquier operación de activación (p. ej . ReLU ) o normalización (p. ej. LayerNorm ). Este diseño reduce la cantidad de asignaciones no idénticas entre bloques residuales. Este diseño se utilizó para entrenar modelos con 200 a más de 1000 capas. [6]

Desde GPT-2 , los bloques de transformadores se han implementado principalmente como bloques de preactivación. Esto se conoce a menudo como "prenormalización" en la literatura de modelos de transformadores. [7]

La arquitectura original de Resnet-18. En la publicación original (con el nombre de "ResNet-152") se entrenaron hasta 152 capas. [8]

Aplicaciones

Originalmente, ResNet fue diseñado para visión por computadora . [1] [8] [9]

La arquitectura del Transformer incluye conexiones residuales.

Todas las arquitecturas de transformadores incluyen conexiones residuales. De hecho, los transformadores muy profundos no pueden entrenarse sin ellas. [10]

El artículo original de ResNet no afirmaba estar inspirado en sistemas biológicos. Sin embargo, investigaciones posteriores relacionaron ResNet con algoritmos biológicamente plausibles. [11] [12]

Un estudio publicado en Science en 2023 [13] reveló el conectoma completo del cerebro de un insecto (en concreto, el de una larva de mosca de la fruta). Este estudio descubrió "atajos multicapa" que se asemejan a las conexiones de salto en las redes neuronales artificiales, incluidas las ResNets.

Historia

Trabajos previos

Se observaron conexiones residuales en neuroanatomía , como Lorente de No (1938). [14] : Fig 3  McCulloch y Pitts (1943) propusieron redes neuronales artificiales y consideraron aquellas con conexiones residuales. [15] : Fig 1.h 

En 1961, Frank Rosenblatt describió un modelo de perceptrón multicapa (MLP) de tres capas con conexiones de salto. [16] : 313, Capítulo 15  El modelo se denominó "sistema de acoplamiento cruzado", y las conexiones de salto eran formas de conexiones de acoplamiento cruzado.

A fines de la década de 1980, las conexiones de "capas salteadas" se usaban a veces en redes neuronales. Algunos ejemplos incluyen: [17] [18] Lang y Witbrock (1988) [19] entrenaron una red de propagación hacia adelante completamente conectada donde cada capa se conecta por saltos a todas las capas subsiguientes, como la posterior DenseNet (2016). En este trabajo, la conexión residual tenía la forma,donde es una conexión de proyección inicializada aleatoriamente. La denominaron "conexión de acceso directo".

La célula de memoria a corto plazo (LSTM) puede procesar datos de forma secuencial y mantener su estado oculto a lo largo del tiempo. El estado de la célula puede funcionar como una conexión residual generalizada.

Problema de degradación

Sepp Hochreiter descubrió el problema del gradiente evanescente en 1991 [20] y argumentó que explicaba por qué las formas entonces prevalecientes de redes neuronales recurrentes no funcionaban para secuencias largas. Él y Schmidhuber diseñaron más tarde la arquitectura LSTM para resolver este problema, [4] [21] que tiene un "estado de celda" que puede funcionar como una conexión residual generalizada. La red de carreteras (2015) [22] [23] aplicó la idea de un LSTM desplegado en el tiempo a las redes neuronales de avance , lo que dio como resultado la red de carreteras. ResNet es equivalente a una red de carreteras de compuerta abierta.

Red neuronal recurrente básica estándar (izquierda) y desplegada (derecha)

Durante los primeros días del aprendizaje profundo, hubo intentos de entrenar modelos cada vez más profundos. Ejemplos notables incluyeron AlexNet ( 2012), que tenía 8 capas, y VGG-19 (2014), que tenía 19 capas. [24] Sin embargo, apilar demasiadas capas condujo a una reducción pronunciada en la precisión del entrenamiento , [25] conocido como el problema de "degradación". [1] En teoría, agregar capas adicionales para profundizar una red no debería resultar en una mayor pérdida de entrenamiento , pero esto es lo que sucedió con VGGNet . [1] Sin embargo, si las capas adicionales se pueden configurar como asignaciones de identidad , entonces la red más profunda representaría la misma función que su contraparte más superficial. Existe cierta evidencia de que el optimizador no puede abordar las asignaciones de identidad para las capas parametrizadas, y el beneficio de las conexiones residuales fue permitir asignaciones de identidad de forma predeterminada. [26]

En 2014, el estado del arte era el entrenamiento de redes neuronales profundas con 20 a 30 capas. [27] El equipo de investigación de ResNet intentó entrenar redes más profundas probando empíricamente varios métodos para entrenar redes más profundas, hasta que dieron con la arquitectura ResNet. [28]

Trabajos posteriores

DenseNet (2016) [29] conecta la salida de cada capa con la entrada de cada capa subsiguiente:

La profundidad estocástica [30] es un método de regularización que descarta aleatoriamente un subconjunto de capas y permite que la señal se propague a través de las conexiones de salto de identidad. También conocido como DropPath , regulariza el entrenamiento de modelos profundos, como los transformadores de visión . [31]

Diagrama de bloques de ResNeXt.

ResNeXt (2017) combina el módulo Inception con ResNet. [32] [8]

Squeeze-and-Excitation Networks (2018) agregó módulos de compresión y excitación (SE) a ResNet. [33] Se aplica un módulo SE después de una convolución y toma un tensor de forma (altura, ancho, canales) como entrada. Se promedia cada canal, lo que da como resultado un vector de forma . Luego, este se pasa a través de un perceptrón multicapa (con una arquitectura como linear-ReLU-linear-sigmoid ) antes de multiplicarlo por el tensor original.

Referencias

  1. ^ abcdefghi Él, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sun, Jian (10 de diciembre de 2015). Aprendizaje residual profundo para el reconocimiento de imágenes . arXiv : 1512.03385 .
  2. ^ "Resultados ILSVRC2015". image-net.org .
  3. ^ Deng, Jia; Dong, Wei; Socher, Richard; Li, Li-Jia; Li, Kai; Fei-Fei, Li (2009). "ImageNet: una base de datos de imágenes jerárquica a gran escala". CVPR .
  4. ^ ab Sepp Hochreiter ; Jürgen Schmidhuber (1997). "Memoria larga a corto plazo". Computación neuronal . 9 (8): 1735–1780. doi :10.1162/neco.1997.9.8.1735. PMID  9377276. S2CID  1915014.
  5. ^ Hanin, Boris; Rolnick, David (2018). "Cómo iniciar el entrenamiento: el efecto de la inicialización y la arquitectura". Avances en sistemas de procesamiento de información neuronal . 31 . Curran Associates, Inc. arXiv : 1803.01719 .
  6. ^ abcd Él, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sol, Jian (2015). "Mapeos de identidad en redes residuales profundas". arXiv : 1603.05027 [cs.CV].
  7. ^ Radford, Alec; Wu, Jeffrey; Child, Rewon; Luan, David; Amodei, Dario; Sutskever, Ilya (14 de febrero de 2019). «Los modelos de lenguaje son aprendices multitarea no supervisados» (PDF) . Archivado (PDF) del original el 6 de febrero de 2021. Consultado el 19 de diciembre de 2020 .
  8. ^ abc Zhang, Aston; Lipton, Zachary; Li, Mu; Smola, Alexander J. (2024). "8.6. Redes Residuales (ResNet) y ResNeXt". Sumérjase en el aprendizaje profundo . Cambridge New York Port Melbourne New Delhi Singapore: Cambridge University Press. ISBN 978-1-009-38943-3.
  9. ^ Szegedy, Christian; Ioffe, Sergey; Vanhoucke, Vincent; Alemi, Alex (2016). "Inception-v4, Inception-ResNet y el impacto de las conexiones residuales en el aprendizaje". arXiv : 1602.07261 [cs.CV].
  10. ^ Dong, Yihe; Cordonnier, Jean-Baptiste; Loukas, Andreas (2021). "La atención no es todo lo que necesitas: la atención pura pierde rango de manera exponencialmente doble con la profundidad". arXiv : 2103.03404 [cs.LG].
  11. ^ Liao, Qianli; Poggio, Tomaso (2016). Cerrando las brechas entre el aprendizaje residual, las redes neuronales recurrentes y la corteza visual . arXiv : 1604.03640 .
  12. ^ Xiao, Will; Chen, Honglin; Liao, Qianli; Poggio, Tomaso (2018). Los algoritmos de aprendizaje biológicamente plausibles pueden escalarse a grandes conjuntos de datos . arXiv : 1811.03567 .
  13. ^ Winding, Michael; Pedigo, Benjamin; Barnes, Christopher; Patsolic, Heather; Park, Youngser; Kazimiers, Tom; Fushiki, Akira; Andrade, Ingrid; Khandelwal, Avinash; Valdes-Aleman, Javier; Li, Feng; Randel, Nadine; Barsotti, Elizabeth; Correia, Ana; Fetter, Fetter; Hartenstein, Volker; Priebe, Carey; Vogelstein, Joshua; Cardona, Albert; Zlatic, Marta (10 de marzo de 2023). "El conectoma del cerebro de un insecto". Science . 379 (6636): eadd9330. bioRxiv 10.1101/2022.11.28.516756v1 . doi :10.1126/science.add9330. PMC 7614541 . Número de modelo: PMID  36893230. Número de modelo: S2CID  254070919.  
  14. ^ De N, Rafael Lorente (1938-05-01). "Análisis de la actividad de las cadenas de neuronas internunciales". Revista de neurofisiología . 1 (3): 207–244. doi :10.1152/jn.1938.1.3.207. ISSN  0022-3077.
  15. ^ McCulloch, Warren S.; Pitts, Walter (1943-12-01). "Un cálculo lógico de las ideas inmanentes en la actividad nerviosa". Boletín de Biofísica Matemática . 5 (4): 115–133. doi :10.1007/BF02478259. ISSN  1522-9602.
  16. ^ Rosenblatt, Frank (1961). Principios de la neurodinámica. Los perceptrones y la teoría de los mecanismos cerebrales (PDF) .
  17. ^ Rumelhart, David E., Geoffrey E. Hinton y Ronald J. Williams. "Aprendizaje de representaciones internas mediante propagación de errores", Procesamiento distribuido paralelo . Vol. 1. 1986.
  18. ^ Venables, WN; Ripley, Brain D. (1994). Estadística aplicada moderna con S-Plus. Springer. pp. 261–262. ISBN 9783540943501.
  19. ^ Lang, Kevin; Witbrock, Michael (1988). "Aprender a distinguir dos espirales" (PDF) . Actas de la Escuela de verano de modelos conexionistas de 1988 : 52–59.
  20. ^ Hochreiter, Sepp (1991). Untersuchungen zu dynamischen neuronalen Netzen (PDF) (tesis de diploma). Universidad Técnica de Múnich, Instituto de Informática, asesor: J. Schmidhuber.
  21. ^ Felix A. Gers; Jürgen Schmidhuber; Fred Cummins (2000). "Aprendiendo a olvidar: predicción continua con LSTM". Computación neuronal . 12 (10): 2451–2471. CiteSeerX 10.1.1.55.5709 . doi :10.1162/089976600300015015. PMID  11032042. S2CID  11598600. 
  22. ^ Srivastava, Rupesh Kumar; Greff, Klaus; Schmidhuber, Jürgen (3 de mayo de 2015). "Redes de Carreteras". arXiv : 1505.00387 [cs.LG].
  23. ^ Srivastava, Rupesh Kumar; Greff, Klaus; Schmidhuber, Jürgen (22 de julio de 2015). "Entrenamiento de redes muy profundas". arXiv : 1507.06228 [cs.LG].
  24. ^ Simonyan, Karen; Zisserman, Andrew (10 de abril de 2015). "Redes convolucionales muy profundas para el reconocimiento de imágenes a gran escala". arXiv : 1409.1556 [cs.CV].
  25. ^ He, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sun, Jian (2016). "Profundizando en los rectificadores: superando el rendimiento a nivel humano en la clasificación de ImageNet". arXiv : 1502.01852 [cs.CV].
  26. ^ He, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sun, Jian (2016). "Mapeos de identidad en redes residuales profundas". En Leibe, Bastian; Matas, Jiri; Sebe, Nicu; Welling, Max (eds.). Visión artificial – ECCV 2016. Vol. 9908. Cham: Springer International Publishing. págs. 630–645. doi :10.1007/978-3-319-46493-0_38. ISBN 978-3-319-46492-3. Recuperado el 19 de septiembre de 2024 .
  27. ^ Simonyan, Karen; Zisserman, Andrew (10 de abril de 2015). "Redes convolucionales muy profundas para el reconocimiento de imágenes a gran escala". arXiv : 1409.1556 [cs.CV].
  28. ^ Linn, Allison (10 de diciembre de 2015). "Investigadores de Microsoft ganan el desafío de visión artificial de ImageNet". The AI ​​Blog . Consultado el 29 de junio de 2024 .
  29. ^ Huang, Gao; Liu, Zhuang; van der Maaten, Laurens; Weinberger, Kilian (2016). Redes convolucionales densamente conectadas . arXiv : 1608.06993 .
  30. ^ Huang, Gao; Sun, Yu; Liu, Zhuang; Weinberger, Kilian (2016). Redes profundas con profundidad estocástica . arXiv : 1603.09382 .
  31. ^ Lee, Youngwan; Kim, Jonghee; Willette, Jeffrey; Hwang, Sung Ju (2022). "MPViT: Transformador de visión de múltiples rutas para predicción densa": 7287–7296. arXiv : 2112.11010 . {{cite journal}}: Requiere citar revista |journal=( ayuda )
  32. ^ Xie, Saining; Girshick, Ross; Dollar, Piotr; Tu, Zhuowen; He, Kaiming (2017). "Transformaciones residuales agregadas para redes neuronales profundas": 1492–1500. arXiv : 1611.05431 . {{cite journal}}: Requiere citar revista |journal=( ayuda )
  33. ^ Hu, Jie; Shen, Li; Sun, Gang (2018). "Redes de compresión y excitación": 7132–7141. {{cite journal}}: Requiere citar revista |journal=( ayuda )