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 conocida como red residual o ResNet ) [1] es un modelo fundamental de aprendizaje profundo en el que las capas de peso aprenden funciones residuales con referencia a las entradas de la capa. Fue desarrollado en 2015 para el reconocimiento de imágenes y ganó el ImageNet Large Scale Visual Recognition Challenge (ILSVRC) de ese año . [2] [3]

ResNet se comporta como una red de carreteras cuyas puertas se abren mediante pesos de sesgo fuertemente positivos. [4] Esto permite que los modelos de aprendizaje profundo con decenas o cientos de capas se entrenen fácilmente y alcancen una mayor precisión al profundizar.

Como cuestión terminológica, "conexión residual" o "saltar conexión" se refiere al motivo arquitectónico específico de , donde es un módulo de red neuronal arbitrario. Las conexiones residuales se habían utilizado antes de ResNet, como en la red LSTM original. [5] Sin embargo, la publicación de ResNet lo hizo muy popular, apareciendo en redes neuronales que de otra manera no están relacionadas con ResNet. Por ejemplo, las conexiones residuales aparecen en los modelos Transformer (p. ej., modelos BERT y GPT como ChatGPT ), el sistema AlphaGo Zero , el sistema AlphaStar y el sistema AlphaFold .

Formulación

Fondo

En 2012, AlexNet [6] fue desarrollado para ILSVRC (que ganó), convirtiéndose en un modelo muy influyente en el desarrollo del aprendizaje profundo para la visión por computadora . AlexNet es una red neuronal convolucional (CNN) de ocho capas , y aunque las CNN han existido desde al menos LeNet en la década de 1990, [7] AlexNet ayudó a ser pionero en su uso en aplicaciones del mundo real mediante el uso de GPU para realizar cálculos paralelos y Capas ReLU ("Unidad lineal rectificada") para acelerar el descenso del gradiente .

En 2014, VGGNet fue desarrollado por Visual Geometry Group (VGG) de la Universidad de Oxford , mejorando la arquitectura AlexNet. Mientras que AlexNet usó solo unas pocas capas convolucionales con núcleos a veces grandes (hasta ), VGGNet fue pionero en el uso de CNN más profundas (es decir, aquellas con más capas) mediante el uso de muchos núcleos más pequeños ( ) apilados juntos.

Sin embargo, apilar demasiadas capas provocó una fuerte reducción en la precisión del entrenamiento , [8] conocido como 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 exactamente lo que sucedió con VGGNet. [1] Sin embargo , si las capas adicionales se pueden establecer como asignaciones de identidad , entonces la red más profunda representaría la misma función que su contraparte menos profunda. Esta es la idea principal detrás del aprendizaje residual, que se explica más adelante. Se plantea la hipótesis de que el optimizador no puede abordar asignaciones de identidad para las capas parametrizadas.

En 2014, lo último en tecnología era entrenar una “red neuronal muy profunda” con entre 20 y 30 capas. [9] El equipo de investigación intentó entrenar redes más profundas probando empíricamente varios trucos para entrenar redes más profundas hasta que descubrieron la arquitectura de red residual profunda. [10]

Aprendizaje 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 está 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 mediante una "omisión de conexión" que realiza un mapeo de identidad para conectar la entrada de la subred con su salida. Esta conexión se denominará en trabajos posteriores "conexión residual". La función suele representarse mediante la multiplicación de matrices entrelazadas con funciones de activación y operaciones de normalización (p. ej., normalización por lotes o normalización por capas). En conjunto, una de estas subredes se denomina "bloque residual". [1] Se construye una red residual profunda simplemente apilando estos bloques.

Es importante destacar que el principio subyacente de los bloques residuales es también el principio de la celda LSTM original , [5] una red neuronal recurrente que predice una salida en un momento como , que se convierte durante la retropropagación a través del tiempo . [11]

Propagación de señal

La introducción de mapeos de identidad facilita la propagación de la señal tanto en el camino hacia adelante como hacia atrás, como se describe a continuación. [12]

Propagación hacia adelante

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

Aplicando esta formulación de forma recursiva, 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 del aprendizaje residual proporciona el beneficio adicional de abordar hasta cierto punto el problema del gradiente evanescente . Sin embargo, es crucial reconocer que el problema del gradiente que desaparece no es la causa fundamental del problema de degradación, que se aborda mediante el uso de capas de 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 del bloque residual . Usando la ecuación anterior de propagación hacia adelante para un bloque residual posterior : [12]

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 se resiste a desaparecer gracias 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 la reducción de dimensiones (por ejemplo, 1/4), una capa convolucional de 3x3 y otra capa convolucional de 1x1 para la restauración de dimensiones.

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 reducción de dimensiones, por ejemplo, a 1/4 de la dimensión de entrada; la segunda capa realiza una convolución de 3x3; la última capa es otra convolución 1x1 para restauración de dimensiones. Los modelos de ResNet-50, ResNet-101 y ResNet-152 en [1] se basan todos en bloques de cuello de botella.

Bloqueo de preactivación

El bloque residual de preactivación [12] aplica las funciones de activación (por ejemplo, no linealidad y normalizació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 no lineal (por ejemplo, ReLU ) o normalización (por ejemplo, LayerNorm). Este diseño reduce la cantidad de asignaciones sin identidad entre bloques residuales. Este diseño se utilizó para entrenar modelos con entre 200 y más de 1000 capas. [12]

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

bloque transformador

La arquitectura Transformer utilizada en el modelo GPT original . Un bloque transformador consta de dos bloques residuales: un bloque de atención de cabezales múltiples y un bloque de perceptrón multicapa (MLP) de avance .

Un bloque transformador es una pila de dos bloques residuales. Cada Bloque Residual tiene una Conexión Residual.

El primer bloque residual es un bloque de atención de múltiples cabezales , que realiza un cálculo de (auto)atención seguido de una proyección lineal.

El segundo bloque residual es un bloque de perceptrón multicapa ( MLP ) de avance . Este bloque es análogo a un bloque de cuello de botella "inverso": tiene una capa de proyección lineal (que equivale a una convolución 1x1 en el contexto de las redes neuronales convolucionales) que aumenta la dimensión y otra proyección lineal que reduce la dimensión.

Un Bloque Transformador tiene una profundidad de 4 capas (proyecciones lineales). El modelo GPT-3 tiene 96 bloques transformadores (en la literatura sobre transformadores, un bloque transformador a menudo se denomina "capa transformadora"). Este modelo tiene una profundidad de aproximadamente 400 capas de proyección, incluidas capas de 96x4 en Transformer Blocks y algunas capas adicionales para incrustación de entrada y predicción de salida.

Los modelos Transformer muy profundos no se pueden entrenar con éxito sin conexiones residuales. [14]

Trabajo relacionado

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

En dos libros publicados en 1994 [16] y 1996, [17] se presentaron conexiones de "salto de capa" en modelos MLP de retroalimentación: " La definición general [de MLP] permite más de una capa oculta, y también permite ' conexiones de capa de salto de entrada a salida " (p261 en, [16] p144 en [17] ), "... lo que permite que las unidades no lineales perturben una forma funcional lineal " (p262 en [16] ). Esta descripción sugiere que el MLP no lineal se comporta como una función residual (perturbación) agregada a una función lineal.

Sepp Hochreiter analizó el problema del gradiente evanescente en 1991 y le atribuyó la razón por la que el aprendizaje profundo no funcionaba bien. [18] Para superar este problema, las redes neuronales recurrentes de memoria a corto plazo (LSTM) [5] tenían conexiones de salto o conexiones residuales con un peso de 1,0 en cada celda de LSTM (llamada carrusel de error constante) para calcular . Durante la propagación hacia atrás en el tiempo , esto se convierte en la fórmula residual mencionada anteriormente para las redes neuronales de avance. Esto permite entrenar redes neuronales recurrentes muy profundas con un lapso de tiempo t muy largo. Una versión posterior de LSTM publicada en 2000 [19] modula las conexiones de identidad de LSTM mediante las llamadas puertas de olvido, de modo que sus pesos no están fijados en 1,0 pero se pueden aprender. En los experimentos, las puertas de olvido se inicializaron con pesos de sesgo positivos, [19] abriéndose así, solucionando el problema del gradiente evanescente.

La red de carreteras de mayo de 2015 [4] [20] aplica estos principios a las redes neuronales feedforward . Se informó que era "la primera red feedforward muy profunda con cientos de capas". [21] Es como un LSTM con puertas de olvido desplegadas en el tiempo , [19] mientras que las Redes Residuales posteriores no tienen equivalente a puertas de olvido y son como el LSTM original desplegado. [5] Si las conexiones de salto en las redes de autopistas están "sin puertas", o si sus puertas se mantienen abiertas (activación 1.0) a través de fuertes pesos de sesgo positivo, se convierten en conexiones de salto de identidad en las redes residuales.

El artículo original de Highway Network [4] no solo introdujo el principio básico para redes feedforward muy profundas, sino que también incluyó resultados experimentales con redes de 20, 50 y 100 capas, y mencionó experimentos en curso con hasta 900 capas. Las redes con 50 o 100 capas tuvieron un error de entrenamiento menor que sus contrapartes de red simple, pero no un error de entrenamiento menor que su contraparte de 20 capas (en el conjunto de datos MNIST, Figura 1 en [4] ). No se informó ninguna mejora en la precisión de las pruebas con redes de más de 19 capas (en el conjunto de datos CIFAR-10; Tabla 1 en [4] ). Sin embargo, el artículo de ResNet [12] proporcionó pruebas experimentales sólidas de los beneficios de profundizar más de 20 capas. Argumentó que el mapeo de identidad sin modulación es crucial y mencionó que la modulación en la conexión de salto aún puede conducir a señales que desaparecen en la propagación hacia adelante y hacia atrás (Sección 3 en [12] ). Esta es también la razón por la que las puertas de olvido del LSTM 2000 [19] se abrieron inicialmente mediante pesos de sesgo positivo: mientras las puertas estén abiertas, se comporta como el LSTM de 1997. De manera similar, una Highway Net cuyas puertas se abren mediante pesos de sesgo fuertemente positivos se comporta como una ResNet. Las conexiones de salto utilizadas en las redes neuronales modernas (por ejemplo, Transformers ) son predominantemente mapeos de identidad.

Las DenseNets en 2016 [22] se diseñaron como redes neuronales profundas que intentan conectar cada capa con todas las demás. DenseNets alcanzó este objetivo utilizando asignaciones de identidad como conexiones de salto. A diferencia de ResNets, DenseNets fusiona la salida de la capa con conexiones de salto mediante concatenación, no suma.

Las redes neuronales con profundidad estocástica [23] fueron posibles gracias a las arquitecturas de red residual. Este procedimiento de entrenamiento elimina aleatoriamente un subconjunto de capas y permite que la señal se propague a través de la conexión de omisión de identidad. También conocido como "DropPath", este es un método de regularización eficaz para entrenar modelos grandes y profundos, como Vision Transformer (ViT).

Relación biológica

El artículo original de Residual Network no pretendía estar inspirado en sistemas biológicos. Pero investigaciones posteriores han relacionado las redes residuales con algoritmos biológicamente plausibles. [24] [25]

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

Referencias

  1. ^ abcdefgh É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 de 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. ^ abcde Srivastava, Rupesh Kumar; Greff, Klaus; Schmidhuber, Jürgen (3 de mayo de 2015). "Redes de Carreteras". arXiv : 1505.00387 [cs.LG].
  5. ^ abcd 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.
  6. ^ Krizhevsky, Alex; Sutskever, Ilya; Hinton, Geoffrey E. (24 de mayo de 2017). "Clasificación de ImageNet con redes neuronales convolucionales profundas". Comunicaciones de la ACM . 60 (6): 84–90. doi :10.1145/3065386.
  7. ^ LeCun, Yann ; Bottou, León; Bengio, Yoshua; Haffner, Patrick (noviembre de 1998). "Aprendizaje basado en gradientes aplicado al reconocimiento de documentos". Actas del IEEE . 86 (11): 2278–2324. doi : 10.1109/5.726791.
  8. ^ Él, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sol, Jian (2016). "Profundizar en los rectificadores: superar el rendimiento a nivel humano en la clasificación ImageNet". arXiv : 1502.01852 [cs.CV].
  9. ^ 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
  10. ^ Linn, Allison (10 de diciembre de 2015). "Los investigadores de Microsoft ganan el desafío de visión por computadora de ImageNet". El blog de IA . Consultado el 29 de junio de 2024 .
  11. ^ Szegedy, cristiano; Ioffe, Sergey; Vanhoucke, Vicente; Alemi, Alex (2016). "Inception-v4, Inception-ResNet y el impacto de las conexiones residuales en el aprendizaje". arXiv : 1602.07261 [cs.CV].
  12. ^ abcdef Él, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sol, Jian (2015). "Mapeos de identidad en redes residuales profundas". arXiv : 1603.05027 [cs.CV].
  13. ^ Radford, Alec; Wu, Jeffrey; Niño, Rewon; Luan, David; Amodei, Darío; Sutskever, Ilya (14 de febrero de 2019). "Los modelos de lenguaje son estudiantes multitarea sin supervisión" (PDF) . Archivado (PDF) desde el original el 6 de febrero de 2021 . Consultado el 19 de diciembre de 2020 .
  14. ^ Dong, Yihe; Cordonnier, Jean-Baptiste; Loukás, Andreas (2021). "La atención no es todo lo que necesitas: la atención pura pierde rango doblemente exponencial con la profundidad". arXiv : 2103.03404 [cs.LG].
  15. ^ Rosenblatt, Frank (1961). Principios de la neurodinámica. Perceptrones y la teoría de los mecanismos cerebrales (PDF) .
  16. ^ abc Venables, WN; Ripley, cerebro D. (1994). Estadística Aplicada Moderna con S-Plus. Saltador. ISBN 9783540943501.
  17. ^ ab Ripley, BD (1996). Reconocimiento de patrones y redes neuronales. Prensa de la Universidad de Cambridge. doi :10.1017/CBO9780511812651. ISBN 978-0-521-46086-6.
  18. ^ 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.
  19. ^ abcd Félix A. Gers; Jürgen Schmidhuber; Fred Cummins (2000). "Aprender 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. 
  20. ^ Srivastava, Rupesh Kumar; Greff, Klaus; Schmidhuber, Jürgen (22 de julio de 2015). "Entrenamiento de redes muy profundas". arXiv : 1507.06228 [cs.LG].
  21. ^ Schmidhuber, Jürgen (2015). "Microsoft gana ImageNet 2015 a través de Highway Net (o Feedforward LSTM) sin Gates".
  22. ^ Huang, Gao; Liu, Zhuang; van der Maaten, Laurens; Weinberger, Kilian (2016). Redes convolucionales densamente conectadas . arXiv : 1608.06993 .
  23. ^ Huang, Gao; Sol, Yu; Liu, Zhuang; Weinberger, Kilian (2016). Redes profundas con profundidad estocástica . arXiv : 1603.09382 .
  24. ^ Liao, Qianli; Poggio, Tomaso (2016). Cerrando las brechas entre el aprendizaje residual, las redes neuronales recurrentes y la corteza visual . arXiv : 1604.03640 .
  25. ^ Xiao, voluntad; Chen, Honglin; Liao, Qianli; Poggio, Tomaso (2018). "Los algoritmos de aprendizaje biológicamente plausibles pueden ampliarse a grandes conjuntos de datos" . arXiv : 1811.03567 .
  26. ^ Sinuoso, Michael; Pedigo, Benjamín; Barnes, Cristóbal; Patsolic, Heather; Park, más joven; Kazimiers, Tom; Fushiki, Akira; Andrade, Ingrid; Khandelwal, Avinash; Valdés-Alemán, Javier; Li, Feng; Randel, Nadine; Barsotti, Elizabeth; Correia, Ana; Grillete, grillete; Hartenstein, Volker; Priebe, Carey; Vogelstein, Josué; Cardona, Alberto; Zlatic, Marta (10 de marzo de 2023). "El conectoma de un cerebro de insecto". Ciencia . 379 (6636): eadd9330. bioRxiv 10.1101/2022.11.28.516756v1 . doi : 10.1126/ciencia.add9330. PMC 7614541 . PMID  36893230. S2CID  254070919.