¿Cuáles son las desventajas de tener un tamaño de paso constante para el Descenso de gradiente estocástico?

Desafortunadamente, el uso de tamaños de paso constantes en el descenso de gradiente estocástico (SGD) generalmente no garantiza la convergencia al óptimo incluso para objetivos agradables (por ejemplo, suave y fuertemente convexo), ya que el ruido de los gradientes estocásticos generalmente le proporcionará iteraciones que se mueven demasiado. cerca del óptimo (en contraste, para gradientes exactos, la magnitud se acercará a cero a medida que se acerque al óptimo, de modo que los tamaños de paso constantes puedan funcionar, vea ¿Cuáles son las desventajas de tener un tamaño de paso constante para el Descenso de gradiente por lotes? )

De hecho, la teoría generalmente establece que es necesario reducir el tamaño de los pasos para lograr la convergencia (en expectativa) con SGD. Esto normalmente se refleja en las condiciones de aproximación estocástica [matemáticas] \ sum_t \ gamma_t = \ infty [/ matemáticas] y [matemáticas] \ sum_t \ gamma_t ^ 2 <\ infty [/ matemáticas] en los tamaños de paso (positivos) [matemáticas] \ gamma_t [/ math]. Esto garantiza que la variación de las actualizaciones se reduzca hacia el final (segunda condición), pero no demasiado pequeña para que pueda converger al óptimo (primera condición).

En la práctica, estas condiciones a menudo son limitantes, ya que el tamaño del paso puede decaer a cero muy rápidamente y la optimización se atasca, por lo que es bastante común mantener un tamaño de paso grande / constante y decaerlo de vez en cuando (por ejemplo, después un paso por encima de su conjunto de datos en el aprendizaje automático. En el aprendizaje profundo, las personas a veces confían en el error de validación para decidir cuándo disminuirlo).

Dicho esto, también puede mostrar que ejecutar SGD con un tamaño de paso constante puede acercarlo bastante al óptimo, y de hecho, la distancia al óptimo (en valores de función) será proporcional al tamaño del paso (y a la varianza de los gradientes), por lo que es razonable ejecutar SGD con un tamaño de paso constante hasta que casi converja, luego reducir a la mitad el tamaño del paso, alcanzar la convergencia nuevamente y así sucesivamente. Una alternativa para reducir el tamaño de los pasos es reducir la varianza de los gradientes, por ejemplo, utilizando mini lotes cada vez más grandes. Consulte [1606.04838] Métodos de optimización para el aprendizaje automático a gran escala para obtener una descripción general.

En algunos casos, promediar las estimaciones de sus parámetros (consulte ¿Cómo funciona el Decente gradiente estocástico promediado (ASGD)?) Puede ayudarlo a lograr una mejor tasa de convergencia al usar tamaños de paso constantes, en particular cuando se usa la pérdida al cuadrado y la pérdida logística (para el este último, se necesita una regla de actualización modificada) [1].

En el caso de la minimización empírica del riesgo en un conjunto de datos finito (típico en el aprendizaje automático), existen variantes de SGD que intentan usar información pasada para reducir la varianza, y esto también le permite usar un tamaño de paso constante en algunas condiciones ( ver, por ejemplo, los algoritmos SAG [2] y SVRG [3]).

Notas al pie

[1] [1306.2119] Aproximación estocástica lisa no fuertemente convexa con tasa de convergencia O (1 / n)

[2] [1309.2388] Minimización de sumas finitas con el gradiente promedio estocástico

[3] Descenso acelerado de gradiente estocástico utilizando reducción predictiva de la varianza

Cuando analiza un sistema que es dinámico (estocástico / caótico), el tamaño del paso generalmente es lo más pequeño posible para detectar la más mínima variación del sistema. Además, no puede hacer que todas las variables del sistema varíen constantemente; desde entonces, hacerlo haría que el sistema no pueda ser analizado. Por lo tanto, debe establecer una o más variables del sistema como constantes cada vez que observe el sistema en cuestión (estudíelo / analícelo). Ahora, si quisiste decir que la variable de tamaño de paso de descenso de gradiente estocástico puede cambiarse o definirse rígidamente en un programa y cuáles son las ventajas de uno frente al otro. La respuesta es simple, la variable de tamaño de paso variable permite al investigador cambiar el alcance del sistema dinámico (estocástico / caótico) que se está estudiando sin tener que escribir código cada vez. Donde, como la variable de tamaño de paso fijo requiere que el programa se reescriba cada vez que el investigador quiera incluir o excluir los datos de la muestra del sistema dinámico (estocástico / caótico). Esto significa que el investigador podrá proverbialmente “ver los árboles en el bosque desde las hojas individuales de los árboles en el bosque”. También significa que el investigador podrá variar dinámicamente la cantidad de puntos de datos que se trazan. Robotronics LLC | Facebook

El tamaño del paso a menudo depende del gradiente de varios pesos en un punto particular. Si el gradiente es grande, generalmente se usa un tamaño de paso grande. A medida que disminuye el gradiente, se reduce el tamaño del paso. Piense en ello como una forma en la que intenta descender por una colina y desea alcanzar el nivel óptimo global. Inicialmente, desea dar saltos más grandes y luego ir gradualmente un poco más lento a medida que llega al valle.

De hecho, una forma más avanzada de descender en gradiente sería usar diferentes tamaños de escalones para diferentes pesos. A veces, la superficie de error es como un tazón con una longitud grande y un ancho pequeño. En ese caso, tener un tamaño de paso constante seguirá moviendo los pesos en zig-zag y tardará demasiado en converger.

En ese caso, usa un tamaño de escalón grande para la dirección que tiene un gradiente más grande y un tamaño de escalón más bajo para el otro peso que tiene un gradiente más bajo a través de la superficie del tazón.

En resumen, el problema con el uso de un tamaño de paso fijo es que puede pasar la solución óptima y su curva de error puede fluctuar mucho.

Si usa un tamaño de paso constante, entonces si es pequeño, se necesitan muchos pasos para acercarse incluso a los pesos óptimos y es difícil acercarse significativamente más que el tamaño de paso, lo cual es un problema para tamaños de paso grandes.

Es mucho mejor usar un tamaño de paso que sea proporcional a qué tan lejos esté de la solución óptima.

Puedes pensarlo como el golf. Al principio, usa el controlador para hacer tomas largas y menos precisas solo para acercarse, luego usa los hierros y finalmente el putter. Imagina jugar una ronda completa con un solo palo.

More Interesting

¿Está bien usar kNN para este problema de clasificación de símbolos musicales?

¿Hay grupos de investigación trabajando en aprendizaje profundo teórico?

¿Debo ir a la Universidad de Radboud o Groningen para Machine Learning?

¿Cómo puedo seleccionar todos los archivos que se modifican todos con un día de diferencia en un directorio UNIX?

¿Cuáles son algunas de las estadísticas más importantes y más engañosas en la predicción de partidos de fútbol?

¿Cuál es la mejor manera (habitual) de combinar los puntajes tf-idf para cada documento que un usuario ha visto al crear un perfil para este usuario?

¿Cuál es más importante de los tres, es decir, informática ubicua, informática distribuida y procesamiento de lenguaje natural, en el mundo de hoy?

¿Qué es mejor que el aprendizaje profundo?

¿Hay alguien aquí que pueda darme una lib correcta para R-Tree en Java?

Como ingeniero de ML en Quora, ¿alguna vez ha implementado un artículo de investigación en aprendizaje automático para resolver un problema técnico o de producto?

¿Cuál es el beneficio de usar la función softmax en la última capa de DNN? ¿Cuál es la relación entre la entropía cruzada y las funciones de pérdida?

¿Puedes explicar el hashing de características de una manera fácil de entender?

¿Hay algún solucionador que minimice la función objetivo [matemática] f (x) = \ matemática {e} ^ x [/ matemática] donde [matemática] x> 0 [/ matemática]?

Al predecir un resultado binario, ¿cómo toman en cuenta las personas el orden en que ocurren las entradas?

¿Cuáles son algunos buenos proyectos de aprendizaje automático que implican el uso de estructuras de datos y tienen aplicaciones de la vida real y se pueden hacer en 2-3 semanas?