stringtranslate.com

Retropropagación

En el aprendizaje automático , la retropropagación es un método de estimación de gradiente que se utiliza comúnmente para entrenar redes neuronales para calcular las actualizaciones de los parámetros de la red .

Es una aplicación eficiente de la regla de la cadena a las redes neuronales. 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 términos intermedios en la regla de la cadena; esto se puede derivar a través de la programación dinámica . [1] [2] [3]

Estrictamente hablando, el término retropropagación se refiere sólo a un algoritmo para calcular eficientemente el gradiente, no a cómo se utiliza el gradiente; pero el término se utiliza a menudo de forma imprecisa para referirse a todo el algoritmo de aprendizaje, incluyendo cómo se utiliza el gradiente, como por ejemplo mediante el descenso de gradiente estocástico, o como un paso intermedio en un optimizador más complicado, como Adam . [4]

La retropropagación ha tenido múltiples descubrimientos y descubrimientos parciales, con una historia y terminología complicadas. Consulte la sección de historia para obtener más detalles. Otros nombres para la técnica incluyen "modo inverso de diferenciación automática " o " acumulación inversa ". [5]

Descripción general

La retropropagación calcula el gradiente en el espacio de pesos de una red neuronal de propagación hacia adelante, 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 especialmente 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 . swish [6] mish [ 7] y otras funciones de activación también se han propuesto desde entonces.

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 la salida prevista y la salida objetivo :

Tenga en cuenta la distinción: 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 termina con la capa de salida (no incluye la función de pérdida). Durante el entrenamiento del modelo, el par de entrada-salida es fijo mientras que los pesos varían y la red termina con la función de pérdida.

La retropropagación calcula el gradiente para un par de entrada-salida fijo , 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 al evitar cálculos duplicados y no calcular valores intermedios innecesarios, al calcular 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 afecta la pérdida es a través de su efecto en la siguiente capa, y lo hace de manera lineal , 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. Primero, evita la duplicación porque al calcular el gradiente en la capa , es innecesario volver a calcular todas las derivadas en las capas posteriores cada vez. Segundo, evita cálculos intermedios innecesarios, porque en cada etapa calcula directamente el gradiente de los pesos con respecto al resultado 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 propagación hacia adelante simples en términos de multiplicación de matrices o, de manera más general, en términos del gráfico adjunto.

Multiplicación de matrices

Para el caso básico de una red de propagación hacia adelante, donde los nodos en cada capa están conectados solo a nodos en la siguiente capa inmediata (sin omitir 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 por la 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 las derivadas entre cada capa de derecha a izquierda - "hacia atrás" - con el gradiente de los pesos entre cada capa siendo una simple modificación de los productos parciales (el "error propagado hacia atrás").

Dado un par de entrada-salida , la pérdida es:

Para calcular esto, se comienza con la entrada y se avanza hacia adelante; se denota la entrada ponderada de cada capa oculta como y la salida de la capa oculta como la activación . Para la retropropagación, la activación, así como las derivadas (evaluadas en ) deben almacenarse en caché para su uso durante el paso hacia atrás.

La derivada de la pérdida en términos de las entradas está 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 :

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 transposición 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 sólo una subexpresión: hay una multiplicación extra.

Introduciendo la cantidad auxiliar para los productos parciales (multiplicando de derecha a izquierda), interpretada como el "error en el nivel " y definida como el gradiente de los valores de entrada en el nivel :

Nótese 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 es porque 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, yendo de derecha a izquierda, como:

Los gradientes de los pesos pueden calcularse mediante unas cuantas multiplicaciones de matrices para cada nivel; esto se denomina retropropagación.

En comparación con el cálculo ingenuo hacia adelante (usando el para la ilustración):

Hay dos diferencias clave con la retropropagación:

  1. La computación en términos de evita la obvia multiplicación duplicada de capas y más allá.
  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 adelante hasta 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 los cambios de peso afectan los valores de los nodos ocultos.

Gráfico 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"). [5]

Intuición

Motivación

El objetivo de cualquier algoritmo de aprendizaje supervisado es encontrar una función que asigne de la mejor manera un conjunto de entradas a su salida correcta. La motivación de la retropropagación es entrenar una red neuronal de múltiples capas de modo que pueda aprender las representaciones internas adecuadas para permitirle aprender cualquier asignación arbitraria de entrada a salida. [8]

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. Considere 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 del trabajo sobre redes neuronales, en el que el mapeo de entradas a salidas no es lineal) [g] que es la suma ponderada de su entrada.

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

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 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 (pesos aleatorios dados). 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, el error al cuadrado se puede utilizar como una función de pérdida, para la clasificación se puede utilizar la entropía cruzada categórica .

Como ejemplo, consideremos un problema de regresión que utiliza el error cuadrado como pérdida:

donde E es la discrepancia o error.

Considere la red en un solo caso de entrenamiento: . Por lo tanto, la entrada y son 1 y 1 respectivamente y la salida correcta, t es 0. Ahora, si se grafica la relación entre la salida y de la red 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 mapear 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 de la conexión de las unidades de entrada a la unidad de salida. Por lo tanto, el error también depende de los pesos de entrada a la neurona, que es en última instancia lo que se debe 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. Las restricciones adicionales se pueden generar 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 se minimiza el error 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 el valor de salida y el valor objetivo ,
es la salida 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 es diferenciable en la región de activación (la 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 las 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, solo 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 simplemente .

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

cual para la función de activación logística

Esta es la razón por la que 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 fácil de evaluar si la neurona está en la capa de salida, porque entonces y

Si se utiliza la mitad del error cuadrado 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 cuyas entradas son todas las neuronas que reciben la entrada de la neurona ,

y tomando la derivada total con respecto a , 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 más cercanas a la neurona de salida). [Nótese que, si alguna de las neuronas del conjunto no estuviera conectada a la neurona , sería independiente de y la derivada parcial correspondiente bajo la suma se anularía a 0].

Sustituyendo Ec. 2 , Ec. 3, Ec. 4 y Ec. 5 en Ec. 1 obtenemos:

con

Si es la función logística y el error es el error al cuadrado:

Para actualizar el peso mediante el descenso de gradiente, se debe elegir una tasa de aprendizaje, . El cambio en el peso debe reflejar el impacto en de un aumento o disminución en . Si , un aumento en aumenta ; por el contrario, si , un aumento en disminuye . El nuevo se agrega al peso anterior, y el producto de la tasa de aprendizaje y el gradiente, multiplicado por garantiza que 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 hessiana 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. [9] [10] También puede encontrar soluciones en cantidades de nodos más pequeñas para las que otros métodos podrían no converger. [10] La matriz hessiana se puede aproximar mediante la matriz de información de Fisher . [11]

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 un "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 retropropagación. [12] 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 solo ejemplo de entrenamiento, que debe generalizarse a la función de error general. La segunda suposición es que se puede escribir como una 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 opción estándar es el cuadrado de la distancia euclidiana entre los vectores y : La función de error sobre los ejemplos de entrenamiento se puede escribir como un promedio de pérdidas sobre ejemplos individuales:

Limitaciones

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

Historia

Precursores

La retropropagación se ha derivado en repetidas ocasiones, ya que es esencialmente una aplicación eficiente de la regla de la cadena (escrita por primera vez por Gottfried Wilhelm Leibniz en 1676) [15] [16] a las redes neuronales.

La terminología "corrección de errores por retropropagación" fue introducida en 1962 por Frank Rosenblatt , pero no sabía cómo implementarla. [17] 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 la década de 1950 de Pontryagin y otros en la teoría de control óptimo, especialmente el método de estados adjuntos , por ser una versión de tiempo continuo de la retropropagación. [18] Hecht-Nielsen [19] atribuye el algoritmo de Robbins-Monro (1951) [20] y el Control Óptimo Aplicado de Arthur Bryson y Yu-Chi Ho (1969) como presagios de la retropropagación. Otros precursores fueron Henry J. Kelley 1960, [1] y Arthur E. Bryson (1961). [2] En 1962, Stuart Dreyfus publicó una derivación más simple basada solo en la regla de la cadena . [21] [22] [23] En 1973, adaptó los parámetros de los controladores en proporción a los gradientes de error. [24] A diferencia de la retropropagación moderna, estos precursores utilizaban cálculos matriciales jacobianos estándar de una etapa a la anterior, sin abordar los vínculos directos entre varias etapas ni las posibles ganancias de eficiencia adicionales debido a la escasez de la red. [25]

El algoritmo de aprendizaje ADALINE (1960) fue un algoritmo de 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 entrenado mediante descenso de gradiente estocástico [20] fue publicado en 1967 por Shun'ichi Amari . [26] El MLP tenía 5 capas, con 2 capas aprendibles, y aprendió a clasificar patrones no linealmente separables. [25]

Retropropagación moderna

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

En 1982, Paul Werbos aplicó la retropropagación a los MLP de la manera que se ha convertido en estándar. [31] [32] 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, pero solo lo logró en 1981. [33] 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". [34]

Alrededor de 1982, [33] : 376  David E. Rumelhart desarrolló de forma independiente [35] : 252  la retropropagación y enseñó el algoritmo a otros en su círculo de investigación. No citó trabajos anteriores porque no los conocí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. [36] Estos artículos se citaron ampliamente, contribuyeron a la popularización de la retropropagación y coincidieron con el resurgimiento del interés de investigación en las redes neuronales durante la década de 1980. [8] [37] [38]

En 1985, el método también fue descrito por David Parker. [39] [40] Yann LeCun propuso una forma alternativa de retropropagación para redes neuronales en su tesis doctoral en 1987. [41]

El descenso de gradiente tardó mucho tiempo en ser aceptado. Algunas de las primeras objeciones 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 emití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 [33] , que recibió el Premio Nobel de Física en 2024 por sus contribuciones a este campo. [42]

Primeros éxitos

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 descubrió que la retropropagación era significativamente más rápida, por lo que la utilizó para el NETtalk final. [33] : 324  El programa NETtalk se convirtió en un éxito popular y apareció en el programa Today . [43]

En 1989, Dean A. Pomerleau publicó ALVINN, una red neuronal entrenada para conducir de forma autónoma mediante retropropagación. [44]

LeNet se publicó en 1989 para reconocer códigos postales escritos a mano.

En 1992, TD-Gammon alcanzó el máximo nivel 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. [45]

En 1993, Eric Wan ganó un concurso internacional de reconocimiento de patrones a través de retropropagación. [46] [47]

Después de la retropropagación

Durante la década de 2000 cayó en desuso [ cita requerida ] , pero regresó en la década de 2010, beneficiándose de los sistemas informáticos baratos y potentes basados ​​en GPU . Esto ha sido especialmente así en el reconocimiento de voz , la visión artificial , el procesamiento del lenguaje natural y la investigación del aprendizaje de la estructura del lenguaje (en la 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 que la retropropagación de errores explica los componentes del potencial relacionado con eventos (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]

Véase también

Notas

  1. ^ Se utiliza 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 que (izquierda) la multiplicación por la matriz corresponde a la conversión de los valores de salida de la capa a los 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 escalar de varias variables.
  5. ^ La función de activación se aplica a cada nodo por separado, por lo que la derivada es simplemente la matriz diagonal de la derivada en cada nodo. Esto se representa a menudo 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. ^ Como la multiplicación de matrices es lineal, la derivada de la multiplicación por una matriz es simplemente 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 poco claro. Sin embargo, aunque la superficie de error de las redes multicapa es mucho más complicada, localmente se puede aproximar mediante un paraboloide. Por lo tanto, se utilizan neuronas lineales 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 Kelley, Henry J. (1960). "Teoría de gradientes de trayectorias de vuelo óptimas". ARS Journal . 30 (10): 947–954. doi :10.2514/8.5282.
  2. ^ ab Bryson, Arthur E. (1962). "Un método de gradiente para optimizar procesos de asignación de múltiples etapas". 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.
  3. ^ Goodfellow, Bengio y Courville 2016, pág. 214, "Esta estrategia de llenado de tablas a veces se denomina programación dinámica ".
  4. ^ Goodfellow, Bengio & Courville 2016, p. 200, "El término retropropagación suele malinterpretarse como si se tratara de 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 utilizando este gradiente".
  5. ^ ab Goodfellow, Bengio y 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 de modo inverso ".
  6. ^ Ramachandran, Prajit; Zoph, Barret; Le, Quoc V. (27 de octubre de 2017). "Búsqueda de funciones de activación". arXiv : 1710.05941 [cs.NE].
  7. ^ Misra, Diganta (23 de agosto de 2019). "Mish: una función de activación no monótona autorregulada". arXiv : 1908.08681 [cs.LG].
  8. ^ ab Rumelhart, David E. ; Hinton, Geoffrey E. ; Williams, Ronald J. (1986a). "Aprendizaje de representaciones mediante retropropagación de errores". Nature . 323 (6088): 533–536. Bibcode :1986Natur.323..533R. doi :10.1038/323533a0. S2CID  205001834.
  9. ^ 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". Serie de conferencias IOP: Ciencia e ingeniería de materiales . 495 (1): 012003. Bibcode :2019MS&E..495a2003T. doi : 10.1088/1757-899X/495/1/012003 . S2CID  208124487.
  10. ^ ab Wiliamowski, Bogdan; Yu, Hao (junio de 2010). "Computación mejorada para el entrenamiento de Levenberg–Marquardt" (PDF) . Transacciones IEEE sobre redes neuronales y sistemas de aprendizaje . 21 (6).
  11. ^ Martens, James (agosto de 2020). "Nuevos conocimientos y perspectivas sobre el método del gradiente natural". Revista de investigación en aprendizaje automático (21). arXiv : 1412.1193 .
  12. ^ Nielsen (2015), "¿Qué suposiciones debemos hacer sobre nuestra función de costo... para que se pueda aplicar la retropropagación? La primera suposición que necesitamos es que la función de costo se puede escribir como un promedio... sobre funciones de costo... 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..."
  13. ^ 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.
  14. ^ Buckland, Matt; Collins, Mark (2002). Técnicas de IA para programación de juegos . Boston: Premier Press. ISBN 1-931841-08-X.
  15. ^ 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 9780598818461.
  16. ^ 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 .
  17. ^ Rosenblatt, Frank (1962). Principios de neurodinámica . Spartan, Nueva York. pp. 287–298.
  18. ^ 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.
  19. ^ Hecht-Nielsen, Robert (1990). Neurocomputación. Internet Archive. Reading, Mass.: Addison-Wesley Pub. Co., págs. 124-125. ISBN 978-0-201-09355-1.
  20. ^ ab Robbins, H. ; Monro, S. (1951). "Un método de aproximación estocástica". Anales de estadística matemática . 22 (3): 400. doi : 10.1214/aoms/1177729586 .
  21. ^ Dreyfus, Stuart (1962). "La solución numérica de problemas variacionales". Revista de análisis matemático y aplicaciones . 5 (1): 30–45. doi : 10.1016/0022-247x(62)90004-5 .
  22. ^ Dreyfus, Stuart E. (1990). "Redes neuronales artificiales, retropropagación y el 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.
  23. ^ 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 de gradiente de control óptimo de Kelley-Bryson y su aplicación" (PDF) . Actas de la Conferencia conjunta internacional del IEEE sobre redes neuronales.
  24. ^ Dreyfus, Stuart (1973). "La solución computacional de problemas de control óptimo con retardo temporal". IEEE Transactions on Automatic Control . 18 (4): 383–385. doi :10.1109/tac.1973.1100330.
  25. ^ por Schmidhuber, Jürgen (2022). "Historia comentada de la IA moderna y el aprendizaje profundo". arXiv : 2212.11279 [cs.NE].
  26. ^ Amari, Shun'ichi (1967). "Una teoría del clasificador de patrones adaptativo". Transacciones IEEE . EC (16): 279–307.
  27. ^ 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.
  28. ^ 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.
  29. ^ Griewank, Andreas (2012). "¿Quién inventó el modo inverso de diferenciación?". Historias de optimización . Documenta Matematica, volumen adicional ISMP. págs. 389–400. S2CID  15568746.
  30. ^ 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.
  31. ^ Werbos, Paul (1982). "Aplicaciones de los avances en el análisis de sensibilidad no lineal" (PDF) . Modelado y optimización de sistemas . Springer. pp. 762–770. Archivado (PDF) desde el original el 14 de abril de 2016. Consultado el 2 de julio de 2017 .
  32. ^ Werbos, Paul J. (1994). Las raíces de la retropropagación: de las derivadas ordenadas a las redes neuronales y la previsión política . Nueva York: John Wiley & Sons. ISBN 0-471-59897-6.
  33. ^ abcd Anderson, James A.; Rosenfeld, Edward, eds. (2000). Talking Nets: Una historia oral de las redes neuronales. The MIT Press. doi :10.7551/mitpress/6626.003.0016. ISBN 978-0-262-26715-1.
  34. ^ PJ Werbos, "Retropropagación a través del tiempo: qué hace y cómo hacerlo", en Proceedings of the IEEE, vol. 78, núm. 10, págs. 1550-1560, octubre de 1990, doi :10.1109/5.58337
  35. ^ Olazaran Rodriguez, Jose Miguel. Una sociología histórica de la investigación en redes neuronales . Tesis doctoral. Universidad de Edimburgo, 1991.
  36. ^ Rumelhart; Hinton; Williams (1986). "Aprendizaje de representaciones mediante retropropagación de errores" (PDF) . Nature . 323 (6088): 533–536. Bibcode :1986Natur.323..533R. doi :10.1038/323533a0. S2CID  205001834.
  37. ^ 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: Fundamentos. Cambridge: MIT Press. ISBN 0-262-18120-7.
  38. ^ Alpaydin, Ethem (2010). Introducción al aprendizaje automático. MIT Press. ISBN 978-0-262-01243-0.
  39. ^ Parker, DB (1985). Learning Logic: Casting the Cortex of the Human Brain in Silicon (Lógica del aprendizaje: moldeo 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.
  40. ^ 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-6.OCLC 21522159  .
  41. ^ Le Cun, Yann (1987). Modèles connexionnistes de l'apprentissage (Tesis de doctorado de Estado). París, Francia: Université Pierre et Marie Curie.
  42. ^ "El Premio Nobel de Física 2024". NobelPrize.org . Consultado el 13 de octubre de 2024 .
  43. ^ Sejnowski, Terrence J. (2018). La revolución del aprendizaje profundo . Cambridge, Massachusetts. Londres, Inglaterra: The MIT Press. ISBN. 978-0-262-03803-4.
  44. ^ 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.
  45. ^ Sutton, Richard S.; Barto, Andrew G. (2018). "11.1 TD-Gammon". Aprendizaje por refuerzo: una introducción (2.ª ed.). Cambridge, MA: MIT Press.
  46. ^ 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.
  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: pronóstico del futuro y comprensión del 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.S2CID12652643  .​
  48. ^ Chang, Franklin; Dell, Gary S.; Bock, Kathryn (2006). "Convertirse en sintáctico". Psychological Review . 113 (2): 234–272. doi :10.1037/0033-295x.113.2.234. PMID  16637761.
  49. ^ Janciauskas, Marius; Chang, Franklin (2018). "Input and Age-Dependent Variation in Second Language Learning: A Connectionist Account" (Introducción y variación dependiente de la edad en el aprendizaje de una segunda lengua: una explicación conexionista). Cognitive Science . 42 (Supl. Supl. 2): 519–554. doi :10.1111/cogs.12519. PMC 6001481 . PMID  28744901. 
  50. ^ "Decodificando el poder de la retropropagación: una inmersión profunda en las técnicas avanzadas de redes neuronales". janbasktraining.com . 30 de enero de 2024.
  51. ^ Fitz, Hartmut; Chang, Franklin (2019). "Los ERP del lenguaje 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". IEEE . Consultado el 25 de mayo de 2023 .

Lectura adicional

Enlaces externos