¿Cuáles son las debilidades del descenso de gradiente?

Si la tasa de aprendizaje para el descenso de gradiente es demasiado rápida , omitirá el mínimo local real para optimizar el tiempo. Si es demasiado lento , es posible que el descenso del gradiente nunca converja porque está intentando realmente encontrar exactamente un mínimo local.

La tasa de aprendizaje puede afectar qué mínimo alcanza y qué tan rápido lo alcanza, como se muestra a continuación. Una buena práctica es tener una tasa de aprendizaje cambiante, que se ralentiza a medida que su error comienza a disminuir.
De: Ajuste de la tasa de aprendizaje en Pendiente de gradiente

(Nota: es posible que alcance el mejor mínimo local por casualidad utilizando una tasa de aprendizaje rápida, o alcanzarlo rápidamente incluso utilizando una tasa lenta. Depende de cómo se vea la función para su modelo específico y dónde está comenzando).

La tasa de convergencia es lenta.

La tasa de convergencia del descenso del gradiente es [matemática] O (1 / k) [/ matemática] y viene dada por:

[matemáticas] f (x ^ k) – f (x ^ {\ star}) \ leq \ dfrac {|| x ^ {(0)} – x ^ {\ star} || ^ 2} {2tk} [/ mates]

donde [math] k [/ math] es el número de iteración.

Por lo tanto, para obtener [math] f (x ^ k) – f (x ^ {\ star}) \ leq \ epsilon [/ math], necesitamos iteraciones [math] O (1 / \ epsilon) [/ math].

Podemos ver que cuanto mayor sea el grado de precisión que queremos, mayor será el número de iteraciones que se requerirían. Por lo general, queremos una precisión en el orden de [matemáticas] 1e ^ {- 5} [/ matemáticas]. Esto implica [matemáticas] 10 ^ 5 [/ matemáticas] número de iteraciones que es una locura. Es por eso que usualmente usamos tamaños de paso adaptativos y condiciones de detención.

Es difícil de aplicar a funciones de pérdida no diferenciables.

Requiere ajustar la tasa de aprendizaje.

No se puede aplicar de manera confiable a problemas no convexos

Algunos consejos rápidos:

– Depende de una inicialización adecuada.
– Se puede atascar en los óptimos locales. Entonces necesitas algunos reinicios aleatorios.
– Necesita una selección cuidadosa del parámetro de velocidad de aprendizaje y, con frecuencia, debe ser variable entre iteraciones o usar un método de búsqueda de línea.
– Puede acercarse al óptimo pero nunca converger exactamente. En la mayoría de los casos prácticos, esto no es un problema, excepto cuando lo es.

Es muy lento y requiere ajuste manual de parámetros. Vea Máquinas de aprendizaje extremas para una buena alternativa en el contexto del entrenamiento de redes neuronales.

  • Si tiene un conjunto de datos de gran tamaño, el gradiente es tedioso porque se necesita todo el conjunto de datos para cada cálculo.
  • No es invariante a las transformaciones lineales.