¿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.
regression
machine-learning
gradient-descent
Valentin Radu
fuente
fuente
Respuestas:
(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
pero es terrible para su applet de la función 2d Rosenbrock. Si alguien usa Barzilai-Borwein, por favor comente.
fuente
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.
fuente