Inicio
Temas
gradient descent
El descenso del gradiente es un algoritmo de optimización que se utiliza comúnmente para entrenar modelos de aprendizaje automático y redes neuronales. Entrena modelos de aprendizaje automático minimizando los errores entre los resultados previstos y los reales.
Los datos de entrenamiento ayudan a estos modelos a aprender con el tiempo, y la función de costo dentro del descenso del gradiente actúa específicamente como un barómetro, midiendo su precisión con cada iteración de actualizaciones de parámetros. Hasta que la función sea cercana o igual a cero, el modelo continuará ajustando sus parámetros para producir el menor error posible. Una vez que los modelos de aprendizaje automático se optimizan respecto de la precisión, pueden ser herramientas poderosas para aplicaciones de inteligencia artificial (IA) e informática.
Descubra por qué IBM fue reconocida como líder en el informe Cuadrante Mágico de Gartner 2023 por sus Servicios de desarrollador de IA en la nube.
Antes de sumergirnos en el descenso del gradiente, puede ser útil revisar algunos conceptos de la regresión lineal. Es posible que recuerde la siguiente fórmula para la pendiente de una línea, que es y = mx + b, donde m representa la pendiente y b es la intersección en el eje y.
Es posible que también recuerde haber trazado un diagrama de dispersión en estadísticas y encontrar la línea de mejor ajuste, lo que requiere calcular el error entre la salida real y la salida prevista (y-hat) utilizando la fórmula del error cuadrático medio. El algoritmo de descenso del gradiente se comporta de manera similar, pero se basa en una función convexa.
El punto de partida es solo un punto arbitrario para que podamos evaluar el rendimiento. A partir de ese punto de partida, encontraremos la derivada (o pendiente), y a partir de ahí, podemos usar una recta tangente para observar la inclinación de la pendiente. La pendiente fundamentará las actualizaciones de los parámetros, es decir, las ponderaciones y el sesgo. La pendiente en el punto de partida será más pronunciada, pero a medida que se generen nuevos parámetros, la inclinación deberá disminuir gradualmente hasta llegar al punto más bajo de la curva, conocido como punto de convergencia.
De manera similar a encontrar la línea de mejor ajuste en la regresión lineal, el objetivo del descenso del gradiente es minimizar la función de costo, o el error entre el valor “y” previsto y el real. Para ello, requiere dos puntos de datos: una dirección y una tasa de aprendizaje. Estos factores determinan los cálculos de derivadas parciales de iteraciones futuras, lo que le permite llegar gradualmente al mínimo local o global (es decir, al punto de convergencia).
Hay tres tipos de algoritmos de aprendizaje de descenso del gradiente: descenso del gradiente por lotes, descenso del gradiente estocástico y descenso del gradiente por minilotes.
El descenso del gradiente por lotes suma el error de cada punto en un conjunto de entrenamiento, actualizando el modelo solo después de que se hayan evaluado todos los ejemplos de entrenamiento. Este proceso se conoce como época de entrenamiento.
Si bien este procesamiento por lotes proporciona eficiencia de cálculo, aún puede requerir un tiempo de procesamiento prolongado para grandes conjuntos de datos de entrenamiento, ya que aún necesita almacenar todos los datos en la memoria. El descenso del gradiente por lotes también suele producir un gradiente de error estable y una convergencia, pero a veces ese punto de convergencia no es el más ideal, ya que encuentra el mínimo local frente al global.
El descenso del gradiente estocástico (SGD, sigla en inglés de stochastic gradient descent) ejecuta una época de entrenamiento para cada ejemplo dentro del conjunto de datos y actualiza los parámetros de cada ejemplo de entrenamiento uno a la vez. Dado que solo es necesario tener un ejemplo de entrenamiento, son más fáciles de almacenar en la memoria. Si bien estas actualizaciones frecuentes pueden ofrecer más detalles y velocidad, pueden generar pérdidas en la eficiencia computacional en comparación con el descenso del gradiente por lotes. Sus actualizaciones frecuentes pueden generar gradientes ruidosos, pero esto también puede ser útil para escapar del mínimo local y encontrar el global.
El descenso del gradiente por mini lotes combina conceptos tanto del descenso del gradiente por lotes como del descenso del gradiente estocástico. Divide el conjunto de datos de entrenamiento en lotes pequeños y realiza actualizaciones en cada uno de esos lotes. Este enfoque logra un equilibrio entre la eficiencia computacional del descenso del gradiente por lotes y la velocidad del descenso del gradiente estocástico.
Si bien el descenso del gradiente es el enfoque más común para los problemas de optimización, conlleva su propio conjunto de desafíos. Por ejemplo:
Para problemas convexos, el descenso del gradiente puede encontrar el mínimo global con facilidad, pero a medida que surgen problemas no convexos, el descenso del gradiente puede batallar para encontrar el mínimo global, donde el modelo logra los mejores resultados.
Recuerde que cuando la pendiente de la función de costo es igual o cercana a cero, el modelo deja de aprender. Algunos escenarios más allá del mínimo global también pueden producir esta pendiente, que son los mínimos locales y los puntos silla. Los mínimos locales imitan la forma de un mínimo global, donde la pendiente de la función de costo aumenta a ambos lados del punto actual. Sin embargo, con los puntos silla, el gradiente negativo solo existe en un lado del punto, alcanzando un máximo local en un lado y un mínimo local en el otro. Su nombre está inspirado en una silla de montar.
Los gradientes ruidosos pueden ayudar a que el gradiente escape de los mínimos locales y los puntos de silla.
En redes neuronales más profundas, redes neuronales recurrentes particulares, también podemos encontrar otros dos problemas cuando el modelo se entrena con descenso del gradiente y retropropagación.
Desde sus flujos de trabajo empresariales hasta sus operaciones de TI, tenemos lo que usted necesita con la automatización impulsada por IA. Descubra cómo se están transformando las empresas líderes.
IBM Research propone un algoritmo de descenso del gradiente estocástico distribuido y con sincronización masiva que permita una escasa agregación de gradientes provenientes de aprendices individuales.
Implemente árboles de decisión (decision trees) potenciados por gradientes mediante el algoritmo XGBoost para realizar una tarea de clasificación.