stringtranslate.com

Propagación hacia atrás

En aprendizaje automático , la retropropagación es un método de estimación de gradiente que se utiliza para entrenar modelos de redes neuronales. El algoritmo de optimización utiliza la estimación del gradiente para calcular las actualizaciones de los parámetros de la red .

Es una aplicación eficiente de la regla de la cadena de Leibniz (1673) [1] a este tipo de redes. [2] También se le conoce como modo inverso de diferenciación automática o acumulación inversa , debido a Seppo Linnainmaa (1970). [3] [4] [5] [6] [7] [8] [9] El término "corrección de errores de retropropagación" fue introducido en 1962 por Frank Rosenblatt , [10] [2] pero no sabía cómo implementar esto, a pesar de que Henry J. Kelley tuvo un precursor continuo de la retropropagación [11] ya en 1960 en el contexto de la teoría del control . [2]

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:

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.

La red general 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 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:

  1. La informática en términos de evita la obvia multiplicación duplicada de capas y más.
  2. 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.

Una red neuronal simple con dos unidades de entrada (cada una con una única entrada) y una unidad de salida (con dos entradas)

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.

Superficie de error de una neurona lineal para un único caso de entrenamiento

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
es la salida real de la neurona de salida.

Para cada neurona , su salida se define como

donde la función de activación no es lineal y diferenciable en la región de activación (el ReLU no es diferenciable en un punto). Una función de activación utilizada históricamente es la función logística :

que tiene una derivada conveniente de:

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.

Encontrar la derivada del error.

Diagrama de una red neuronal artificial para ilustrar la notación utilizada aquí.

El cálculo de la derivada parcial del error con respecto a un peso se realiza utilizando la regla de la cadena dos veces:

En el último factor del lado derecho de lo anterior, sólo un término de la suma depende de , de modo que

Si la neurona está en la primera capa después de la capa de entrada, es solo .

La derivada de la salida de la neurona con respecto a su entrada es simplemente la derivada parcial de la función de activación:

cuál para la función de activación logística

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

El descenso del gradiente puede encontrar un mínimo local en lugar del mínimo global.

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]

Propagación hacia atrás moderna

La retropropagación moderna fue publicada por primera vez por Seppo Linnainmaa como "modo inverso de diferenciación automática " (1970) [3] para redes discretas conectadas de funciones diferenciables anidadas . [4] [5]

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]

En 2023, un equipo de la Universidad de Stanford implementó un algoritmo de retropropagación en un procesador fotónico . [52]

Ver también

Notas

  1. ^ Úselo para la función de pérdida para permitir su uso para el número de capas
  2. ^ 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.
  3. ^ Esta sección sigue y resume en gran medida a Nielsen (2015).
  4. ^ 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.
  5. ^ 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.
  6. ^ Dado que la multiplicación de matrices es lineal, la derivada de multiplicar por una matriz es solo la matriz: .
  7. ^ 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.
  8. ^ Puede haber varias neuronas de salida, en cuyo caso el error es la norma al cuadrado del vector de diferencia.

Referencias

  1. ^ 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.
  2. ^ abcdef Schmidhuber, Jürgen (2022). "Historia comentada de la IA moderna y el aprendizaje profundo". arXiv : 2212.11279 [cs.NE].
  3. ^ 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.
  4. ^ 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.
  5. ^ 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.
  6. ^ Griewank, Andreas; Walther, Andrea (2008). Evaluación de derivados: principios y técnicas de diferenciación algorítmica, segunda edición. SIAM. ISBN 978-0-89871-776-1.
  7. ^ 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.
  8. ^ Schmidhuber, Jürgen (2015). "Aprendizaje profundo". Scholarpedia . 10 (11): 32832. Código bibliográfico : 2015SchpJ..1032832S. doi : 10.4249/scholarpedia.32832 .
  9. ^ 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 ".
  10. ^ 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".
  11. ^ 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.
  12. ^ 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.
  13. ^ Goodfellow, Bengio y Courville 2016, pág. 214, "Esta estrategia de llenado de tablas a veces se denomina programación dinámica ".
  14. ^ 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 .
  15. ^ 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."
  16. ^ 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.
  17. ^ Ramachandran, Prajit; Zoph, Barret; Le, Quoc V. (27 de octubre de 2017). "Búsqueda de funciones de activación". arXiv : 1710.05941 [cs.NE].
  18. ^ Misra, Diganta (23 de agosto de 2019). "Mish: una función de activación no monótona autoregulada". arXiv : 1908.08681 [cs.LG].
  19. ^ ab Rumelhart, David E .; Hinton, Geoffrey E .; Williams, Ronald J. (1986a). "Aprendizaje de representaciones mediante errores de retropropagación". Naturaleza . 323 (6088): 533–536. Código Bib :1986Natur.323..533R. doi :10.1038/323533a0. S2CID  205001834.
  20. ^ 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.
  21. ^ 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).
  22. ^ 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 .
  23. ^ 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..."
  24. ^ LeCun, Yann; Bengio, Yoshua; Hinton, Geoffrey (2015). "Aprendizaje profundo". Naturaleza . 521 (7553): 436–444. Código Bib :2015Natur.521..436L. doi : 10.1038/naturaleza14539. PMID  26017442. S2CID  3074096.
  25. ^ Buckland, Matt; Collins, Marcos (2002). Técnicas de IA para la programación de juegos . Boston: Premier Press. ISBN 1-931841-08-X.
  26. ^ 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 .
  27. ^ Rosenblatt, Frank (1962). Principios de neurodinámica . Espartano, Nueva York. págs. 287–298.
  28. ^ 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.
  29. ^ Hecht-Nielsen, Robert (1990). Neurocomputación. Archivo de Internet. Lectura, Massachusetts: Pub Addison-Wesley. Co. págs. 124-125. ISBN 978-0-201-09355-1.
  30. ^ 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 .
  31. ^ 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.
  32. ^ 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.
  33. ^ 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.
  34. ^ Amari, Shun'ichi (1967). "Una teoría del clasificador de patrones adaptativos". Transacciones IEEE . CE (16): 279–307.
  35. ^ 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 .
  36. ^ 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. ISBN 0-471-59897-6.
  37. ^ 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. ISBN 978-0-262-26715-1.
  38. ^ Olazarán Rodríguez, José Miguel. Una sociología histórica de la investigación de redes neuronales . Tesis Doctoral. Universidad de Edimburgo, 1991.
  39. ^ 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 paralelo: exploraciones en la microestructura de la cognición . vol. 1: Cimentaciones. Cambridge: Prensa del MIT. ISBN 0-262-18120-7.
  40. ^ Alpaydin, Ethem (2010). Introducción al aprendizaje automático. Prensa del MIT. ISBN 978-0-262-01243-0.
  41. ^ 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.
  42. ^ 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.ISBN 0-201-50395-6. OCLC  21522159.
  43. ^ Le Cun, Yann (1987). Modèles connexionnistes de l'apprentissage (Tesis de doctorado de Estado). París, Francia: Université Pierre et Marie Curie.
  44. ^ Sejnowski, Terrence J. (2018). La revolución del aprendizaje profundo . Cambridge, Massachusetts Londres, Inglaterra: The MIT Press. ISBN 978-0-262-03803-4.
  45. ^ 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 .
  46. ^ Sutton, Richard S.; Barto, Andrés G. (2018). "11.1 TD-Gammon". Aprendizaje por refuerzo: una introducción (2ª ed.). Cambridge, MA: MIT Press.
  47. ^ 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. ISBN 0-201-62601-2. S2CID  12652643.
  48. ^ 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.
  49. ^ 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. 
  50. ^ "Decodificar el poder de la retropropagación: una inmersión profunda en técnicas avanzadas de redes neuronales". janbasktraining.com .
  51. ^ 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.
  52. ^ "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

enlaces externos