10 votos

¿Por qué utilizamos el descenso de gradiente en el algoritmo de retropropagación?

El enfoque común para el entrenamiento de redes neuronales, hasta donde yo sé, es el algoritmo de retropropagación, que utiliza el descenso de gradiente para reducir el error.

(i) ¿Por qué hay que utilizar una tasa de aprendizaje fija / recocido simulado en lugar de, por ejemplo, la regla de Armijo?

(ii) ¿Existe una buena razón para utilizar el descenso por gradiente en este caso, o simplemente ha crecido históricamente? Especialmente, ¿es el descenso de gradiente en este caso favorable sobre algoritmos como el de Newton (Quasi-Newton, Newton globalizado)?

11voto

TenaliRaman Puntos 2196

Algoritmo de retropropagación ES El descenso de gradiente y la razón por la que se suele restringir a la primera derivada (en lugar de Newton, que requiere hessian) es porque la aplicación de la regla de la cadena en la primera derivada es lo que nos da la "retropropagación" en el algoritmo de retropropagación. Ahora bien, Newton es problemático (complejo y difícil de calcular), pero no nos impide utilizar métodos Quasi-newton, especialmente BFGS (creo que muchos paquetes de software de redes neuronales ya utilizan BFGS como parte de su entrenamiento en estos días).

En cuanto a la tasa de aprendizaje fija, no es necesario que sea fija en absoluto. Hay artículos que se remontan al año 95 que informan sobre esto (busque "adaptive learning rate backpropagation").

3voto

Vishwas Lathi Puntos 59

Creo que hay un error en la pregunta al decir el uso del "descenso de gradiente" en el algoritmo de retropropagación, son dos cosas completamente diferentes, déjame aclararte sus definiciones:

Backpropogation es una técnica eficaz que proporciona un método computacionalmente eficiente para evaluar las derivadas en una red. El término retropropagación se utiliza específicamente para describir la evaluación de las derivadas. Ahora bien, estas derivadas se utilizan para realizar ajustes en los pesos, la técnica más sencilla es descenso de gradiente .

Es importante reconocer que las dos etapas son distintas. Así, la primera etapa, es decir, la propagación de errores hacia atrás a través de la red (es decir, la retropropagación) para evaluar las derivadas, puede aplicarse a muchos otros tipos de redes y no sólo al perceptrón multicapa. Del mismo modo, la segunda etapa de ajuste de pesos utilizando las derivadas calculadas puede abordarse utilizando una variedad de esquemas de optimización, muchos de los cuales son sustancialmente más potentes que el simple descenso de gradiente, como los métodos que tienen tasas de aprendizaje adaptativas, por ejemplo, técnicas como Nestrov mommentum, Adam, etc. Espero que esto responda a la primera parte de la pregunta.

Ahora hay definitivamente una buena razón para usar el descenso de gradiente o cualquier otro algoritmo con tasa de aprendizaje adaptable sobre los métodos de segundo orden como Método de Newton La aplicación del método de Newton para el entrenamiento de grandes redes neuronales está limitada por la gran cantidad de carga computacional que impone. El número de elementos de la matriz hessiana es el cuadrado del número de parámetros, por lo que con k parámetros (e incluso para redes neuronales muy pequeñas el número de parámetros k puede ser de millones), el método de Newton requeriría la inversión de una matriz k × k con una complejidad computacional de O(k^3). Además, como los parámetros cambiarán con cada actualización, el hessiano inverso debe calcularse en cada iteración de entrenamiento. En consecuencia, sólo pueden practicarse redes con un número muy pequeño de parámetros se pueden entrenar de forma práctica mediante el método de Newton

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X