2 votos

¿Cómo optimizar el optimizador de descenso de gradiente estocástico?

Actualmente estoy buscando la manera de optimizar los parámetros del descenso de gradiente estocástico. Estos parámetros incluyen: la tasa de aprendizaje, el impulso, el decaimiento y si se utiliza el impulso de Nesterov.

La solución fácil sería utilizar for y probar una serie de valores de parámetros en un rango.

Pero, ¿existe una forma intuitiva de saber cómo afinar cada parámetro? Por ejemplo, ¿qué valores de los parámetros son un buen punto de partida y cuándo debo ajustar cada parámetro?

1voto

Lubin Puntos 21941

Sinceramente, yo elegiría los valores por defecto del paquete, y vería cómo es el rendimiento. Se sabe que la selección de la suma de estos parámetros es un poco complicada, por lo que hay todo un campo de investigación dedicado a encontrar mejores formas de evitar tener que hacer este ajuste de hiperparámetros del descenso de gradiente estocástico. Yo sugeriría utilizar un algoritmo que se encargue de parte de este trabajo, como Adam o Adadelta. He encontrado este blog post muy útil para proporcionar una comparación de los diferentes métodos.

Si quieres optimizar los hiperparámetros, esto puede ser bastante costoso en términos de tiempo de cálculo. En lugar de la búsqueda en cuadrícula, es más eficiente utilizar la búsqueda aleatoria por las razones expuestas aquí (1). Si quiere hacer esto de una manera más complicada (pero más eficiente) puede probar la optimización bayesiana en un paquete como Menta verde o BayesOpt .

(1) Bergstra, James, y Yoshua Bengio. "Búsqueda aleatoria para la optimización de hiperparámetros". Journal of Machine Learning Research 13.Feb (2012): 281-305.

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