La retropropagación calcula el gradiente de una función de pérdida con respecto a los pesos de la red para un único ejemplo de entrada-salida, y lo hace de manera eficiente , calculando el gradiente una capa a la vez, iterando hacia atrás desde la última capa para evitar cálculos redundantes de niveles intermedios. términos de la regla de la cadena; esto se puede derivar mediante programación dinámica . [11] [12] [13] El descenso de gradiente , o variantes como el descenso de gradiente estocástico , [14] se utilizan comúnmente.
Estrictamente, el término retropropagación se refiere sólo al algoritmo para calcular el gradiente, no a cómo se utiliza el gradiente; pero el término se usa a menudo de manera vaga para referirse a todo el algoritmo de aprendizaje, incluida la forma en que se usa el gradiente, como por ejemplo mediante el descenso de gradiente estocástico. [15] En 1986 David E. Rumelhart et al. publicó un análisis experimental de la técnica. [16] Esto contribuyó a la popularización de la retropropagación y ayudó a iniciar un período activo de investigación en perceptrones multicapa .
Descripción general
La retropropagación calcula el gradiente en el espacio de peso de una red neuronal feedforward, con respecto a una función de pérdida . Denotar:
: entrada (vector de características)
: salida objetivo
Para la clasificación, la salida será un vector de probabilidades de clase (por ejemplo, y la salida objetivo es una clase específica, codificada por la variable one-hot / dummy (por ejemplo, ).
Para la clasificación, la última capa suele ser la función logística para la clasificación binaria y softmax (softargmax) para la clasificación multiclase, mientras que para las capas ocultas esta era tradicionalmente una función sigmoidea (función logística u otras) en cada nodo (coordenada), pero hoy en día es más variado, siendo común el rectificador ( rampa , ReLU ).
: activación del -ésimo nodo en la capa .
En la derivación de la retropropagación, se utilizan otras cantidades intermedias introduciéndolas según sea necesario a continuación. Los términos de sesgo no se tratan de manera especial ya que corresponden a un peso con una entrada fija de 1. Para la retropropagación, la función de pérdida específica y las funciones de activación no importan siempre que ellas y sus derivadas puedan evaluarse de manera eficiente. Las funciones de activación tradicionales incluyen sigmoide, tanh y ReLU . Desde entonces también se han propuesto swish [17] mish , [18] y otras funciones de activación.
Para un conjunto de entrenamiento habrá un conjunto de pares de entrada-salida . Para cada par de entrada-salida en el conjunto de entrenamiento, la pérdida del modelo en ese par es el costo de la diferencia entre el resultado previsto y el resultado objetivo :
Tenga en cuenta la distinción: durante la evaluación del modelo, los pesos se fijan mientras que las entradas varían (y la salida objetivo puede ser desconocida) y la red termina con la capa de salida (no incluye la función de pérdida). Durante el entrenamiento del modelo, el par entrada-salida se fija mientras los pesos varían y la red termina con la función de pérdida.
La retropropagación calcula el gradiente para un par fijo de entrada y salida , donde los pesos pueden variar. Cada componente individual del gradiente se puede calcular mediante la regla de la cadena; pero hacer esto por separado para cada peso es ineficiente. La retropropagación calcula eficientemente el gradiente evitando cálculos duplicados y no calculando valores intermedios innecesarios, calculando el gradiente de cada capa (específicamente el gradiente de la entrada ponderada de cada capa, denotado por ) de atrás hacia adelante.
Informalmente, el punto clave es que, dado que la única forma en que un peso afecta la pérdida es a través de su efecto en la siguiente capa, y lo hace linealmente , son los únicos datos que necesita para calcular los gradientes de los pesos en la capa , y luego la capa anterior se puede calcular y repetir de forma recursiva. Esto evita la ineficiencia de dos maneras. En primer lugar, evita la duplicación porque al calcular el gradiente en la capa , no es necesario volver a calcular todas las derivadas en capas posteriores cada vez. En segundo lugar, evita cálculos intermedios innecesarios, porque en cada etapa calcula directamente el gradiente de los pesos con respecto a la producción final (la pérdida), en lugar de calcular innecesariamente las derivadas de los valores de las capas ocultas con respecto a los cambios en los pesos .
La retropropagación se puede expresar para redes de avance simples en términos de multiplicación de matrices o, más generalmente, en términos del gráfico adjunto.
Multiplicación de matrices
Para el caso básico de una red de avance, donde los nodos de cada capa están conectados solo a los nodos de la capa inmediatamente siguiente (sin omitir ninguna capa), y existe una función de pérdida que calcula una pérdida escalar para la salida final, la propagación hacia atrás puede ser entendido simplemente por multiplicación de matrices. [c] Esencialmente, la propagación hacia atrás evalúa la expresión de la derivada de la función de costos como un producto de las derivadas entre cada capa de derecha a izquierda – "hacia atrás" - siendo el gradiente de los pesos entre cada capa una simple modificación de los productos parciales. (el "error propagado hacia atrás").
Dado un par entrada-salida , la pérdida es:
Para calcular esto, se comienza con la entrada y se avanza; denota la entrada ponderada de cada capa oculta como y la salida de la capa oculta como la activación . Para la propagación hacia atrás, la activación y los derivados (evaluados en ) deben almacenarse en caché para su uso durante el paso hacia atrás.
La derivada de la pérdida en términos de los insumos viene dada por la regla de la cadena; tenga en cuenta que cada término es una derivada total , evaluada según el valor de la red (en cada nodo) en la entrada :
donde es una matriz diagonal.
Estos términos son: la derivada de la función de pérdida; [d] las derivadas de las funciones de activación; [e] y las matrices de pesos: [f]
El gradiente es la transpuesta de la derivada de la salida en términos de la entrada, por lo que las matrices se transponen y el orden de multiplicación se invierte, pero las entradas son las mismas:
La retropropagación consiste entonces esencialmente en evaluar esta expresión de derecha a izquierda (equivalentemente, multiplicar la expresión anterior por la derivada de izquierda a derecha), calculando el gradiente en cada capa en el camino; hay un paso adicional, porque el gradiente de los pesos no es solo una subexpresión: hay una multiplicación adicional.
Introduciendo la cantidad auxiliar para los productos parciales (multiplicando de derecha a izquierda), interpretada como el "error en el nivel " y definida como la pendiente de los valores de entrada en el nivel :
Tenga en cuenta que es un vector, de longitud igual al número de nodos en el nivel ; cada componente se interpreta como el "costo atribuible a (el valor de) ese nodo".
El gradiente de los pesos en la capa es entonces:
El factor de se debe a que los pesos entre nivel y nivel afectan proporcionalmente a las entradas (activaciones): las entradas son fijas, los pesos varían.
Se puede calcular fácilmente de forma recursiva, de derecha a izquierda, como:
Por tanto, los gradientes de los pesos se pueden calcular utilizando algunas multiplicaciones de matrices para cada nivel; esto es retropropagación.
En comparación con el cálculo ingenuo hacia adelante (usando el ejemplo):
Hay dos diferencias clave con la retropropagación:
La informática en términos de evita la obvia multiplicación duplicada de capas y más.
Multiplicar a partir de (propagar el error hacia atrás ) significa que cada paso simplemente multiplica un vector ( ) por las matrices de pesos y derivadas de activaciones . Por el contrario, multiplicar hacia adelante, comenzando desde los cambios en una capa anterior, significa que cada multiplicación multiplica una matriz por una matriz . Esto es mucho más costoso y corresponde a rastrear cada camino posible de un cambio en una capa hacia los cambios en la capa (para multiplicar por , con multiplicaciones adicionales para las derivadas de las activaciones), lo que calcula innecesariamente las cantidades intermedias de cómo pesa Los cambios afectan los valores de los nodos ocultos.
Gráfico adjunto
Para gráficos más generales y otras variaciones avanzadas, la retropropagación se puede entender en términos de diferenciación automática , donde la retropropagación es un caso especial de acumulación inversa (o "modo inverso"). [9]
Intuición
Motivación
El objetivo de cualquier algoritmo de aprendizaje supervisado es encontrar una función que asigne mejor un conjunto de entradas a su salida correcta. La motivación para la retropropagación es entrenar una red neuronal de múltiples capas de modo que pueda aprender las representaciones internas apropiadas que le permitan aprender cualquier mapeo arbitrario de entrada a salida. [19]
El aprendizaje como problema de optimización
Para comprender la derivación matemática del algoritmo de retropropagación, primero es útil desarrollar cierta intuición sobre la relación entre la salida real de una neurona y la salida correcta para un ejemplo de entrenamiento particular. Considere una red neuronal simple con dos unidades de entrada, una unidad de salida y sin unidades ocultas, y en la que cada neurona utiliza una salida lineal (a diferencia de la mayoría de los trabajos sobre redes neuronales, en los que el mapeo de entradas a salidas no es lineal) [g] esa es la suma ponderada de su entrada.
Inicialmente, antes del entrenamiento, los pesos se establecerán de forma aleatoria. Luego, la neurona aprende de los ejemplos de entrenamiento , que en este caso consisten en un conjunto de tuplas donde y son las entradas a la red y t es la salida correcta (la salida que la red debería producir dadas esas entradas, cuando ha sido entrenada). La red inicial, dada y , calculará una salida y que probablemente difiera de t (dados pesos aleatorios). Se utiliza una función de pérdida para medir la discrepancia entre la salida objetivo t y la salida calculada y . Para problemas de análisis de regresión se puede utilizar el error cuadrático como función de pérdida, para clasificación se puede utilizar la entropía cruzada categórica .
Como ejemplo, considere un problema de regresión que utiliza el error cuadrático como pérdida:
donde E es la discrepancia o error.
Considere la red en un solo caso de capacitación: . Por lo tanto, la entrada y son 1 y 1 respectivamente y la salida correcta, t es 0. Ahora, si se traza la relación entre la salida de la red y en el eje horizontal y el error E en el eje vertical, el resultado es una parábola. El mínimo de la parábola corresponde a la salida y que minimiza el error E. Para un solo caso de entrenamiento, el mínimo también toca el eje horizontal, lo que significa que el error será cero y la red puede producir una salida y que coincida exactamente con la salida objetivo t . Por lo tanto, el problema de asignar entradas a salidas se puede reducir a un problema de optimización de encontrar una función que produzca el error mínimo.
Sin embargo, la salida de una neurona depende de la suma ponderada de todas sus entradas:
donde y son los pesos en la conexión de las unidades de entrada a la unidad de salida. Por tanto, el error también depende de los pesos entrantes a la neurona, que es en última instancia lo que hay que cambiar en la red para permitir el aprendizaje.
En este ejemplo, al inyectar los datos de entrenamiento , la función de pérdida se convierte en
Entonces, la función de pérdida toma la forma de un cilindro parabólico con su base dirigida a lo largo de . Dado que todos los conjuntos de pesos que satisfacen minimizan la función de pérdida, en este caso se requieren restricciones adicionales para converger a una solución única. Se podrían generar restricciones adicionales estableciendo condiciones específicas para los pesos o inyectando datos de entrenamiento adicionales.
Un algoritmo comúnmente utilizado para encontrar el conjunto de pesos que minimiza el error es el descenso de gradiente . Mediante retropropagación, se calcula la dirección de descenso más pronunciada de la función de pérdida frente a los pesos sinápticos actuales. Luego, los pesos se pueden modificar a lo largo de la dirección de descenso más pronunciada y el error se minimiza de manera eficiente.
Derivación
El método de descenso de gradiente implica calcular la derivada de la función de pérdida con respecto a los pesos de la red. Esto normalmente se hace mediante retropropagación. Suponiendo una neurona de salida, [h] la función de error al cuadrado es
dónde
es la pérdida por la salida y el valor objetivo ,
es el resultado objetivo para una muestra de entrenamiento, y
La entrada a una neurona es la suma ponderada de las salidas de neuronas anteriores. Si la neurona está en la primera capa después de la capa de entrada, las de la capa de entrada son simplemente las entradas a la red. El número de unidades de entrada a la neurona es . La variable denota el peso entre la neurona de la capa anterior y la neurona de la capa actual.
Esta es la razón por la cual la retropropagación requiere que la función de activación sea diferenciable . (Sin embargo, la función de activación ReLU , que no es diferenciable en 0, se ha vuelto bastante popular, por ejemplo, en AlexNet )
El primer factor es sencillo de evaluar si la neurona está en la capa de salida, porque entonces y
Si la mitad del error cuadrado se usa como función de pérdida, podemos reescribirlo como
Sin embargo, si está en una capa interna arbitraria de la red, encontrar la derivada con respecto a es menos obvio.
Considerando como una función donde las entradas son todas las neuronas que reciben información de la neurona ,
y tomando la derivada total respecto de , se obtiene una expresión recursiva para la derivada:
Por lo tanto, la derivada con respecto a se puede calcular si se conocen todas las derivadas con respecto a las salidas de la siguiente capa (las que están más cercanas a la neurona de salida). [Tenga en cuenta que si alguna de las neuronas del conjunto no estuviera conectada a neuron , serían independientes y la derivada parcial correspondiente bajo la suma desaparecería a 0.]
Sustituyendo la ecuación. 2 , ecuación. 3 Ec.4 y Ec. 5 en la ecuación. 1 obtenemos:
con
si es la función logística y el error es el error cuadrático:
Para actualizar el peso mediante el descenso de gradiente, se debe elegir una tasa de aprendizaje . El cambio de peso debe reflejar el impacto de un aumento o disminución de . Si , un aumento en los aumentos ; por el contrario, si , un aumento en disminuye . Lo nuevo se suma al peso anterior, y el producto de la tasa de aprendizaje y el gradiente, multiplicado por garantías, cambia de una manera que siempre disminuye . En otras palabras, en la ecuación inmediatamente siguiente, siempre cambia de tal manera que disminuye:
Descenso de gradiente de segundo orden
Utilizando una matriz de Hesse de derivadas de segundo orden de la función de error, el algoritmo de Levenberg-Marquardt a menudo converge más rápido que el descenso de gradiente de primer orden, especialmente cuando la topología de la función de error es complicada. [20] [21] También puede encontrar soluciones en recuentos de nodos más pequeños para los cuales otros métodos podrían no converger. [21] El hessiano puede aproximarse mediante la matriz de información de Fisher . [22]
Función de pérdida
La función de pérdida es una función que asigna valores de una o más variables a un número real que representa intuitivamente algún "costo" asociado con esos valores. Para la retropropagación, la función de pérdida calcula la diferencia entre la salida de la red y su salida esperada, después de que un ejemplo de entrenamiento se haya propagado a través de la red.
Suposiciones
La expresión matemática de la función de pérdida debe cumplir dos condiciones para que sea posible utilizarla en la propagación hacia atrás. [23] La primera es que se puede escribir como un promedio sobre funciones de error , para ejemplos de entrenamiento individuales . La razón de esta suposición es que el algoritmo de retropropagación calcula el gradiente de la función de error para un único ejemplo de entrenamiento, que debe generalizarse a la función de error general. La segunda suposición es que se puede escribir en función de las salidas de la red neuronal.
Ejemplo de función de pérdida
Sean vectores en .
Seleccione una función de error que mida la diferencia entre dos salidas. La elección estándar es el cuadrado de la distancia euclidiana entre los vectores y :
Limitaciones
No se garantiza que el descenso de gradiente con retropropagación encuentre el mínimo global de la función de error, sino solo un mínimo local; Además, tiene problemas para cruzar mesetas en el panorama de funciones de error. Durante mucho tiempo se pensó que este problema, causado por la no convexidad de las funciones de error en las redes neuronales, era un inconveniente importante, pero Yann LeCun et al. argumentan que en muchos problemas prácticos no lo es. [24]
El aprendizaje de retropropagación no requiere la normalización de los vectores de entrada; sin embargo, la normalización podría mejorar el rendimiento. [25]
La retropropagación requiere que las derivadas de las funciones de activación se conozcan en el momento del diseño de la red.
Historia
Precursores
La retropropagación se ha derivado repetidamente, ya que es esencialmente una aplicación eficiente de la regla de la cadena (escrito por primera vez por Gottfried Wilhelm Leibniz en 1676 [1] [26] ) a las redes neuronales.
La terminología "corrección de errores de retropropagación" fue introducida en 1962 por Frank Rosenblatt , pero no sabía cómo implementarla. [27] En cualquier caso, solo estudió neuronas cuyas salidas eran niveles discretos, que solo tenían derivadas cero, lo que hacía imposible la retropropagación.
Los precursores de la retropropagación aparecieron en la teoría del control óptimo desde la década de 1950. Yann LeCun et al acreditan el trabajo de Pontryagin y otros en la década de 1950, en la teoría del control óptimo, especialmente el método de estado adjunto , por ser una versión de tiempo continuo de la retropropagación. [28] Hecht-Nielsen [29] acredita el algoritmo de Robbins-Monro (1951) y el Control óptimo aplicado de Arthur Bryson y Yu-Chi Ho (1969) como presagios de retropropagación. Otros precursores fueron Henry J. Kelley 1960, [11] y Arthur E. Bryson (1961). [12] En 1962, Stuart Dreyfus publicó una derivación más simple basada únicamente en la regla de la cadena . [30] [31] [32] En 1973, adaptó los parámetros de los controladores en proporción a los gradientes de error. [33] A diferencia de la retropropagación moderna, estos precursores utilizaron cálculos matriciales jacobianos estándar de una etapa a la anterior, sin abordar enlaces directos entre varias etapas ni posibles ganancias adicionales de eficiencia debido a la escasez de la red. [2]
El algoritmo de aprendizaje de ADALINE (1960) era un descenso de gradiente con una pérdida de error al cuadrado para una sola capa. El primer perceptrón multicapa (MLP) con más de una capa entrenada mediante descenso de gradiente estocástico [14] fue publicado en 1967 por Shun'ichi Amari . [34] [2] El MLP tenía 5 capas, con 2 capas que se podían aprender, y aprendía a clasificar patrones que no eran separables linealmente. [2]
En 1982, Paul Werbos aplicó la retropropagación a los MLP de la forma que se ha convertido en estándar. [35] [36] Werbos describió cómo desarrolló la retropropagación en una entrevista. En 1971, durante su trabajo de doctorado, desarrolló la retropropagación para matematizar el "flujo de energía psíquica" de Freud . Enfrentó repetidas dificultades para publicar el trabajo, y sólo lo logró en 1981. [37]
Alrededor de 1982, [37] : 376 David E. Rumelhart desarrolló de forma independiente [38] : 252 la retropropagación y enseñó el algoritmo a otros en su círculo de investigación. No citó trabajos anteriores porque los desconocía. Publicó el algoritmo primero en un artículo de 1985, luego en un artículo de Nature de 1986 (un análisis experimental de la técnica). [16] Estos artículos fueron muy citados, contribuyeron a la popularización de la retropropagación y coincidieron con el resurgimiento del interés de la investigación en las redes neuronales durante la década de 1980. [19] [39] [40]
En 1985, el método también fue descrito por David Parker. [41] [42] Yann LeCun propuso una forma alternativa de retropropagación para redes neuronales en su tesis doctoral en 1987. [43]
El descenso del gradiente tardó una cantidad considerable de tiempo en alcanzar la aceptación. Algunas de las primeras objeciones fueron: no había garantías de que el descenso del gradiente pudiera alcanzar un mínimo global, sólo un mínimo local; Los fisiólogos "sabían" que las neuronas emitían señales discretas (0/1), no continuas, y con señales discretas, no hay gradiente que tomar. Vea la entrevista con Geoffrey Hinton . [37]
Éxitos tempranos
A esta aceptación contribuyeron varias aplicaciones en el entrenamiento de redes neuronales mediante retropropagación, que en ocasiones alcanzaron popularidad fuera de los círculos de investigación.
En 1987, NETtalk aprendió a convertir texto en inglés en pronunciación. Sejnowski intentó entrenarlo tanto con retropropagación como con la máquina de Boltzmann, pero encontró que la retropropagación era significativamente más rápida, por lo que la usó para la NETtalk final. [37] : 324 El programa NETtalk se convirtió en un éxito popular, apareciendo en el programa Today . [44]
En 1989, Dean A. Pomerleau publicó ALVINN, una red neuronal entrenada para conducir de forma autónoma mediante retropropagación. [45]
LeNet se publicó en 1989 para reconocer códigos postales escritos a mano.
En 1992, TD-Gammon alcanzó el nivel más alto de juego humano en backgammon. Se trataba de un agente de aprendizaje por refuerzo con una red neuronal de dos capas, entrenada por retropropagación. [46]
En 1993, Eric Wan ganó un concurso internacional de reconocimiento de patrones mediante retropropagación. [7] [47]
Después de la retropropagación
Durante la década de 2000 cayó en desgracia [ cita necesaria ] , pero regresó en la década de 2010, beneficiándose de sistemas informáticos potentes y baratos basados en GPU . Esto ha sido especialmente cierto en la investigación sobre reconocimiento de voz , visión artificial , procesamiento del lenguaje natural y aprendizaje de estructuras del lenguaje (en las que se ha utilizado para explicar una variedad de fenómenos relacionados con el aprendizaje de la primera [48] y la segunda lengua. [49] ). [50]
Se ha sugerido la retropropagación de errores para explicar los componentes ERP del cerebro humano como el N400 y el P600 . [51]
^ Úselo para la función de pérdida para permitir su uso para el número de capas
^ Esto sigue a Nielsen (2015), y significa (izquierda) que la multiplicación por la matriz corresponde a convertir los valores de salida de la capa en valores de entrada de la capa : las columnas corresponden a las coordenadas de entrada, las filas corresponden a las coordenadas de salida.
^ Esta sección sigue y resume en gran medida a Nielsen (2015).
^ La derivada de la función de pérdida es un covector , ya que la función de pérdida es una función de valor escalar de varias variables.
^ La función de activación se aplica a cada nodo por separado, por lo que la derivada es solo la matriz diagonal de la derivada en cada nodo. Esto a menudo se representa como el producto de Hadamard con el vector de derivadas, denotado por , que es matemáticamente idéntico pero coincide mejor con la representación interna de las derivadas como un vector, en lugar de una matriz diagonal.
^ Dado que la multiplicación de matrices es lineal, la derivada de multiplicar por una matriz es solo la matriz: .
^ Se puede observar que las redes neuronales multicapa utilizan funciones de activación no lineales, por lo que un ejemplo con neuronas lineales parece oscuro. Sin embargo, aunque la superficie de error de las redes multicapa es mucho más complicada, localmente pueden aproximarse mediante un paraboloide. Por lo tanto, las neuronas lineales se utilizan para simplificar y facilitar la comprensión.
^ Puede haber varias neuronas de salida, en cuyo caso el error es la norma al cuadrado del vector de diferencia.
Referencias
^ ab Leibniz, Gottfried Wilhelm Freiherr von (1920). Los primeros manuscritos matemáticos de Leibniz: traducidos de los textos latinos publicados por Carl Immanuel Gerhardt con notas críticas e históricas (Leibniz publicó la regla de la cadena en una memoria de 1676). Compañía editorial de corte abierta. ISBN 9780598818461.
^ abcdef Schmidhuber, Jürgen (2022). "Historia comentada de la IA moderna y el aprendizaje profundo". arXiv : 2212.11279 [cs.NE].
^ ab Linnainmaa, Seppo (1970). La representación del error de redondeo acumulativo de un algoritmo como una expansión de Taylor de los errores de redondeo locales (Masters) (en finlandés). Universidad de Helsinki. págs. 6–7.
^ ab Linnainmaa, Seppo (1976). "Expansión de Taylor del error de redondeo acumulado". BIT Matemáticas Numéricas . 16 (2): 146–160. doi :10.1007/bf01931367. S2CID 122357351.
^ ab Griewank, Andreas (2012). "¿Quién inventó el modo inverso de diferenciación?". Historias de optimización . Documenta Matematica, Volumen Extra ISMP. págs. 389–400. S2CID 15568746.
^ Griewank, Andreas; Walther, Andrea (2008). Evaluación de derivados: principios y técnicas de diferenciación algorítmica, segunda edición. SIAM. ISBN978-0-89871-776-1.
^ ab Schmidhuber, Jürgen (2015). "Aprendizaje profundo en redes neuronales: una descripción general". Redes neuronales . 61 : 85-117. arXiv : 1404.7828 . doi :10.1016/j.neunet.2014.09.003. PMID 25462637. S2CID 11715509.
^ Schmidhuber, Jürgen (2015). "Aprendizaje profundo". Scholarpedia . 10 (11): 32832. Código bibliográfico : 2015SchpJ..1032832S. doi : 10.4249/scholarpedia.32832 .
^ ab Goodfellow, Bengio & Courville (2016, p. 217-218), "El algoritmo de retropropagación descrito aquí es solo un enfoque para la diferenciación automática. Es un caso especial de una clase más amplia de técnicas llamadas acumulación en modo inverso ".
^ Rosenblatt, Frank (1962). Principios de neurodinámica: perceptrones y teoría de los mecanismos cerebrales Laboratorio Aeronáutico de Cornell. Reporte no. Informe VG-1196-G-8 (Laboratorio Aeronáutico de Cornell) . Espartano. págs. Página XIII Índice de contenidos, página 292 "13.3 Procedimientos de corrección de errores de retropropagación", página 301 "figura 39 EXPERIMENTOS DE CORRECCIÓN DE ERRORES DE RETROPAGACIÓN".
^ abc Kelley, Henry J. (1960). "Teoría del gradiente de rutas de vuelo óptimas". Diario ARS . 30 (10): 947–954. doi : 10.2514/8.5282.
^ ab Bryson, Arthur E. (1962). "Un método de gradiente para optimizar procesos de asignación de varias etapas". Actas de la Universidad de Harvard. Simposio sobre computadoras digitales y sus aplicaciones, 3 a 6 de abril de 1961 . Cambridge: Prensa de la Universidad de Harvard. OCLC 498866871.
^ Goodfellow, Bengio y Courville 2016, pág. 214, "Esta estrategia de llenado de tablas a veces se denomina programación dinámica ".
^ ab Robbins, H .; Monro, S. (1951). "Un método de aproximación estocástica". Los anales de la estadística matemática . 22 (3): 400. doi : 10.1214/aoms/1177729586 .
^ Goodfellow, Bengio y Courville 2016, pág. 200, "El término retropropagación a menudo se malinterpreta en el sentido de que significa todo el algoritmo de aprendizaje para redes neuronales multicapa. La retropropagación se refiere únicamente al método para calcular el gradiente, mientras que otros algoritmos, como el descenso de gradiente estocástico, se utilizan para realizar el aprendizaje usando este degradado."
^ ab Rumelhart; Hinton; Williams (1986). "Aprendizaje de representaciones mediante errores de retropropagación" (PDF) . Naturaleza . 323 (6088): 533–536. Código Bib :1986Natur.323..533R. doi :10.1038/323533a0. S2CID 205001834.
^ Ramachandran, Prajit; Zoph, Barret; Le, Quoc V. (27 de octubre de 2017). "Búsqueda de funciones de activación". arXiv : 1710.05941 [cs.NE].
^ Misra, Diganta (23 de agosto de 2019). "Mish: una función de activación no monótona autoregulada". arXiv : 1908.08681 [cs.LG].
^ Bronceado, Hong Hui; Lim, rey Han (2019). "Revisión de técnicas de optimización de segundo orden en retropropagación de redes neuronales artificiales". Serie de conferencias IOP: Ciencia e ingeniería de materiales . 495 (1): 012003. Código bibliográfico : 2019MS&E..495a2003T. doi : 10.1088/1757-899X/495/1/012003 . S2CID 208124487.
^ ab Wiliamowski, Bogdan; Yu, Hao (junio de 2010). "Computación mejorada para la formación Levenberg-Marquardt" (PDF) . Transacciones IEEE sobre redes neuronales y sistemas de aprendizaje . 21 (6).
^ Martens, James (agosto de 2020). "Nuevos conocimientos y perspectivas sobre el método del gradiente natural". Revista de investigación sobre aprendizaje automático (21). arXiv : 1412.1193 .
^ Nielsen (2015), "¿Qué suposiciones debemos hacer sobre nuestra función de costos... para que se pueda aplicar la retropropagación? La primera suposición que necesitamos es que la función de costos se puede escribir como un promedio... ... sobre funciones de costos... para ejemplos de entrenamiento individuales... La segunda suposición que hacemos sobre el costo es que se puede escribir como una función de las salidas de la red neuronal..."
^ Buckland, Matt; Collins, Marcos (2002). Técnicas de IA para la programación de juegos . Boston: Premier Press. ISBN1-931841-08-X.
^ Rodríguez, Omar Hernández; López Fernández, Jorge M. (2010). "Una reflexión semiótica sobre la didáctica de la regla de la cadena". El entusiasta de las matemáticas . 7 (2): 321–332. doi : 10.54870/1551-3440.1191 . S2CID 29739148 . Consultado el 4 de agosto de 2019 .
^ Rosenblatt, Frank (1962). Principios de neurodinámica . Espartano, Nueva York. págs. 287–298.
^ LeCun, Yann y col. "Un marco teórico para la retropropagación". Actas de la escuela de verano de modelos conexionistas de 1988 . vol. 1. 1988.
^ Hecht-Nielsen, Robert (1990). Neurocomputación. Archivo de Internet. Lectura, Massachusetts: Pub Addison-Wesley. Co. págs. 124-125. ISBN978-0-201-09355-1.
^ Dreyfus, Estuardo (1962). "La solución numérica de problemas variacionales". Revista de Análisis y Aplicaciones Matemáticas . 5 (1): 30–45. doi : 10.1016/0022-247x(62)90004-5 .
^ Dreyfus, Stuart E. (1990). "Redes neuronales artificiales, retropropagación y procedimiento de gradiente de Kelley-Bryson". Revista de orientación, control y dinámica . 13 (5): 926–928. Código bibliográfico : 1990JGCD...13..926D. doi :10.2514/3.25422.
^ Mizutani, Eiji; Dreyfus, Estuardo; Nishio, Kenichi (julio de 2000). "Sobre la derivación de la retropropagación de MLP a partir de la fórmula de gradiente de control óptimo de Kelley-Bryson y su aplicación" (PDF) . Actas de la Conferencia Conjunta Internacional IEEE sobre Redes Neuronales.
^ Dreyfus, Estuardo (1973). "La solución computacional de problemas de control óptimo con desfase temporal". Transacciones IEEE sobre control automático . 18 (4): 383–385. doi :10.1109/tac.1973.1100330.
^ Amari, Shun'ichi (1967). "Una teoría del clasificador de patrones adaptativos". Transacciones IEEE . CE (16): 279–307.
^ Werbos, Paul (1982). «Aplicaciones de los avances en análisis de sensibilidad no lineal» (PDF) . Modelado y optimización de sistemas . Saltador. págs. 762–770. Archivado (PDF) desde el original el 14 de abril de 2016 . Consultado el 2 de julio de 2017 .
^ Werbos, Paul J. (1994). Las raíces de la retropropagación: de los derivados ordenados a las redes neuronales y la previsión política . Nueva York: John Wiley & Sons. ISBN0-471-59897-6.
^ abcd Anderson, James A.; Rosenfeld, Edward, eds. (2000). Redes parlantes: una historia oral de las redes neuronales. La prensa del MIT. doi : 10.7551/mitpress/6626.003.0016. ISBN978-0-262-26715-1.
^ Olazarán Rodríguez, José Miguel. Una sociología histórica de la investigación de redes neuronales . Tesis Doctoral. Universidad de Edimburgo, 1991.
^ Alpaydin, Ethem (2010). Introducción al aprendizaje automático. Prensa del MIT. ISBN978-0-262-01243-0.
^ Parker, DB (1985). Lógica de aprendizaje: fundición de la corteza del cerebro humano en silicio. Centro de Investigación Computacional en Economía y Ciencias de la Gestión (Reporte). Cambridge MA: Instituto de Tecnología de Massachusetts. Informe Técnico TR-47.
^ Hertz, John (1991). Introducción a la teoría de la computación neuronal . Krogh, Anders., Palmer, Richard G. Redwood City, California: Addison-Wesley. pag. 8.ISBN0-201-50395-6. OCLC 21522159.
^ Le Cun, Yann (1987). Modèles connexionnistes de l'apprentissage (Tesis de doctorado de Estado). París, Francia: Université Pierre et Marie Curie.
^ Sejnowski, Terrence J. (2018). La revolución del aprendizaje profundo . Cambridge, Massachusetts Londres, Inglaterra: The MIT Press. ISBN978-0-262-03803-4.
^ Pomerleau, Dean A. (1988). "ALVINN: un vehículo terrestre autónomo en una red neuronal". Avances en los sistemas de procesamiento de información neuronal . Morgan-Kaufmann. 1 .
^ Sutton, Richard S.; Barto, Andrés G. (2018). "11.1 TD-Gammon". Aprendizaje por refuerzo: una introducción (2ª ed.). Cambridge, MA: MIT Press.
^ Wan, Eric A. (1994). "Predicción de series temporales mediante el uso de una red conexionista con líneas de retardo internas". En Weigend, Andreas S .; Gershenfeld, Neil A. (eds.). Predicción de series temporales: pronosticar el futuro y comprender el pasado . Actas del Taller de investigación avanzada de la OTAN sobre análisis comparativo de series temporales. vol. 15. Lectura: Addison-Wesley. págs. 195-217. ISBN0-201-62601-2. S2CID 12652643.
^ Chang, Franklin; Dell, Gary S.; Bock, Kathryn (2006). "Convertirse en sintáctico". Revisión psicológica . 113 (2): 234–272. doi :10.1037/0033-295x.113.2.234. PMID 16637761.
^ Janciauskas, Marius; Chang, Franklin (2018). "Variación dependiente de la edad y los aportes en el aprendizaje de una segunda lengua: una cuenta conexionista". Ciencia cognitiva . 42 (Suplemento Suplemento 2): 519–554. doi : 10.1111/cogs.12519. PMC 6001481 . PMID 28744901.
^ "Decodificar el poder de la retropropagación: una inmersión profunda en técnicas avanzadas de redes neuronales". janbasktraining.com .
^ Fitz, Hartmut; Chang, Franklin (2019). "Los ERP de idiomas reflejan el aprendizaje a través de la propagación de errores de predicción". Psicología cognitiva . 111 : 15–52. doi : 10.1016/j.cogpsych.2019.03.002. hdl : 21.11116/0000-0003-474D-8 . PMID 30921626. S2CID 85501792.
^ "Los chips fotónicos frenan el apetito energético del entrenamiento de IA - IEEE Spectrum". espectro.ieee.org . Consultado el 25 de mayo de 2023 .
Otras lecturas
Buen compañero, Ian ; Bengio, Yoshua ; Courville, Aarón (2016). "6.5 Algoritmos de retropropagación y otros algoritmos de diferenciación". Aprendizaje profundo. Prensa del MIT. págs. 200–220. ISBN 9780262035613.
Nielsen, Michael A. (2015). "Cómo funciona el algoritmo de retropropagación". Redes neuronales y aprendizaje profundo. Prensa de determinación.
McCaffrey, James (octubre de 2012). "Retropropagación de redes neuronales para programadores". Revista MSDN .
Rojas, Raúl (1996). "El algoritmo de retropropagación" (PDF) . Redes neuronales: una introducción sistemática . Berlín: Springer. ISBN 3-540-60505-3.
enlaces externos
Tutorial de redes neuronales de retropropagación en la Wikiversidad
Bernacki, Mariusz; Włodarczyk, Przemysław (2004). "Principios del entrenamiento de redes neuronales multicapa mediante retropropagación".
Karpatía, Andrej (2016). "Conferencia 4: Retropropagación, redes neuronales 1". CS231n . Universidad Stanford. Archivado desde el original el 12 de diciembre de 2021, a través de YouTube .
"¿Qué está haciendo realmente la retropropagación?". 3Azul1Marrón . 3 de noviembre de 2017. Archivado desde el original el 12 de diciembre de 2021, a través de YouTube .
Putta, Sudeep Raja (2022). "Otra derivación más de la retropropagación en forma matricial".