Determine la tasa de aprendizaje óptima para el descenso de gradiente en regresión lineal

9

¿Cómo se puede determinar la tasa de aprendizaje óptima para el descenso de gradiente? Estoy pensando que podría ajustarlo automáticamente si la función de costo devuelve un valor mayor que en la iteración anterior (el algoritmo no convergerá), pero no estoy realmente seguro de qué nuevo valor debería tomar.

Valentin Radu
fuente
willamette.edu/~gorr/classes/cs449/momrate.html Intentar el recocido con una forma de adaptación de velocidad local: µ (t) = µ (0) / (1 + t / T); Incremente t cuando cambie el signo del error.
Chris

Respuestas:

2

(Años después) busque el método del tamaño del paso Barzilai-Borwein; onmyphd.com tiene una buena descripción de 3 páginas. El autor dice

este enfoque funciona bien, incluso para problemas de grandes dimensiones

pero es terrible para su applet de la función 2d Rosenbrock. Si alguien usa Barzilai-Borwein, por favor comente.

denis
fuente
1

Estás en el camino correcto. Un enfoque común es duplicar el tamaño del paso cada vez que da un paso cuesta abajo exitoso y reducir a la mitad el tamaño del paso cuando accidentalmente va "demasiado lejos". Podría escalar por algún factor que no sea 2, por supuesto, pero generalmente no hará una gran diferencia.

Los métodos de optimización más sofisticados probablemente acelerarán bastante la convergencia, pero si tiene que lanzar su propia actualización por alguna razón, lo anterior es atractivo, simple y a menudo lo suficientemente bueno.

Dibujó
fuente
Estaba pensando en multiplicar / dividir por dos también. Sin embargo, me preocupa que multiplicar por dos cada vez que se produce un paso exitoso terminará en muchas más iteraciones. Esperaba que haya una manera de hacerlo usando el gradiente, ya que proporciona información sobre cuán empinada es la pendiente.
Valentin Radu
X
Si se trata de un proceso estacionario subyacente, la tasa de aprendizaje máxima se rige por el espectro de la matriz de correlación, ¿verdad?
estrella brillante