En el aprendizaje automático , la retropropagación es un método de cálculo de gradiente que se utiliza comúnmente para entrenar una red neuronal en el cálculo de actualizaciones de parámetros.
Se trata de una aplicación eficiente de la regla de la cadena a las redes neuronales. La retropropagación calcula de forma eficiente el gradiente de la función de pérdida con respecto a los pesos de la red para un único ejemplo de entrada-salida. Para ello, propaga las derivadas hacia atrás, capa por capa, desde la capa de salida hasta la de entrada, evitando así cálculos redundantes de la regla de la cadena.
En rigor, el término retropropagación se refiere únicamente a un algoritmo para calcular eficientemente el gradiente, no a cómo se utiliza dicho gradiente; sin embargo, a menudo se emplea de forma imprecisa para referirse a todo el algoritmo de aprendizaje. Esto incluye modificar los parámetros del modelo en la dirección negativa del gradiente, como en el descenso de gradiente estocástico , o como paso intermedio en un optimizador más complejo, como la Estimación Adaptativa de Momentos . [ 1 ]
La retropropagación tuvo múltiples descubrimientos y descubrimientos parciales, con una historia y terminología complejas (véase § Historia ). Otros nombres para la técnica incluyen "modo inverso de diferenciación automática " o " acumulación inversa ". [ 2 ]
Descripción general
La retropropagación calcula el gradiente en el espacio de pesos de una red neuronal de alimentación directa, con respecto a una función de pérdida . Denotemos:
- : entrada (vector de características)
- : salida objetivo
- : función de pérdida o "función de coste" [ a ]
- Para la clasificación, se suele utilizar la entropía cruzada (XC, pérdida logarítmica ), mientras que para la regresión se suele utilizar la pérdida de error cuadrático (SEL).
- : el número de capas
- : los pesos entre capasy, dóndees el peso entre el-ésimo nodo en la capay el-ésimo nodo en la capa[ b ]
- : funciones de activación en la capa
- 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 tradicionalmente se utilizaba una función sigmoide (función logística u otras) en cada nodo (coordenada), pero hoy en día es más variada, siendo comunes las funciones rectificadoras ( rampa , ReLU ).
- : activación de la-ésimo nodo en la capa.
En la derivación de la retropropagación, se utilizan otras cantidades intermedias introduciéndolas según sea necesario más adelante. Los términos de sesgo no se tratan de forma especial, ya que corresponden a un peso con una entrada fija de 1. Para la retropropagación, la función de pérdida y las funciones de activación específicas no importan siempre que estas y sus derivadas puedan evaluarse de manera eficiente. Las funciones de activación tradicionales incluyen sigmoide , tanh , ReLU , Swish , [ 3 ] Mish , [ 4 ] y muchas otras.
La red en su conjunto es una combinación de composición de funciones y multiplicación de matrices :
Para un conjunto de entrenamiento habrá un conjunto de pares de entrada-salida,Para cada par entrada-salidaEn el conjunto de entrenamiento, la pérdida del modelo en ese par es el costo de la diferencia entre la salida predicha.y el resultado objetivo:
Nótese la diferencia: durante la evaluación del modelo, los pesos son fijos mientras que las entradas varían (y la salida objetivo puede ser desconocida), y la red finaliza con la capa de salida (no incluye la función de pérdida). Durante el entrenamiento del modelo, el par entrada-salida es fijo mientras que los pesos varían, y la red finaliza con la función de pérdida.
La retropropagación calcula el gradiente para un par fijo de entrada-salida.donde los pesospuede variar. Cada componente individual del gradiente,se puede calcular mediante la regla de la cadena; pero hacerlo 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.
De manera informal, el punto clave es que dado que la única forma en que un peso enLa pérdida afecta a través de su efecto en la siguiente capa, y lo hace de forma lineal .son los únicos datos que necesitas para calcular los gradientes de los pesos en la capay luego se pueden calcular los gradientes de los pesos de la capa anterior mediantey se repite recursivamente. Esto evita la ineficiencia de dos maneras. Primero, evita la duplicación porque al calcular el gradiente en la capaNo es necesario recalcular todas las derivadas en capas posteriores.En segundo lugar, evita cálculos intermedios innecesarios, ya que en cada etapa calcula directamente el gradiente de los pesos con respecto a la salida 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 simples de alimentación directa en términos de multiplicación de matrices , o más generalmente en términos del grafo adjunto .
multiplicación de matrices
Para el caso básico de una red de alimentación directa, donde los nodos de cada capa están conectados solo a los nodos de la siguiente capa inmediata (sin saltarse ninguna capa), y hay una función de pérdida que calcula una pérdida escalar para la salida final, la retropropagación se puede entender simplemente como una multiplicación de matrices. [ c ] Esencialmente, la retropropagación evalúa la expresión para la derivada de la función de costo como un producto de 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 de entrada-salidaLa pérdida es:
Para calcular esto, se comienza con la entraday avanza; denotemos la entrada ponderada de cada capa oculta comoy la salida de la capa ocultacomo la activación. Para la retropropagación, la activaciónasí como los derivados(evaluado en) debe almacenarse en caché para su uso durante la pasada hacia atrás.
La derivada de la pérdida en términos de las entradas viene dada por la regla de la cadena; tenga en cuenta que cada término es una derivada total , evaluada en el valor de la red (en cada nodo) en la entrada.:
dóndees 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 gradientees 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 la multiplicación se invierte, pero las entradas son las mismas:
La retropropagación consiste esencialmente en evaluar esta expresión de derecha a izquierda (o, equivalentemente, multiplicar la expresión anterior por la derivada de izquierda a derecha), calculando el gradiente en cada capa del proceso; hay un paso adicional, porque el gradiente de los pesos no es solo una subexpresión: hay una multiplicación extra.
Introduciendo la cantidad auxiliarpara los productos parciales (multiplicando de derecha a izquierda), interpretado como el "error en el nivel" y definido como el gradiente de los valores de entrada en el nivel:
Tenga en cuenta quees 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 capaes entonces:
El factor dees porque los pesosentre nivelynivel de afectaciónproporcionalmente a las entradas (activaciones): las entradas son fijas, los pesos varían.
Else puede calcular fácilmente de forma recursiva, yendo de derecha a izquierda, como:
De este modo, los gradientes de los pesos se pueden calcular utilizando unas pocas multiplicaciones de matrices para cada nivel; esto es la retropropagación.
En comparación con el cálculo ingenuo hacia adelante (utilizando el(a modo de ejemplo):
Existen dos diferencias clave con la retropropagación:
- Computaciónen términos deevita la obvia duplicación de capasy más allá.
- Multiplicando a partir de– propagar el error hacia atrás – significa que cada paso simplemente multiplica un vector () por las matrices de pesosy derivados de activacionesPor 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 posible ruta de un cambio en una capa.adelante a los cambios en la capa(para multiplicarpor, con multiplicaciones adicionales para las derivadas de las activaciones), lo que calcula innecesariamente las cantidades intermedias de cómo los cambios de peso afectan los valores de los nodos ocultos.
Grafo adjunto
Para gráficos más generales y otras variaciones avanzadas, la retropropagación puede entenderse en términos de diferenciación automática , donde la retropropagación es un caso especial de acumulación inversa (o "modo inverso"). [ 2 ]
Intuición
Motivación
El objetivo de cualquier algoritmo de aprendizaje supervisado es encontrar una función que mapee de la mejor manera un conjunto de entradas a su salida correcta. La motivación para la retropropagación es entrenar una red neuronal multicapa de tal manera que pueda aprender las representaciones internas apropiadas que le permitan aprender cualquier mapeo arbitrario de entrada a salida. [ 5 ]
El aprendizaje como problema de optimización
Para comprender la derivación matemática del algoritmo de retropropagación, es útil desarrollar primero cierta intuición sobre la relación entre la salida real de una neurona y la salida correcta para un ejemplo de entrenamiento particular. Consideremos una red neuronal simple con dos unidades de entrada, una unidad de salida y ninguna unidad oculta, 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 ] que es la suma ponderada de su entrada.

Inicialmente, antes del entrenamiento, los pesos se establecerán aleatoriamente. Luego, la neurona aprende de los ejemplos de entrenamiento , que en este caso consisten en un conjunto de tuplas.dóndeyson las entradas a la red y t es la salida correcta (la salida que la red debería producir dadas esas entradas, una vez entrenada). La red inicial, daday, calculará una salida y que probablemente difiera de t (dados pesos aleatorios). Una función de pérdidaSe utiliza para medir la discrepancia entre la salida objetivo t y la salida calculada y . Para problemas de análisis de regresión, el error cuadrático puede utilizarse como función de pérdida; para clasificación , se puede utilizar la entropía cruzada categórica .
Como ejemplo, consideremos un problema de regresión que utiliza el error cuadrático como función de pérdida:
donde E es la discrepancia o error.
Consideremos la red en un único caso de entrenamiento:. Por lo tanto, la entradayson 1 y 1 respectivamente y la salida correcta, t es 0. Ahora, si se grafica 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 coincide exactamente con la salida objetivo t . Por lo tanto, el problema de mapear 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:
dóndeyson los pesos en la conexión desde las unidades de entrada a la unidad de salida. Por lo tanto, el error también depende de los pesos que llegan a la neurona, que es, en última instancia, lo que debe modificarse 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
Luego, la función de pérdidatoma la forma de un cilindro parabólico con su base dirigida a lo largo. Dado que todos los conjuntos de pesos que satisfacenMinimizar la función de pérdida; en este caso, se requieren restricciones adicionales para converger a una solución única. Dichas restricciones adicionales podrían generarse estableciendo condiciones específicas para los pesos o inyectando datos de entrenamiento adicionales.
One commonly used algorithm to find the set of weights that minimizes the error is gradient descent. By backpropagation, the steepest descent direction is calculated of the loss function versus the present synaptic weights. Then, the weights can be modified along the steepest descent direction, and the error is minimized in an efficient way.
Derivation
The gradient descent method involves calculating the derivative of the loss function with respect to the weights of the network. This is normally done using backpropagation. Assuming one output neuron,[h] the squared error function is
where
- is the loss for the output and target value ,
- is the target output for a training sample, and
- is the actual output of the output neuron.
In this section, the order of the weight indexes are reversed relative to the prior section: is weight from the th to the th unit. [i] For each neuron , its output is defined as
where the activation function is non-linear and differentiable over the activation region (the ReLU is not differentiable at one point). A historically used activation function is the logistic function:
which has a convenient derivative of:
The input to a neuron is the weighted sum of outputs of previous neurons. If the neuron is in the first layer after the input layer, the of the input layer are simply the inputs to the network. The number of input units to the neuron is . The variable denotes the weight between neuron of the previous layer and neuron of the current layer.
Finding the derivative of the error

Calculating the partial derivative of the error with respect to a weight is done using the chain rule twice:
In the last factor of the right-hand side of the above, only one term in the sum depends on , so that
If the neuron is in the first layer after the input layer, is just .
The derivative of the output of neuron with respect to its input is simply the partial derivative of the activation function:
which for the logistic activation function
This is the reason why backpropagation requires that the activation function be differentiable. (Nevertheless, the ReLU activation function, which is non-differentiable at 0, has become quite popular, e.g. in AlexNet)
The first factor is straightforward to evaluate if the neuron is in the output layer, because then and
If half of the square error is used as loss function we can rewrite it as
However, if se encuentra en una capa interna arbitraria de la red, encontrando la derivadacon respecto aes menos obvio.
En vista decomo una función cuyas entradas son todas neuronasrecibiendo información de la neurona,
y tomando la derivada total con respecto aSe obtiene una expresión recursiva para la derivada:
Por lo tanto, la derivada con respecto ase puede calcular si todas las derivadas con respecto a las salidasde la siguiente capa – las más cercanas a la neurona de salida – son conocidas. [Nota: si alguna de las neuronas en el conjuntono estaban conectados a la neurona, serían independientes dey la derivada parcial correspondiente bajo la suma se anularía a 0.]
Sustituyendo las ecuaciones 2 , 3, 4 y 5 en la ecuación 1 obtenemos:
con
sies la función logística y el error es el error cuadrático:
Para actualizar el pesoAl usar el descenso de gradiente, uno debe elegir una tasa de aprendizaje ,. El cambio de peso debe reflejar el impacto ende un aumento o disminución en. Si, un aumento enaumentos; por el contrario, si, un aumento endisminuye. El nuevose suma al peso anterior, y el producto de la tasa de aprendizaje y el gradiente, multiplicado porgarantiza quecambia de una manera que siempre disminuyeEn otras palabras, en la ecuación inmediatamente inferior,siempre cambiade tal manera quese ha reducido:
Descenso de gradiente de segundo orden
Utilizando una matriz hessiana de derivadas de segundo orden de la función de error, el algoritmo de Levenberg-Marquardt suele converger más rápido que el descenso de gradiente de primer orden, especialmente cuando la topología de la función de error es compleja. [ 6 ] [ 7 ] También puede encontrar soluciones con un número menor de nodos para los que otros métodos podrían no converger. [ 7 ] La matriz hessiana puede aproximarse mediante la matriz de información de Fisher . [ 8 ]
Como ejemplo, consideremos una red de alimentación directa simple. En el-ésima capa, tenemosdóndeson las preactivaciones,son las activaciones, yes la matriz de pesos. Dada una función de pérdida, la retropropagación de primer orden establece quey la retropropagación de segundo orden establece quedóndees el símbolo delta de Dirac .
Las derivadas de orden arbitrario en grafos computacionales arbitrarios se pueden calcular mediante retropropagación, pero con expresiones más complejas para órdenes superiores.
Función de pérdida
La función de pérdida asigna valores a una o más variables, convirtiéndolos en un número real que representa intuitivamente un "costo" asociado a dichos valores. En la retropropagación, la función de pérdida calcula la diferencia entre la salida de la red y su salida esperada, una vez que un ejemplo de entrenamiento se ha propagado a través de la red.
Supuestos
La expresión matemática de la función de pérdida debe cumplir dos condiciones para que pueda utilizarse en la retropropagación. [ 9 ] La primera es que se puede escribir como un promediosobre funciones de error, paraejemplos de capacitación individual,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, el cual debe generalizarse a la función de error global. La segunda suposición es que puede expresarse como una función de las salidas de la red neuronal.
Ejemplo de función de pérdida
Dejarser vectores en.
Seleccione una función de errormedir la diferencia entre dos salidas. La opción estándar es el cuadrado de la distancia euclidiana entre los vectores.y:La función de error sobreLos ejemplos de entrenamiento se pueden escribir entonces como un promedio de las pérdidas en los ejemplos individuales:
Limitaciones

- El descenso de gradiente con retropropagación no garantiza encontrar el mínimo global de la función de error, sino solo un mínimo local; además, tiene dificultades para superar las mesetas en el paisaje de la función de error. Este problema, causado por la no convexidad de las funciones de error en las redes neuronales, se consideró durante mucho tiempo una desventaja importante, pero Yann LeCun et al. argumentan que, en muchos problemas prácticos, no lo es. [ 10 ]
- El aprendizaje por retropropagación no requiere la normalización de los vectores de entrada; sin embargo, la normalización podría mejorar el rendimiento. [ 11 ]
- La retropropagación requiere que se conozcan las derivadas de las funciones de activación 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 (escrita por primera vez por Gottfried Wilhelm Leibniz en 1676) [ 12 ] [ 13 ] a las redes neuronales.
La terminología "corrección de errores por retropropagación" fue introducida en 1962 por Frank Rosenblatt , pero él no sabía cómo implementarla. [ 14 ] 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 de control óptimo desde la década de 1950. Yann LeCun et al. atribuyen el trabajo de Pontryagin y otros en la década de 1950 en la teoría de control óptimo, especialmente el método del estado adjunto , por ser una versión de tiempo continuo de la retropropagación . [ 15 ] Hecht-Nielsen [ 16 ] atribuye el algoritmo de Robbins-Monro (1951) [ 17 ] y el Control Óptimo Aplicado (1969) de Arthur Bryson y Yu-Chi Ho como presagios de la retropropagación. Otros precursores fueron Henry J. Kelley 1960, [ 18 ] y Arthur E. Bryson (1961). [ 19 ] En 1962, Stuart Dreyfus publicó una derivación más simple basada solo en la regla de la cadena . [ 20 ] [ 21 ] [ 22 ] En 1973, adaptó los parámetros de los controladores en proporción a los gradientes de error. [ 23 ] A diferencia de la retropropagación moderna, estos precursores utilizaban cálculos estándar de la matriz jacobiana de una etapa a la anterior, sin abordar los enlaces directos entre varias etapas ni las posibles ganancias adicionales de eficiencia debidas a la escasez de la red. [ 24 ]
El algoritmo de aprendizaje ADALINE (1960) era un descenso de gradiente con una función de pérdida de error cuadrático para una sola capa. El primer perceptrón multicapa (MLP) con más de una capa entrenado mediante descenso de gradiente estocástico [ 17 ] fue publicado en 1967 por Shun'ichi Amari . [ 25 ] El MLP tenía 5 capas, con 2 capas entrenables, y aprendió a clasificar patrones no linealmente separables. [ 24 ]
retropropagación moderna
La retropropagación moderna fue publicada por primera vez por Seppo Linnainmaa como "modo inverso de diferenciación automática " (1970) [ 26 ] para redes discretas conectadas de funciones diferenciables anidadas . [ 27 ] [ 28 ] [ 29 ]
En 1982, Paul Werbos aplicó la retropropagación a las MLP de la forma que se ha convertido en estándar. [ 30 ] [ 31 ] 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, lográndolo finalmente en 1981. [ 32 ] También afirmó que "la primera aplicación práctica de la retropropagación fue para estimar un modelo dinámico para predecir el nacionalismo y las comunicaciones sociales en 1974" por él. [ 33 ]
Alrededor de 1982, [ 32 ] : 376 David E. Rumelhart desarrolló de forma independiente [ 34 ] : 252 la retropropagación y enseñó el algoritmo a otros en su círculo de investigación. No citó trabajos previos 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. [ 35 ] Estos artículos fueron muy citados, contribuyeron a la popularización de la retropropagación y coincidieron con el resurgimiento del interés de investigación en redes neuronales durante la década de 1980. [ 5 ] [ 36 ] [ 37 ]
En 1985, David Parker también describió el método. [ 38 ] [ 39 ] Yann LeCun propuso una forma alternativa de retropropagación para redes neuronales en su tesis doctoral en 1987. [ 40 ]
El descenso de gradiente tardó bastante tiempo en ser aceptado. Algunas objeciones iniciales fueron: no había garantías de que el descenso de gradiente pudiera alcanzar un mínimo global, solo un mínimo local; los fisiólogos sabían que las neuronas producían señales discretas (0/1), no continuas, y con señales discretas, no hay gradiente que tomar. Véase la entrevista con Geoffrey Hinton , [ 32 ] quien recibió el Premio Nobel de Física de 2024 por sus contribuciones al campo. [ 41 ]
Primeros éxitos
Diversas aplicaciones en el entrenamiento de redes neuronales mediante retropropagación contribuyeron a su aceptación, alcanzando en ocasiones 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 con retropropagación y máquina de Boltzmann, pero encontró que la retropropagación era significativamente más rápida, por lo que la utilizó para la versión final de NETtalk. [ 32 ] : 324 El programa NETtalk se convirtió en un éxito popular, apareciendo en el programa Today . [ 42 ]
En 1989, Dean A. Pomerleau publicó ALVINN, una red neuronal entrenada para conducir de forma autónoma utilizando retropropagación. [ 43 ]
LeNet se publicó en 1989 para reconocer códigos postales escritos a mano.
En 1992, TD-Gammon logró un nivel de juego humano superior en backgammon. Era un agente de aprendizaje por refuerzo con una red neuronal de dos capas, entrenada mediante retropropagación. [ 44 ]
En 1993, Eric Wan ganó un concurso internacional de reconocimiento de patrones mediante retropropagación. [ 45 ] [ 46 ]
Después de la retropropagación
Durante la década de 2000 cayó en desuso , pero resurgió en la década de 2010, beneficiándose de sistemas informáticos potentes y económicos basados en GPU . Esto se ha manifestado especialmente en el reconocimiento de voz , la visión artificial , el procesamiento del lenguaje natural y la investigación sobre el aprendizaje de la estructura del lenguaje (en la que se ha utilizado para explicar diversos fenómenos relacionados con el aprendizaje de la primera [ 47 ] y la segunda lengua [ 48 ] ) [ 49 ] .
Se ha sugerido que la retropropagación de errores explica los componentes del potencial evocado relacionado con eventos (ERP) del cerebro humano, como el N400 y el P600 . [ 50 ]
En 2023, un equipo de la Universidad de Stanford implementó un algoritmo de retropropagación en un procesador fotónico . [ 51 ]
Véase también
Notas
- ↑ Usarpara que la función de pérdida permitaque se utilizará para el número de capas
- ↑ Esto sigue a Nielsen (2015) y significa (izquierda) multiplicación por la matrizcorresponde a convertir los valores de salida de la capavalores de entrada de la capaLas columnas corresponden a las coordenadas de entrada y las filas a las coordenadas de salida.
- ↑ Esta sección sigue y resume en gran medida a Nielsen (2015) .
- ↑The derivative of the loss function is a covector, since the loss function is a scalar-valued function of several variables.
- ↑The activation function is applied to each node separately, so the derivative is just the diagonal matrix of the derivative on each node. This is often represented as the Hadamard product with the vector of derivatives, denoted by , which is mathematically identical but better matches the internal representation of the derivatives as a vector, rather than a diagonal matrix.
- ↑Since matrix multiplication is linear, the derivative of multiplying by a matrix is just the matrix: .
- ↑One may notice that multi-layer neural networks use non-linear activation functions, so an example with linear neurons seems obscure. However, even though the error surface of multi-layer networks are much more complicated, locally they can be approximated by a paraboloid. Therefore, linear neurons are used for simplicity and easier understanding.
- ↑There can be multiple output neurons, in which case the error is the squared norm of the difference vector.
- ↑This order follows (Rumelhart, Hinton & Williams, 1986a):[5] " is the change to be made to the weight from the th to the th unit"
References
- ↑Goodfellow, Bengio & Courville 2016, p. 200, "The term back-propagation is often misunderstood as meaning the whole learning algorithm for multi layer neural networks. Actually, back-propagation refers only to the method for computing the gradient, while another algorithm, such as stochastic gradient descent, is used to perform learning using this gradient."
- 12Goodfellow, Bengio & Courville (2016, p. 217–218), "The back-propagation algorithm described here is only one approach to automatic differentiation. It is a special case of a broader class of techniques called reverse mode accumulation."
- ↑Ramachandran, Prajit; Zoph, Barret; Le, Quoc V. (2017-10-27). "Searching for Activation Functions". arXiv:1710.05941 [cs.NE].
- ↑Misra, Diganta (2019-08-23). "Mish: A Self Regularized Non-Monotonic Activation Function". arXiv:1908.08681 [cs.LG].
- 1 2 3 Rumelhart, David E. ; Hinton, Geoffrey E. ; Williams, Ronald J. (1986a). "Aprendizaje de representaciones mediante la retropropagación de errores". Nature . 323 (6088): 533– 536. Bibcode : 1986Natur.323..533R . doi : 10.1038/323533a0 . S2CID 205001834 .
- ↑ Tan, Hong Hui; Lim, King Han (2019). "Revisión de técnicas de optimización de segundo orden en retropropagación de redes neuronales artificiales" . IOP Conference Series: Materials Science and Engineering . 495 (1) 012003. Bibcode : 2019MS & E..495a2003T . doi : 10.1088/1757-899X/495/1/012003 . S2CID 208124487 .
- 1 2 Wiliamowski, Bogdan; Yu, Hao (junio de 2010). "Improved Computation for Levenberg–Marquardt Training" (PDF) . IEEE Transactions on Neural Networks and Learning Systems . 21 (6): 930. Bibcode : 2010ITNN...21..930W . doi : 10.1109/TNN.2010.2045657 .
- ↑ Martens, James (agosto de 2020). "Nuevas perspectivas y conocimientos sobre el método del gradiente natural". Journal of Machine Learning Research (21). arXiv : 1412.1193 .
- ↑ Nielsen (2015) , "¿Qué supuestos debemos hacer sobre nuestra función de coste... para poder aplicar la retropropagación? El primer supuesto que necesitamos es que la función de coste se puede escribir como un promedio... sobre las funciones de coste... para ejemplos de entrenamiento individuales... El segundo supuesto que hacemos sobre el coste es que se puede escribir como una función de las salidas de la red neuronal..."
- ↑ LeCun, Yann ; Bengio, Yoshua; Hinton, Geoffrey (2015). " Aprendizaje profundo" (PDF) . Nature . 521 (7553): 436– 444. Bibcode : 2015Natur.521..436L . doi : 10.1038/nature14539 . PMID 26017442. S2CID 3074096 .
- ↑ Buckland, Matt; Collins, Mark (2002). Técnicas de IA para la programación de videojuegos . Boston: Premier Press. ISBN 1-931841-08-X.
- ↑ 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 unas memorias de 1676) . Open Court Publishing Company. ISBN 978-0-598-81846-1.
{{cite book}}: Incompatibilidad de ISBN/Fecha ( ayuda ) - ↑ 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 . Spartan, Nueva York. págs. 287–298 .
- ↑ LeCun, Yann, et al. "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). Neurocomputing . Internet Archive. Reading, Mass.: Addison-Wesley Pub. Co. pp. 124–125 . ISBN 978-0-201-09355-1.
- 1 2 Robbins, H. ; Monro, S. (1951). "Un método de aproximación estocástica" . The Annals of Mathematical Statistics . 22 (3): 400. doi : 10.1214/aoms/1177729586 .
- ↑ Kelley, Henry J. (1960). "Teoría del gradiente de las trayectorias de vuelo óptimas". ARS Journal . 30 (10): 947– 954. doi : 10.2514/8.5282 .
- ↑ Bryson, Arthur E. (1962). "Un método de gradiente para optimizar procesos de asignación multietapa". Actas del Simposio de la Universidad de Harvard sobre computadoras digitales y sus aplicaciones, 3-6 de abril de 1961. Cambridge: Harvard University Press. OCLC 498866871 .
- ↑ Dreyfus, Stuart (1962). "La solución numérica de problemas variacionales" . Journal of Mathematical Analysis and Applications . 5 (1): 30– 45. doi : 10.1016/0022-247x(62)90004-5 .
- ↑ Dreyfus, Stuart E. (1990). "Redes neuronales artificiales, retropropagación y el procedimiento de gradiente de Kelley-Bryson". Journal of Guidance, Control, and Dynamics . 13 (5): 926– 928. Bibcode : 1990JGCD...13..926D . doi : 10.2514/3.25422 .
- ↑ Mizutani, Eiji; Dreyfus, Stuart; Nishio, Kenichi (julio de 2000). "Sobre la derivación de la retropropagación de MLP a partir de la fórmula del gradiente de control óptimo de Kelley-Bryson y su aplicación" (PDF) . Actas de la Conferencia Conjunta Internacional IEEE sobre Redes Neuronales.
- ↑ Dreyfus, Stuart (1973). "La solución computacional de problemas de control óptimo con retardo de tiempo". IEEE Transactions on Automatic Control . 18 (4): 383– 385. doi : 10.1109/tac.1973.1100330 .
- 1 2 Schmidhuber, Jürgen (2022). "Historia anotada de la IA moderna y el aprendizaje profundo". arXiv : 2212.11279 [ cs.NE ].
- ↑ Amari, Shun'ichi (1967). "Una teoría del clasificador de patrones adaptativo". IEEE Transactions . EC (16): 279– 307.
- ↑ 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 (tesis de maestría) (en finés). Universidad de Helsinki. págs. 6–7 .
- ↑ Linnainmaa, Seppo (1976). "Expansión de Taylor del error de redondeo acumulado". BIT Numerical Mathematics . 16 (2): 146– 160. doi : 10.1007/bf01931367 . S2CID 122357351 .
- ↑ Griewank, Andreas (2012). "¿Quién inventó el modo inverso de diferenciación?". Optimization Stories . Documenta Mathematica, Volumen extra ISMP. pp. 389–400 . S2CID 15568746 .
- ↑ Griewank, Andreas; Walther, Andrea (2008). Evaluación de derivadas: Principios y técnicas de diferenciación algorítmica, segunda edición . SIAM. ISBN 978-0-89871-776-1.
- ↑ Werbos, Paul (1982). "Aplicaciones de los avances en el análisis de sensibilidad no lineal" (PDF) . Modelado y optimización de sistemas . Springer. págs. 762–770 . Archivado (PDF) del original el 14 de abril de 2016. Recuperado el 2 de julio de 2017 .
- ↑ Werbos, Paul J. (1994). The Roots of Backpropagation: From Ordered Derivatives to Neural Networks and Political Forecasting . Nueva York: John Wiley & Sons. ISBN 0-471-59897-6.
- 1 2 3 4 Anderson, James A.; Rosenfeld, Edward, eds. (2000). Talking Nets: An Oral History of Neural Networks . The MIT Press. doi : 10.7551/mitpress/6626.003.0016 . ISBN 978-0-262-26715-1.
- ↑ PJ Werbos, "Retropropagación a través del tiempo: qué hace y cómo hacerlo", en Actas del IEEE, vol. 78, n.º 10, págs. 1550–1560, octubre de 1990, doi : 10.1109/5.58337
- ↑ Olazaran Rodriguez, Jose Miguel. Una sociología histórica de la investigación en redes neuronales . Tesis doctoral. Universidad de Edimburgo, 1991.
- ↑ Rumelhart; Hinton; Williams (1986). "Aprendizaje de representaciones mediante la retropropagación de errores" (PDF) . Nature . 323 (6088): 533– 536. Bibcode : 1986Natur.323..533R . doi : 10.1038/323533a0 . S2CID 205001834 .
- ↑ Rumelhart, David E.; Hinton , Geoffrey E .; Williams, Ronald J. (1986b). "8. Aprendizaje de representaciones internas mediante propagación de errores" . En Rumelhart, David E.; McClelland , James L. (eds.). Procesamiento distribuido en paralelo: exploraciones en la microestructura de la cognición . Vol. 1 : Fundamentos. Cambridge: MIT Press. ISBN 0-262-18120-7.
- ↑ Alpaydin, Ethem (2010). Introducción al aprendizaje automático . MIT Press. ISBN 978-0-262-01243-0.
- ↑ Parker, DB (1985). Aprendizaje de la lógica: Recreación de la corteza cerebral humana en silicio. Centro de Investigación Computacional en Economía y Ciencias de la Gestión (Informe). Cambridge, MA: Instituto Tecnológico 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. pág. 8. ISBN 0-201-50395-6OCLC 21522159
- ^ Le Cun, Yann (1987). Modèles connexionnistes de l'apprentissage (Tesis de doctorado de Estado). París, Francia: Université Pierre et Marie Curie.
- ↑ "El Premio Nobel de Física 2024" . NobelPrize.org . Consultado el 13 de octubre de 2024 .
- ↑ Sejnowski, Terrence J. (2018). La revolución del aprendizaje profundo . Cambridge, Massachusetts Londres, Inglaterra: The MIT Press. ISBN 978-0-262-03803-4.
- ↑ Pomerleau, Dean A. (1988). "ALVINN: Un vehículo terrestre autónomo en una red neuronal" . Avances en sistemas de procesamiento de información neuronal . 1. Morgan-Kaufmann.
- ↑ Sutton, Richard S.; Barto, Andrew G. (2018). "11.1 TD-Gammon" . Aprendizaje por refuerzo: una introducción (2.ª ed.). Cambridge, MA: MIT Press.
- ↑ Schmidhuber, Jürgen (2015). " Aprendizaje profundo en redes neuronales: una visión general". Redes neuronales . 61 : 85–117 . arXiv : 1404.7828 . doi : 10.1016/j.neunet.2014.09.003 . PMID 25462637. S2CID 11715509 .
- ↑ Wan, Eric A. (1994). «Predicción de series temporales mediante una red conexionista con líneas de retardo internas». En Weigend, Andreas S.; Gershenfeld , Neil A. (eds.). Predicción de series temporales: Pronosticando el futuro y comprendiendo el pasado . Actas del Taller de Investigación Avanzada de la OTAN sobre Análisis Comparativo de Series Temporales. Vol. 15. Reading: Addison-Wesley. pp. 195–217 . ISBN 0-201-62601-2. S2CID 12652643 .
- ↑ Chang, Franklin; Dell, Gary S.; Bock, Kathryn (2006). "Becoming syntactic". Psychological Review . 113 (2): 234– 272. doi : 10.1037/0033-295x.113.2.234 . PMID 16637761 .
- ↑Janciauskas, Marius; Chang, Franklin (2018). "Input and Age-Dependent Variation in Second Language Learning: A Connectionist Account". Cognitive Science. 42 (Suppl Suppl 2): 519–554. doi:10.1111/cogs.12519. PMC 6001481. PMID 28744901.
- ↑"Decoding the Power of Backpropagation: A Deep Dive into Advanced Neural Network Techniques". janbasktraining.com. 30 January 2024.
- ↑Fitz, Hartmut; Chang, Franklin (2019). "Language ERPs reflect learning through prediction error propagation". Cognitive Psychology. 111: 15–52. doi:10.1016/j.cogpsych.2019.03.002. hdl:21.11116/0000-0003-474D-8. PMID 30921626. S2CID 85501792.
- ↑"Photonic Chips Curb AI Training's Energy Appetite - IEEE Spectrum". IEEE. Retrieved 2023-05-25.
Further reading
- Goodfellow, Ian; Bengio, Yoshua; Courville, Aaron (2016). "6.5 Back-Propagation and Other Differentiation Algorithms". Deep Learning. MIT Press. pp. 200–220. ISBN 978-0-262-03561-3.
- Nielsen, Michael A. (2015). "How the backpropagation algorithm works". Neural Networks and Deep Learning. Determination Press.
- McCaffrey, James (October 2012). "Neural Network Back-Propagation for Programmers". MSDN Magazine.
- Rojas, Raúl (1996). "The Backpropagation Algorithm"(PDF). Neural Networks: A Systematic Introduction. Berlin: Springer. ISBN 3-540-60505-3.
External links
- Backpropagation neural network tutorial at the Wikiversity
- Bernacki, Mariusz; Włodarczyk, Przemysław (2004). "Principles of training multi-layer neural network using backpropagation".
- Karpathy, Andrej (2016). "Lecture 4: Backpropagation, Neural Networks 1". CS231n. Stanford University. Archived from the original on 2021-12-12 – via YouTube.
- "¿Qué hace realmente la retropropagación?" . 3Blue1Brown . 3 de noviembre de 2017. Archivado del original el 12 de diciembre de 2021 – vía YouTube .
- Putta, Sudeep Raja (2022). "Otra derivación más de la retropropagación en forma matricial" .
- algoritmos de aprendizaje automático
- Redes neuronales artificiales