Algoritmo de descenso de gradiente: metodología, variantes y mejores prácticas
Publicado: 2020-07-28La optimización es una parte integral del aprendizaje automático. Casi todos los algoritmos de aprendizaje automático tienen una función de optimización como segmento crucial. Como sugiere la palabra, la optimización en el aprendizaje automático consiste en encontrar la solución óptima a la declaración de un problema.
En este artículo, leerá acerca de uno de los algoritmos de optimización más utilizados, el descenso de gradiente. El algoritmo de descenso de gradiente se puede usar con cualquier algoritmo de aprendizaje automático y es fácil de comprender e implementar. Entonces, ¿qué es exactamente el descenso de gradiente? Al final de este artículo, tendrá una comprensión más clara del algoritmo de descenso de gradiente y cómo se puede usar para actualizar los parámetros del modelo.
Tabla de contenido
Descenso de gradiente
Antes de profundizar en el algoritmo de descenso de gradiente, debe saber qué es la función de costo. La función de costo es una función que se utiliza para medir el rendimiento de su modelo para un conjunto de datos determinado. Encuentra la diferencia entre su valor predicho y el valor esperado, cuantificando así el margen de error.
El objetivo es reducir la función de costo para que el modelo sea preciso. Para lograr este objetivo, debe encontrar los parámetros necesarios durante el entrenamiento de su modelo. El descenso de gradiente es uno de esos algoritmos de optimización que se utiliza para encontrar los coeficientes de una función para reducir la función de costo. El punto en el que la función de costo es mínima se conoce como mínimos globales.
Fuente
La intuición detrás del algoritmo de descenso de gradiente
Suponga que tiene un recipiente grande similar a algo en el que tiene su fruta. Este recipiente es el diagrama de la función de costo. El fondo del recipiente es el mejor coeficiente para el cual la función de costo es mínima. Se utilizan diferentes valores como coeficientes para calcular la función de costo. Este paso se repite hasta encontrar los mejores coeficientes.

Puedes imaginar el descenso de gradiente como una pelota rodando por un valle. El valle es el gráfico de la función de costo aquí. Quiere que la pelota llegue al fondo del valle, donde el fondo del valle representa la función de menor costo. Dependiendo de la posición inicial de la pelota, puede descansar en muchos fondos del valle. Sin embargo, estos fondos pueden no ser los puntos más bajos y se conocen como mínimos locales.
Fuente
Lea: Impulso en el aprendizaje automático: qué es, funciones, tipos y características
Algoritmo de Descenso de Gradiente - Metodología
El cálculo del descenso de gradiente comienza con los valores iniciales de los coeficientes para la función que se establece como 0 o un pequeño valor aleatorio.
coeficiente = 0 (o un valor pequeño)
- La función de coste se calcula poniendo este valor del coeficiente en la función.
Función de costo = f(coeficiente)
- Sabemos por el concepto de cálculo que la derivada de una función es la pendiente de la función. Calcular la pendiente te ayudará a determinar la dirección para mover los valores de los coeficientes. La dirección debe ser tal que obtenga un menor costo (error) en la siguiente iteración.
del = derivada (función de costo)
- Después de conocer la dirección de descenso desde la pendiente, actualice los valores del coeficiente en consecuencia. Se puede seleccionar una tasa de aprendizaje (alfa) para controlar cuánto cambiarán estos coeficientes en cada iteración. Debe asegurarse de que esta tasa de aprendizaje no sea demasiado alta ni demasiado baja.
coeficiente = coeficiente – (alfa * del)

- Este proceso se repite hasta que la función de costo se vuelve 0 o muy cercana a 0.
f(coeficiente) = 0 (o cerca de 0)
La selección de la tasa de aprendizaje es importante. Seleccionar una tasa de aprendizaje muy alta puede sobrepasar los mínimos globales. Por el contrario, una tasa de aprendizaje muy baja puede ayudarlo a alcanzar los mínimos globales, pero la convergencia es muy lenta y requiere muchas iteraciones.
Fuente
Variantes del algoritmo de descenso de gradiente
Descenso de gradiente por lotes
El descenso de gradiente por lotes es una de las variantes más utilizadas del algoritmo de descenso de gradiente. La función de costo se calcula sobre todo el conjunto de datos de entrenamiento para cada iteración. Un lote se conoce como una iteración del algoritmo, y esta forma se conoce como descenso de gradiente por lotes.

Descenso de gradiente estocástico
En algunos casos, el conjunto de entrenamiento puede ser muy grande. En estos casos, el descenso del gradiente por lotes tardará mucho tiempo en calcularse, ya que una iteración necesita una predicción para cada instancia del conjunto de entrenamiento. Puede utilizar el descenso de gradiente estocástico en estas condiciones en las que el conjunto de datos es enorme. En el descenso de gradiente estocástico, los coeficientes se actualizan para cada instancia de entrenamiento y no al final del lote de instancias.
Descenso de gradiente de mini lotes
Tanto el descenso de gradiente por lotes como el descenso de gradiente estocástico tienen sus pros y sus contras. Sin embargo, puede ser útil usar una combinación de descenso de gradiente por lotes y descenso de gradiente estocástico. En el descenso de gradiente de minilotes, no se usa todo el conjunto de datos ni se usa una sola instancia a la vez. Se toma en consideración un grupo de ejemplos de entrenamiento. El número de ejemplos en este grupo es menor que el conjunto de datos completo, y este grupo se conoce como minilote.
Mejores prácticas para el algoritmo de descenso de gradiente
- Mapear costo versus tiempo: Graficar el costo con respecto al tiempo lo ayuda a visualizar si el costo está disminuyendo o no después de cada iteración. Si ve que el costo permanece sin cambios, intente actualizar la tasa de aprendizaje.
- Tasa de aprendizaje: la tasa de aprendizaje es muy baja y, a menudo, se selecciona como 0,01 o 0,001. Debe probar y ver qué valor funciona mejor para usted.
- Cambiar la escala de entradas: el algoritmo de descenso de gradiente minimizará la función de costo más rápido si todas las variables de entrada se vuelven a escalar al mismo rango, como [0, 1] o [-1, 1].
- Menos pases: por lo general, el algoritmo de descenso de gradiente estocástico no necesita más de 10 pases para encontrar los mejores coeficientes.
Echa un vistazo a: 25 preguntas y respuestas de la entrevista de aprendizaje automático
Terminando
Llegará a conocer el papel del descenso de gradiente en la optimización de un algoritmo de aprendizaje automático. Un factor importante a tener en cuenta es elegir la tasa de aprendizaje adecuada para su algoritmo de descenso de gradiente para una predicción óptima.
upGrad ofrece un Diploma PG en Aprendizaje Automático e IA y una Maestría en Ciencias en Aprendizaje Automático e IA que pueden guiarlo hacia la construcción de una carrera. Estos cursos explicarán la necesidad del aprendizaje automático y los pasos adicionales para recopilar conocimientos en este dominio que cubren conceptos variados que van desde algoritmos de descenso de gradiente hasta redes neuronales.