El descenso de gradiente estocástico (a menudo abreviado SGD ) es un método iterativo para optimizar una función objetivo con propiedades de suavidad adecuadas (por ejemplo, diferenciable o subdiferenciable ). Puede considerarse como una aproximación estocástica de la optimización del descenso del gradiente , ya que reemplaza el gradiente real (calculado a partir del conjunto de datos completo ) por una estimación del mismo (calculado a partir de un subconjunto de datos seleccionado al azar). Especialmente en problemas de optimización de alta dimensión , esto reduce la carga computacional, logrando iteraciones más rápidas en el comercio para una menor tasa de convergencia. [1]
Si bien la idea básica detrás de la aproximación estocástica se remonta al algoritmo de Robbins-Monro de la década de 1950, el descenso de gradiente estocástico se ha convertido en un método de optimización importante en el aprendizaje automático . [2]
Fondo
Tanto la estimación estadística como el aprendizaje automático consideran el problema de minimizar una función objetivo que tiene la forma de una suma:
donde el parámetro que minimiza se estima . Cada función de suma se asocia típicamente con el -ésima observación en el conjunto de datos (utilizado para entrenamiento).
En la estadística clásica, los problemas de minimización de suma surgen en mínimos cuadrados y en la estimación de máxima verosimilitud (para observaciones independientes). La clase general de estimadores que surgen como minimizadores de sumas se llama M-estimadores . Sin embargo, en las estadísticas, se ha reconocido desde hace mucho tiempo que exigir incluso la minimización local es demasiado restrictivo para algunos problemas de estimación de máxima verosimilitud. [3] Por lo tanto, los teóricos estadísticos contemporáneos a menudo consideran puntos estacionarios de la función de verosimilitud (o ceros de su derivada, la función de puntuación y otras ecuaciones de estimación ).
El problema de la minimización de la suma también surge para la minimización empírica del riesgo . En este caso,es el valor de la función de pérdida en-ésimo ejemplo, y es el riesgo empírico.
Cuando se usa para minimizar la función anterior, un método de descenso de gradiente estándar (o "por lotes") realizaría las siguientes iteraciones:
dónde es un tamaño de paso (a veces llamado tasa de aprendizaje en el aprendizaje automático).
En muchos casos, las funciones de suma tienen una forma simple que permite evaluaciones económicas de la función de suma y el gradiente de suma. Por ejemplo, en estadística, las familias exponenciales de un parámetro permiten evaluaciones de funciones económicas y evaluaciones de gradientes.
Sin embargo, en otros casos, evaluar el gradiente de suma puede requerir evaluaciones costosas de los gradientes de todas las funciones de suma. Cuando el conjunto de entrenamiento es enorme y no existen fórmulas simples, evaluar las sumas de gradientes se vuelve muy costoso, porque evaluar el gradiente requiere evaluar todos los gradientes de las funciones sumando. Para economizar el costo computacional en cada iteración, el descenso de gradiente estocástico muestrea un subconjunto de funciones sumando en cada paso. Esto es muy efectivo en el caso de problemas de aprendizaje automático a gran escala. [4]
Método iterativo
En el descenso de gradiente estocástico (o "en línea"), el verdadero gradiente de se aproxima mediante un gradiente en un solo ejemplo:
A medida que el algoritmo recorre el conjunto de entrenamiento, realiza la actualización anterior para cada ejemplo de entrenamiento. Se pueden realizar varias pasadas sobre el conjunto de entrenamiento hasta que el algoritmo converja. Si se hace esto, los datos se pueden barajar para cada pasada para evitar ciclos. Las implementaciones típicas pueden usar una tasa de aprendizaje adaptativa para que el algoritmo converja. [5]
En pseudocódigo, el descenso de gradiente estocástico se puede presentar de la siguiente manera:
- Elija un vector inicial de parámetros y tasa de aprendizaje .
- Repita hasta obtener un mínimo aproximado:
- Mezcla aleatoriamente ejemplos en el conjunto de entrenamiento.
- Para , hacer:
Un compromiso entre calcular el gradiente real y el gradiente en un solo ejemplo es calcular el gradiente frente a más de un ejemplo de entrenamiento (llamado "mini-lote") en cada paso. Esto puede funcionar significativamente mejor que el descenso de gradiente estocástico "verdadero" descrito, porque el código puede hacer uso de bibliotecas de vectorización en lugar de calcular cada paso por separado. También puede resultar en una convergencia más suave, ya que el gradiente calculado en cada paso se promedia en más ejemplos de entrenamiento.
La convergencia del descenso de gradiente estocástico se ha analizado utilizando las teorías de minimización convexa y aproximación estocástica . Brevemente, cuando las tasas de aprendizaje disminuir con una tasa adecuada, y sujeto a suposiciones relativamente leves, el descenso del gradiente estocástico converge casi con seguridad a un mínimo global cuando la función objetivo es convexa o pseudoconvexa , y de lo contrario converge casi con seguridad a un mínimo local. [6] [7] Esto es, de hecho, una consecuencia del teorema de Robbins-Siegmund . [8]
Ejemplo
Supongamos que queremos encajar en una línea recta. a un conjunto de entrenamiento con observaciones y las correspondientes respuestas estimadas usando mínimos cuadrados . La función objetivo a minimizar es:
La última línea del pseudocódigo anterior para este problema específico se convertirá en:
Tenga en cuenta que en cada iteración (también llamada actualización), solo el gradiente evaluado en un solo punto en lugar de evaluar en el conjunto de todas las muestras.
La diferencia clave en comparación con el descenso de gradiente estándar (por lotes) es que solo se usa una parte de los datos del conjunto de datos para calcular el paso, y la parte de los datos se selecciona al azar en cada paso.
Aplicaciones notables
El descenso de gradiente estocástico es un algoritmo popular para entrenar una amplia gama de modelos en aprendizaje automático , incluidas máquinas de vectores de soporte (lineales) , regresión logística (ver, por ejemplo, Vowpal Wabbit ) y modelos gráficos . [9] Cuando se combina con el algoritmo de retropropagación , es el algoritmo estándar de facto para entrenar redes neuronales artificiales . [10] Su uso también ha sido reportado en la comunidad Geofísica , específicamente para aplicaciones de Full Waveform Inversion (FWI). [11]
El descenso de gradiente estocástico compite con el algoritmo L-BFGS , [ cita requerida ] que también se usa ampliamente. El descenso de gradiente estocástico se ha utilizado desde al menos 1960 para entrenar modelos de regresión lineal , originalmente bajo el nombre ADALINE . [12]
Otro algoritmo de descenso de gradiente estocástico es el filtro adaptativo de mínimos cuadrados medios (LMS) .
Extensiones y variantes
Se han propuesto y utilizado muchas mejoras en el algoritmo básico de descenso de gradiente estocástico. En particular, en el aprendizaje automático, la necesidad de establecer una tasa de aprendizaje (tamaño de paso) se ha reconocido como problemática. Establecer este parámetro demasiado alto puede hacer que el algoritmo diverja; establecerlo demasiado bajo hace que la convergencia sea más lenta. [13] Una extensión conceptualmente simple del descenso de gradiente estocástico hace que la tasa de aprendizaje sea una función decreciente η t del número de iteración t , dando un programa de tasa de aprendizaje , de modo que las primeras iteraciones causan grandes cambios en los parámetros, mientras que las últimas solo lo hacen sintonia FINA. Estos programas se conocen desde el trabajo de MacQueen sobre la agrupación de k- medias . [14] Spall ofrece una guía práctica sobre la elección del tamaño de paso en varias variantes de SGD. [15]
Actualizaciones implícitas (ISGD)
Como se mencionó anteriormente, el descenso de gradiente estocástico clásico es generalmente sensible a la tasa de aprendizaje η . La convergencia rápida requiere grandes tasas de aprendizaje, pero esto puede inducir inestabilidad numérica. El problema se puede resolver en gran medida [16] considerando actualizaciones implícitas mediante las cuales el gradiente estocástico se evalúa en la siguiente iteración en lugar de la actual:
Esta ecuación está implícita ya que aparece en ambos lados de la ecuación. Es una forma estocástica del método de gradiente proximal ya que la actualización también se puede escribir como:
Como ejemplo, considere mínimos cuadrados con características y observaciones . Deseamos resolver:
dónde indica el producto interior. Tenga en cuenta quepodría tener "1" como primer elemento para incluir una intersección. El descenso de gradiente estocástico clásico procede de la siguiente manera:
dónde se muestrea uniformemente entre 1 y . Aunque la convergencia teórica de este procedimiento ocurre bajo supuestos relativamente moderados, en la práctica el procedimiento puede ser bastante inestable. En particular, cuando está mal especificado para que tiene valores propios absolutos grandes con alta probabilidad, el procedimiento puede divergir numéricamente en unas pocas iteraciones. Por el contrario, el descenso de gradiente estocástico implícito (abreviado como ISGD) se puede resolver en forma cerrada como:
Este procedimiento permanecerá numéricamente estable virtualmente para todos ya que la tasa de aprendizaje ahora está normalizada. Tal comparación entre el descenso de gradiente estocástico clásico e implícito en el problema de mínimos cuadrados es muy similar a la comparación entre mínimos cuadrados medios (LMS) y filtro de mínimos cuadrados medios normalizados (NLMS) .
Aunque una solución de forma cerrada para ISGD solo es posible en mínimos cuadrados, el procedimiento se puede implementar de manera eficiente en una amplia gama de modelos. Específicamente, suponga que depende de solo a través de una combinación lineal con características , para que podamos escribir , dónde puede depender de también pero no en excepto a través de . Los mínimos cuadrados obedecen a esta regla, al igual que la regresión logística y la mayoría de los modelos lineales generalizados . Por ejemplo, en mínimos cuadrados,, y en regresión logística , dónde es la función logística . En la regresión de Poisson ,, y así.
En tales entornos, ISGD simplemente se implementa de la siguiente manera. Dejar, dónde es escalar. Entonces, ISGD es equivalente a:
El factor de escala se puede encontrar a través del método de bisección, ya que en la mayoría de los modelos regulares, como los modelos lineales generalizados antes mencionados, la función está disminuyendo y, por lo tanto, los límites de búsqueda de están .
Impulso
Otras propuestas incluyen el método del impulso , que apareció en el artículo de Rumelhart , Hinton y Williams sobre el aprendizaje por retropropagación. [17] El descenso de gradiente estocástico con impulso recuerda la actualización Δ w en cada iteración y determina la siguiente actualización como una combinación lineal del gradiente y la actualización anterior: [18] [19]
que conduce a:
donde el parámetro que minimiza debe estimarse ,es un tamaño de paso (a veces llamado tasa de aprendizaje en el aprendizaje automático) yes un factor de disminución exponencial entre 0 y 1 que determina la contribución relativa del gradiente actual y los gradientes anteriores al cambio de peso.
El nombre de impulso proviene de una analogía con el impulso en física: el vector de peso, considerada como una partícula que viaja a través del espacio de parámetros, [17] incurre en aceleración por el gradiente de la pérdida (" fuerza "). A diferencia del descenso de gradiente estocástico clásico, tiende a seguir viajando en la misma dirección, evitando oscilaciones. Momentum ha sido utilizado con éxito por científicos informáticos en el entrenamiento de redes neuronales artificiales durante varias décadas. [20]
Promediando
El descenso de gradiente estocástico promedio , inventado de forma independiente por Ruppert y Polyak a fines de la década de 1980, es un descenso de gradiente estocástico ordinario que registra un promedio de su vector de parámetros a lo largo del tiempo. Es decir, la actualización es la misma que para el descenso de gradiente estocástico ordinario, pero el algoritmo también realiza un seguimiento de [21]
- .
Cuando se realiza la optimización, este vector de parámetros promediado ocupa el lugar de w .
AdaGrad
AdaGrad (para el algoritmo de gradiente adaptativo ) es un algoritmo de descenso de gradiente estocástico modificado con tasa de aprendizaje por parámetro , publicado por primera vez en 2011. [22] De manera informal, esto aumenta la tasa de aprendizaje para los parámetros más dispersos y disminuye la tasa de aprendizaje para los que son menos dispersos. . Esta estrategia a menudo mejora el rendimiento de la convergencia sobre el descenso de gradiente estocástico estándar en entornos donde los datos son escasos y los parámetros escasos son más informativos. Ejemplos de tales aplicaciones incluyen el procesamiento del lenguaje natural y el reconocimiento de imágenes. [22] Todavía tiene una tasa de aprendizaje base η , pero esta se multiplica por los elementos de un vector { G j , j } que es la diagonal de la matriz del producto exterior.
dónde , el gradiente, en la iteración τ . La diagonal está dada por
- .
Este vector se actualiza después de cada iteración. La fórmula para una actualización es ahora
- [a]
o, escrito como actualizaciones por parámetro,
Cada { G ( i , i ) } da lugar a un factor de escala para la tasa de aprendizaje que se aplica a un solo parámetro w i . Dado que el denominador en este factor,es la norma ℓ 2 de las derivadas anteriores, las actualizaciones extremas de parámetros se amortiguan, mientras que los parámetros que obtienen pocas o pequeñas actualizaciones reciben tasas de aprendizaje más altas. [20]
Aunque está diseñado para problemas convexos , AdaGrad se ha aplicado con éxito a la optimización no convexa. [23]
RMSProp
RMSProp (para Root Mean Square Propagation) también es un método en el que la tasa de aprendizaje se adapta para cada uno de los parámetros. La idea es dividir la tasa de aprendizaje de un peso por un promedio móvil de las magnitudes de gradientes recientes para ese peso. [24] Entonces, primero se calcula el promedio móvil en términos de medias cuadradas,
dónde, es el factor de olvido.
Y los parámetros se actualizan como,
RMSProp ha demostrado una buena adaptación de la tasa de aprendizaje en diferentes aplicaciones. RMSProp puede verse como una generalización de Rprop y es capaz de trabajar con mini lotes en lugar de solo lotes completos. [25]
Adán
Adam [26] (abreviatura de Adaptive Moment Estimation) es una actualización del optimizador RMSProp . En este algoritmo de optimización, se utilizan promedios de ejecución tanto de los gradientes como de los segundos momentos de los gradientes. Parámetros dados y una función de pérdida , dónde indexa la iteración de entrenamiento actual (indexada en ), La actualización de los parámetros de Adam viene dada por:
dónde es un pequeño escalar (p. ej. ) utilizado para evitar la división por 0, y (por ejemplo, 0,9) y (por ejemplo, 0,999) son los factores de olvido para gradientes y segundos momentos de gradientes, respectivamente. La cuadratura y el enraizamiento cuadrado se realizan por elementos.
Búsqueda de línea de retroceso
La búsqueda de la línea de retroceso es otra variante del descenso de gradiente. Todo lo siguiente se obtiene del enlace mencionado. Se basa en una condición conocida como condición de Armijo-Goldstein. Ambos métodos permiten que las tasas de aprendizaje cambien en cada iteración; sin embargo, la forma del cambio es diferente. La búsqueda de línea de retroceso utiliza evaluaciones de funciones para verificar la condición de Armijo y, en principio, el ciclo en el algoritmo para determinar las tasas de aprendizaje puede ser largo y desconocido de antemano. El SGD adaptativo no necesita un bucle para determinar las tasas de aprendizaje. Por otro lado, el SGD adaptativo no garantiza la "propiedad de descenso", de la que disfruta la búsqueda de la línea Backtracking, que es quepara todos n. Si el gradiente de la función de costo es globalmente continuo de Lipschitz, con constante L de Lipschitz, y la tasa de aprendizaje se elige del orden de 1 / L, entonces la versión estándar de SGD es un caso especial de búsqueda de línea de retroceso.
Métodos de segundo orden
Un análogo estocástico del algoritmo estándar (determinista) de Newton-Raphson (un método de "segundo orden") proporciona una forma asintóticamente óptima o casi óptima de optimización iterativa en el contexto de la aproximación estocástica [ cita requerida ] . Byrd, Hansen, Nocedal y Singer desarrollaron un método que utiliza mediciones directas de las matrices hessianas de los sumandos en la función de riesgo empírico. [27] Sin embargo, la determinación directa de las matrices hessianas necesarias para la optimización puede no ser posible en la práctica. Spall y otros proporcionan métodos prácticos y teóricamente sólidos para versiones de segundo orden de SGD que no requieren información hessiana directa. [28] [29] [30] (Ruppert proporciona un método menos eficiente basado en diferencias finitas, en lugar de perturbaciones simultáneas. [31] ) Estos métodos que no requieren información hessiana directa se basan en los valores de los sumandos en el por encima de la función de riesgo empírico o los valores de los gradientes de los sumandos (es decir, las entradas del SGD). En particular, la optimalidad de segundo orden es alcanzable asintóticamente sin el cálculo directo de las matrices hessianas de los sumandos en la función empírica de riesgo.
Notas
- ^ es el producto de elementos .
Ver también
- Búsqueda de línea de retroceso
- Descenso de coordenadas : cambia una coordenada a la vez, en lugar de un ejemplo
- Clasificador lineal
- Aprendizaje automático en línea
- Escalada estocástica
Referencias
- ^ Bottou, Léon ; Bousquet, Olivier (2012). "Las compensaciones del aprendizaje a gran escala" . En Sra, Suvrit; Nowozin, Sebastian; Wright, Stephen J. (eds.). Optimización para aprendizaje automático . Cambridge: MIT Press. págs. 351–368. ISBN 978-0-262-01646-9.
- ^ Bottou, Léon (1998). "Algoritmos online y aproximaciones estocásticas". Aprendizaje en línea y redes neuronales . Prensa de la Universidad de Cambridge. ISBN 978-0-521-65263-6.
- ^ Ferguson, Thomas S. (1982). "Una estimación de máxima verosimilitud inconsistente". Revista de la Asociación Estadounidense de Estadística . 77 (380): 831–834. doi : 10.1080 / 01621459.1982.10477894 . JSTOR 2287314 .
- ^ Bottou, Léon ; Bousquet, Olivier (2008). Las ventajas y desventajas del aprendizaje a gran escala . Avances en sistemas de procesamiento de información neuronal . 20 . págs. 161-168.
- ^ Murphy, Kevin (2021). Aprendizaje automático probabilístico: una introducción . Aprendizaje automático probabilístico: una introducción . MIT Press . Consultado el 10 de abril de 2021 .
- ^ Bottou, Léon (1998). "Algoritmos online y aproximaciones estocásticas". Aprendizaje en línea y redes neuronales . Prensa de la Universidad de Cambridge. ISBN 978-0-521-65263-6.
- ^ Kiwiel, Krzysztof C. (2001). "Convergencia y eficiencia de los métodos de subgradiente para la minimización cuasiconvexa". Programación Matemática, serie A . 90 (1). Berlín, Heidelberg: Springer. págs. 1–25. doi : 10.1007 / PL00011414 . ISSN 0025-5610 . Señor 1819784 .
- ^ Robbins, Herbert ; Siegmund, David O. (1971). "Un teorema de convergencia para casi supermartingales no negativas y algunas aplicaciones". En Rustagi, Jagdish S. (ed.). Optimización de métodos en estadística . Prensa académica. ISBN 0-12-604550-X.
- ^ Jenny Rose Finkel, Alex Kleeman, Christopher D. Manning (2008). Análisis de campos aleatorios condicional, basado en características y eficiente . Proc. Reunión Anual de la ACL.
- ^ LeCun, Yann A., et al. "Backprop eficiente". Redes neuronales: trucos del oficio. Springer Berlín Heidelberg, 2012. 9-48
- ^ Díaz, Esteban y Guitton, Antoine. "Inversión rápida de forma de onda completa con diezmado aleatorio". Resúmenes ampliados del programa técnico de la SEG, 2011. 2804-2808
- ^ Avi Pfeffer. "CS181 Lecture 5 - Perceptrons" (PDF) . Universidad Harvard.[ enlace muerto permanente ]
- ^ Buen amigo, Ian ; Bengio, Yoshua; Courville, Aaron (2016). Aprendizaje profundo . MIT Press. pag. 291. ISBN 978-0262035613.
- ^ Citado por Oscurece, Christian; Moody, John (1990). Agrupación rápida adaptativa de k-medias: algunos resultados empíricos . Conf. Conjunta internacional sobre redes neuronales (IJCNN). IEEE. doi : 10.1109 / IJCNN.1990.137720 .
- ^ Spall, JC (2003). Introducción a la búsqueda y optimización estocásticas: estimación, simulación y control . Hoboken, Nueva Jersey: Wiley. págs. Secciones 4.4, 6.6 y 7.5. ISBN 0-471-33052-3.
- ^ Toulis, Panos; Airoldi, Edoardo (2017). "Propiedades asintóticas y de muestra finita de estimadores basados en gradientes estocásticos". Annals of Statistics . 45 (4): 1694-1727. arXiv : 1408.2923 . doi : 10.1214 / 16-AOS1506 . S2CID 10279395 .
- ^ a b Rumelhart, David E .; Hinton, Geoffrey E .; Williams, Ronald J. (8 de octubre de 1986). "Aprendizaje de representaciones retropropagando errores". Naturaleza . 323 (6088): 533–536. Código Bibliográfico : 1986Natur.323..533R . doi : 10.1038 / 323533a0 . S2CID 205001834 .
- ^ Sutskever, Ilya; Martens, James; Dahl, George; Hinton, Geoffrey E. (junio de 2013). Sanjoy Dasgupta y David Mcallester (ed.). Sobre la importancia de la inicialización y el impulso en el aprendizaje profundo (PDF) . En Actas de la 30ª conferencia internacional sobre aprendizaje automático (ICML-13). 28 . Atlanta, Georgia. págs. 1139-1147 . Consultado el 14 de enero de 2016 .
- ^ Sutskever, Ilya (2013). Entrenamiento de redes neuronales recurrentes (PDF) (Ph.D.). Universidad de Toronto. pag. 74.
- ^ a b Zeiler, Matthew D. (2012). "ADADELTA: Un método de tasa de aprendizaje adaptativo". arXiv : 1212,5701 [ cs.LG ].
- ^ Polyak, Boris T .; Juditsky, Anatoli B. (1992). "Aceleración de la aproximación estocástica por promediado" (PDF) . SIAM J. Control Optim . 30 (4): 838–855. doi : 10.1137 / 0330046 .
- ^ a b Duchi, John; Hazan, Elad; Cantante, Yoram (2011). "Métodos adaptativos de subgrado para el aprendizaje en línea y la optimización estocástica" (PDF) . JMLR . 12 : 2121–2159.
- ^ Gupta, Maya R .; Bengio, Samy; Weston, Jason (2014). "Formación de clasificadores altamente multiclase" (PDF) . JMLR . 15 (1): 1461–1492.
- ^ Hinton, Geoffrey . "Lecture 6e rmsprop: Divida el gradiente por un promedio móvil de su magnitud reciente" (PDF) . pag. 26 . Consultado el 19 de marzo de 2020 .
- ^ Hinton, Geoffrey . "Lecture 6e rmsprop: Divida el gradiente por un promedio móvil de su magnitud reciente" (PDF) . pag. 29 . Consultado el 19 de marzo de 2020 .
- ^ Kingma, Diederik; Ba, Jimmy (2014). "Adam: un método de optimización estocástica". arXiv : 1412,6980 [ cs.LG ].
- ^ Byrd, RH; Hansen, SL; Nocedal, J .; Cantante, Y. (2016). "Un método estocástico cuasi-Newton para la optimización a gran escala". Revista SIAM de Optimización . 26 (2): 1008–1031. arXiv : 1401.7020 . doi : 10.1137 / 140954362 . S2CID 12396034 .
- ^ Spall, JC (2000). "Aproximación estocástica adaptativa por el método de perturbación simultánea". Transacciones IEEE sobre control automático . 45 (10): 1839-1853. doi : 10.1109 / TAC.2000.880982 .
- ^ Spall, JC (2009). "Mecanismos de retroalimentación y ponderación para mejorar las estimaciones jacobianas en el algoritmo adaptativo de perturbación simultánea". Transacciones IEEE sobre control automático . 54 (6): 1216-1229. doi : 10.1109 / TAC.2009.2019793 .
- ^ Bhatnagar, S .; Prasad, HL; Prashanth, LA (2013). Algoritmos recursivos estocásticos para optimización: métodos de perturbación simultánea . Londres: Springer. ISBN 978-1-4471-4284-3.
- ^ Ruppert, D. (1985). "Una versión de Newton-Raphson del procedimiento multivariante de Robbins-Monro" . Annals of Statistics . 13 (1): 236–245. doi : 10.1214 / aos / 1176346589 .
Otras lecturas
- Bottou, Léon (2004), "Stochastic Learning" , Advanced Lectures on Machine Learning , LNAI, 3176 , Springer, págs. 146-168, ISBN 978-3-540-23122-6
- Buduma, Nikhil; Locascio, Nicholas (2017), "Beyond Gradient Descent" , Fundamentals of Deep Learning: Designing Next-Generation Machine Intelligence Algorithms , O'Reilly
- LeCun, Yann A .; Bottou, Léon; Orr, Genevieve B .; Müller, Klaus-Robert (2012), "Efficient BackProp" , Neural Networks: Tricks of the Trade , Springer, págs. 9–48, ISBN 978-3-642-35288-1
- Spall, James C. (2003), Introducción a la búsqueda y optimización estocásticas , Wiley , ISBN 978-0-471-33052-3
enlaces externos
- Usando descenso de gradiente estocástico en C ++, Boost, Ublas para regresión lineal
- Algoritmos de aprendizaje automático
- "Gradient Descent, cómo aprenden las redes neuronales" . 3Azul1Marrón . 16 de octubre de 2017 - a través de YouTube .
- Goh (4 de abril de 2017). "Por qué Momentum realmente funciona" . Destilar . Documento interactivo que explica el impulso.