¿Por qué usar el descenso de gradiente con redes neuronales?


22
  1. Al entrenar una red neuronal usando el algoritmo de propagación hacia atrás, el método de descenso de gradiente se usa para determinar las actualizaciones de peso. Mi pregunta es: en lugar de utilizar el método de descenso de gradiente para localizar lentamente el punto mínimo con respecto a un cierto peso, ¿por qué no establecemos la derivada , y encuentra el valor de peso que minimiza el error?re(Error)rew=0 0w

  2. Además, ¿por qué estamos seguros de que la función de error en la propagación inversa será mínima? ¿No puede resultar que la función de error es un máximo en su lugar? ¿Existe una propiedad específica de las funciones de aplastamiento que garantice que una red con cualquier número de nodos ocultos con pesos arbitrarios y vectores de entrada siempre dará una función de error que tiene algunos mínimos?


2
Todos los títulos de mayúsculas no son estándar aquí (mire a su alrededor) y aquí y en otros lugares ampliamente desaprobados como GRITOS no deseados.
Nick Cox

@Nick Cox mis disculpas
Minaj

Es interesante ver que cuando se usan variables ocultas o latentes en los modelos de Machine Learning, la optimización (¿casi?) Siempre se vuelve no lineal, no convexa y simplemente más difícil de optimizar.
Vladislavs Dovgalecs

Respuestas:


30
  1. Porque no podemos La superficie de optimización en función de los pesos w no es lineal y no existe una solución de forma cerrada para d S ( w )S(w)w.reS(w)rew=0 0

  2. La pendiente del gradiente, por definición, desciende. Si llega a un punto estacionario después de descender, debe ser un mínimo (local) o un punto de silla, pero nunca un máximo local.


Si la función fuera cóncava, el gradiente decente descendería para siempre, ya que el único camino a seguir es hacia abajo. ¿Está diciendo que se garantiza que la superficie de error no sea cóncava? Además, no está claro para mí por qué la derivada de la función de error no tendría una solución de forma cerrada. No es el error de la forma donde K es una constante? Esa función parece bastante diferenciable y la expresión resultante es analíticamente solucionable. Por favor, ayúdame a aclarar, ya que hay algo que claramente no veo. K-11+miΣwX
Minaj

8
Esto no puede suceder, porque todas las funciones de error comúnmente utilizadas tienen un mínimo teórico estricto de 0. Los errores nunca pueden volverse negativos.
Marc Claesen

2
Otra posible interpretación de 1. es "Eso es exactamente lo que hacemos, la ecuación se resuelve utilizando el gradiente de descenso".
Matthew Drury el

1
claramente hay una forma cerrada para el gradiente (así es como hacemos el descenso del gradiente de manera eficiente). El problema no es raíz cerrada de gradiente = 0
seanv507

@ seanv507 eso es lo que pretendía decir, perdón por la confusión. Edité mi publicación.
Marc Claesen

10

Con respecto a la respuesta de Marc Claesen, creo que el descenso del gradiente podría detenerse en un máximo local en situaciones en las que se inicializa a un máximo local o simplemente termina allí debido a la mala suerte o un parámetro de velocidad desajustado. El máximo local tendría un gradiente cero y el algoritmo pensaría que había convergido. Es por eso que a menudo ejecuto múltiples iteraciones desde diferentes puntos de partida y hago un seguimiento de los valores en el camino.


1
¡Edité tu comentario del preámbulo, ya que parece que ya estás atrayendo algunos votos positivos! Bienvenido al sitio!
Matthew Drury el

¡Gracias! No estaba seguro de si debería ser un comentario o una respuesta y no quería que mi primera respuesta se rechazara al olvido solo por eso.
Jared Becksfort

6

En los métodos de tipo Newton, en cada paso se resuelve re(error)rew=0 0

  • Hay que tratar con segundas derivadas (el Hessian, específicamente los productos Hessian-vector).
  • El "paso de resolución" es muy costoso desde el punto de vista computacional: en el tiempo que lleva resolver, uno podría haber hecho muchas iteraciones de descenso de gradiente.

Si uno usa un método de Krylov para la solución de Hesse, y no utiliza un buen preacondicionador para el Hesse, entonces los costos se equilibran aproximadamente: las iteraciones de Newton toman mucho más tiempo pero progresan más, de tal manera que el tiempo total es aproximadamente igual o más lento que el descenso en gradiente. Por otro lado, si uno tiene un buen preacondicionador de Hesse, entonces el método de Newton gana a lo grande.

Dicho esto, los métodos Newton-Krylov de la región de confianza son el estándar de oro en la optimización moderna a gran escala, y solo esperaría que su uso aumente en las redes neuronales en los próximos años, ya que las personas quieren resolver problemas cada vez más grandes. (y también a medida que más personas en optimización numérica se interesan en el aprendizaje automático)


Creo que estás equivocado. Las personas han estado usando nnets desde los años 90 y conocen muy bien los métodos de segundo orden. El problema es precisamente que las redes son exitosas cuando hay muchos datos, que luego admiten muchos parámetros, en cuyo caso las restricciones de tiempo y memoria de los métodos de segundo orden no son efectivas. ver, por ejemplo, leon.bottou.org/publications/pdf/compstat-2010.pdf
seanv507 el

@ seanv507 En realidad no. La discusión de los métodos de segundo orden en ese documento tiene muchos defectos, ya que suponen que uno debe construir e invertir todo el denso de Hesse para usar métodos de segundo orden. Esto no es así como se hace en la optimización numérica moderna a gran escala. En los métodos modernos de segundo orden, uno calcula la acción del hessiano en los vectores mediante la resolución de problemas adjuntos, y los utiliza dentro de un solucionador iterativo (Krylov). Generalmente, la primera iteración interna devuelve la dirección del gradiente, y las iteraciones posteriores la mejoran.
Nick Alger

Aunque no soy un fanático particular de ese documento, no creo que sea cierto. Anteriormente ha discutido / implementado aproximaciones diagonales y de rango reducido de hessian. ¿Y qué hay de la multiplicación exacta rápida en papel de pearlmutter de 1994 por hessian?
seanv507

Correcto. Una vez que tenga aplicaciones rápidas de Hesse (ya sea a través de Pearlmutter o lo que sea que tenga), puede hacer soluciones inexactas de Hesse con métodos de Krylov como el gradiente conjugado. Al hacer esto, uno transfiere de manera efectiva las dificultades de mal acondicionamiento del optimizador iterativo no lineal al solucionador iterativo de álgebra lineal, donde tiene una gran cantidad de maquinaria y técnicas de preacondicionamiento disponibles para tratar el problema. Una buena referencia es la sección sobre la región de confianza CG-Steihaug en el clásico "Optimización numérica" ​​de Nocedal y Wright.
Nick Alger

Mi punto es que esta multiplicación por gradientes hessianos y conjugados era conocida en la comunidad nnets desde 1994. Creo que definitivamente hay una razón por la cual se usa SGD en lugar de métodos de segundo orden (y ciertamente me gustaría una resolución clara de por qué esto es )
seanv507
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.