¿Cómo puede el descenso de gradiente estocástico evitar el problema de un mínimo local?

19

Sé que el descenso de gradiente estocástico tiene un comportamiento aleatorio, pero no sé por qué.
¿Hay alguna explicación sobre esto?

Sol al mediodía
fuente
10
¿Qué tiene que ver tu pregunta con tu título?
Neil G

Respuestas:

22

El algoritmo de gradiente estocástico (SG) se comporta como un algoritmo de recocido simulado (SA), donde la tasa de aprendizaje de la SG está relacionada con la temperatura de SA. La aleatoriedad o el ruido introducido por SG permite escapar de los mínimos locales para alcanzar un mínimo mejor. Por supuesto, depende de qué tan rápido disminuya la tasa de aprendizaje. Lea la sección 4.2 del aprendizaje estocástico de gradiente en redes neuronales (pdf) , donde se explica con más detalle.

clara
fuente
44
No sobrepase también la Sección 4.1, donde el segundo teorema es para un caso limitado de funciones no convexas, diciendo que solo converge (con muestras infinitas) en algún punto con gradiente 0. Puede que no sea un mínimo global o incluso puede ser un máximo . SGD es más interesante por razones más prácticas, como el aprendizaje distribuido, no es seguro que "evitará" el mínimo local.
nulo
2

En el descenso de gradiente estocástico, los parámetros se estiman para cada observación, a diferencia de la muestra completa en descenso de gradiente regular (descenso de gradiente discontinuo). Esto es lo que le da mucha aleatoriedad. El camino del descenso de gradiente estocástico vaga por más lugares y, por lo tanto, es más probable que "salte" de un mínimo local y encuentre un mínimo global (Nota *). Sin embargo, el descenso de gradiente estocástico aún puede atascarse en el mínimo local.

Nota: Es común mantener constante la tasa de aprendizaje, en este caso el descenso de gradiente estocástico no converge; simplemente vaga por el mismo punto. Sin embargo, si la tasa de aprendizaje disminuye con el tiempo, por ejemplo, está inversamente relacionada con el número de iteraciones, entonces el descenso del gradiente estocástico convergería.

Akavall
fuente
No es cierto que el descenso de gradiente estocástico no converja realmente y solo se pregunta en un cierto punto. Ese sería el caso si la tasa de aprendizaje se mantuviera constante. Sin embargo, las tasas de aprendizaje tienden a cero porque de esta manera, cuando el algoritmo está cerca del mínimo de una función convexa, deja de oscilar y converge. La clave de la prueba de convergencia del gradiente estocástico son las condiciones impuestas a la serie de tasas de aprendizaje. Véanse las ecuaciones (6) y (27) del artículo original de Robbins y Monro.
clara
2

Como ya se mencionó en las respuestas anteriores, el descenso de gradiente estocástico tiene una superficie de error mucho más ruidosa ya que está evaluando cada muestra de forma iterativa. Mientras está dando un paso hacia el mínimo global en el descenso del gradiente por lotes en cada época (pase sobre el conjunto de entrenamiento), los pasos individuales de su gradiente de descenso del gradiente estocástico no siempre deben apuntar hacia el mínimo global dependiendo de la muestra evaluada.

Para visualizar esto usando un ejemplo bidimensional, aquí hay algunas figuras y dibujos de la clase de aprendizaje automático de Andrew Ng.

Primer descenso en gradiente:

ingrese la descripción de la imagen aquí

Segundo, descenso de gradiente estocástico:

ingrese la descripción de la imagen aquí

El círculo rojo en la figura inferior ilustrará que el descenso de gradiente estocástico "continuará actualizándose" en algún lugar del área alrededor del mínimo global si está utilizando una tasa de aprendizaje constante.

Entonces, aquí hay algunos consejos prácticos si está utilizando el descenso de gradiente estocástico:

1) baraja el conjunto de entrenamiento antes de cada época (o iteración en la variante "estándar")

2) use una tasa de aprendizaje adaptativo para "recocer" más cerca del mínimo global


fuente
¿Por qué querrías barajar el conjunto de entrenamiento antes de cada época? El algoritmo de SGD selecciona los ejemplos de entrenamiento al azar.
Vladislavs Dovgalecs
La combinación es básicamente una forma de hacer que elija esas muestras de entrenamiento al azar. En mis implementaciones, generalmente barajo el conjunto de entrenamiento antes de cada época y luego simplemente forrecorro el conjunto barajado
2
Hm, en Wikipedia, el algoritmo SGD se describe como "sin reemplazo", sin embargo, Bottou lo describe como lo hizo (Bottou, Léon. "Aprendizaje automático a gran escala con descenso de gradiente estocástico". Procedimientos de COMPSTAT'2010. Physica-Verlag HD, 2010. 177-186.), Y creo que aquí tendería a confiar en Bottou más que en esta entrada de Wikipedia.
44
@xeon Echa un vistazo a este documento , que argumenta que el muestreo sin reemplazo es mejor. Tengo entendido que sin reemplazo tiende a ser empíricamente superior, pero los análisis teóricos no estuvieron disponibles hasta hace relativamente poco.
Dougal
1
@xeon Acabo de mirar mis diapositivas en PDF del curso de Andrew Ng, y parece que lo describió como en Wikipedia (la variante "sin reemplazo") no como Bottou. Subí una captura de pantalla aquí