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
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.
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]
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".
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.
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]
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
^ 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 .
^ "Resultados ILSVRC2015". image-net.org .
^ 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 .
^ 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 .
^ abcd Él, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sol, Jian (2015). "Mapeos de identidad en redes residuales profundas". arXiv : 1603.05027 [cs.CV].
^ 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 .
^ 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. ISBN978-1-009-38943-3.
^ 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].
^ 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].
^ Liao, Qianli; Poggio, Tomaso (2016). Cerrando las brechas entre el aprendizaje residual, las redes neuronales recurrentes y la corteza visual . arXiv : 1604.03640 .
^ 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 .
^ 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.
^ 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.
^ 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.
^ Rosenblatt, Frank (1961). Principios de la neurodinámica. Los perceptrones y la teoría de los mecanismos cerebrales (PDF) .
^ 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.
^ Venables, WN; Ripley, Brain D. (1994). Estadística aplicada moderna con S-Plus. Springer. pp. 261–262. ISBN9783540943501.
^ Lang, Kevin; Witbrock, Michael (1988). "Aprender a distinguir dos espirales" (PDF) . Actas de la Escuela de verano de modelos conexionistas de 1988 : 52–59.
^ 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.
^ 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.
^ Srivastava, Rupesh Kumar; Greff, Klaus; Schmidhuber, Jürgen (3 de mayo de 2015). "Redes de Carreteras". arXiv : 1505.00387 [cs.LG].
^ Srivastava, Rupesh Kumar; Greff, Klaus; Schmidhuber, Jürgen (22 de julio de 2015). "Entrenamiento de redes muy profundas". arXiv : 1507.06228 [cs.LG].
^ 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].
^ 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].
^ 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. ISBN978-3-319-46492-3. Recuperado el 19 de septiembre de 2024 .
^ 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].
^ 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 .