Inicio topics gradient descent ¿Qué es el descenso del gradiente?
Aplique el descenso del gradiente con watsonx.ai Suscríbase a las actualizaciones sobre la IA
Ilustración con collage de pictogramas de nubes, gráfico circular, pictogramas gráficos
¿Qué es el descenso del gradiente?

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.

IBM reconocida como líder por Gartner

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.

Contenido relacionado

Regístrese para obtener el libro electrónico sobre Presto

¿Cómo funciona el descenso del gradiente?

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).

  • La tasa de aprendizaje (también conocida como tamaño de paso o alfa) es el tamaño de los pasos que se dan para alcanzar el mínimo. Este suele ser un valor pequeño, y se evalúa y actualiza en función del comportamiento de la función de costo. Las tasas de aprendizaje altas dan como resultado pasos más grandes, pero corren el riesgo de sobrepasar el mínimo. Por el contrario, una tasa de aprendizaje baja tiene pasos pequeños. Si bien tiene la ventaja de brindar una mayor precisión, el número de iteraciones compromete la eficiencia general, ya que se necesitan más tiempo y cálculos para alcanzar el mínimo.
  • La función de costo (o pérdida) mide la diferencia, o error, entre la “y” real y la “y” prevista en su posición actual. Esto mejora la eficacia del modelo de aprendizaje automático  al proporcionar retroalimentación al modelo para que pueda ajustar los parámetros para minimizar el error y encontrar el mínimo local o global. Itera continuamente, moviéndose a lo largo de la dirección de descenso más pronunciada (o el gradiente negativo) hasta que la función de costo esté cerca de cero o en cero. En este punto, el modelo dejará de aprender. Además, si bien los términos “función de costo” y “función de pérdida” se consideran sinónimos, existe una ligera diferencia entre ellos. Cabe señalar señalar que una función de pérdida se refiere al error de un ejemplo de entrenamiento, mientras que una función de costo calcula el error promedio en todo un conjunto de entrenamiento.
Tipos de descenso del gradiente

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.

Descenso del gradiente por lotes
 

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.

Descenso del gradiente estocástico
 

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.

Descenso del gradiente por mini lotes
 

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.

Desafíos que supone el descenso del gradiente

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:

Mínimos locales y puntos silla
 

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.

Gradientes que desaparecen y explotan
 

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.

  • Gradientes que desaparecen: esto ocurre cuando el gradiente es demasiado pequeño. A medida que retrocedemos durante la retropropagación, el gradiente continúa haciéndose más pequeño, lo que hace que las primeras capas en la red aprendan más lentamente que las capas posteriores. Cuando esto sucede, los parámetros de ponderación se actualizan hasta que se vuelven insignificantes, es decir, 0, lo que da como resultado un algoritmo que ya no aprende.
  • Gradientes que explotan: esto sucede cuando el gradiente es demasiado grande, creando así un modelo inestable. En este caso, las ponderaciones del modelo crecerán demasiado y, finalmente, se representarán como NaN. Una solución a este problema es aprovechar una técnica de reducción de dimensionalidad, lo que puede ayudar a minimizar la complejidad dentro del modelo.
  •  
Soluciones relacionadas
Tecnologías impulsadas por IA

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.

Explore las tecnologías impulsadas por IA
Recursos Un algoritmo de descenso del gradiente estocástico distribuido y eficiente para aplicaciones de aprendizaje profundo

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 XGBoost en R

Implemente árboles de decisión (decision trees) potenciados por gradientes mediante el algoritmo XGBoost para realizar una tarea de clasificación.

Dé el siguiente paso

Entrene, valide, ajuste y despliegue IA generativa, modelos fundacionales y capacidades de aprendizaje automático con IBM® watsonx.ai, un estudio empresarial de próxima generación para creadores de IA. Cree aplicaciones de IA en menos tiempo y con menos datos.

Explore watsonx.ai Reserve una demostración en vivo