Glosario

Descenso Gradiente Estocástico (SGD)

Descubre cómo el Descenso Gradiente Estocástico optimiza los modelos de aprendizaje automático, permitiendo un entrenamiento eficiente para grandes conjuntos de datos y tareas de aprendizaje profundo.

Entrena los modelos YOLO simplemente
con Ultralytics HUB

Saber más

El Descenso Gradiente Estocástico, comúnmente conocido como SGD, es un algoritmo de optimización popular y eficiente muy utilizado en el Aprendizaje Automático (AM) y, en particular, en el Aprendizaje Profundo (AD). Es una variación del algoritmo estándar de Descenso Gradiente, pero está diseñado específicamente para ser rápido y eficaz cuando se trabaja con conjuntos de datos muy grandes. En lugar de calcular el gradiente (la dirección de descenso más pronunciado para la función de pérdida) utilizando todo el conjunto de datos en cada paso, SGD aproxima el gradiente basándose en una única muestra de datos seleccionada aleatoriamente o en un pequeño subconjunto denominado minilote. Este enfoque reduce significativamente el coste computacional y los requisitos de memoria, haciendo factible el entrenamiento de modelos complejos en cantidades masivas de datos que se encuentran en campos como la visión por ordenador.

Relevancia en el aprendizaje automático

El SGD es una piedra angular para entrenar modelos de aprendizaje automático a gran escala, especialmente las complejas Redes Neuronales (RN ) que impulsan muchas aplicaciones modernas de IA. Su eficacia lo hace indispensable cuando se trabaja con conjuntos de datos que son demasiado grandes para caber en la memoria o que tardarían demasiado en procesarse utilizando el Descenso Gradiente por Lotes tradicional. Modelos como Ultralytics YOLO suelen utilizar SGD o sus variantes durante el proceso de entrenamiento para aprender patrones para tareas como la detección de objetos, la clasificación de imágenes y la segmentación de imágenes. Los principales marcos de aprendizaje profundo, como PyTorch y TensorFlow proporcionan implementaciones robustas de SGD, destacando su papel fundamental en el ecosistema de la IA.

Conceptos clave

Comprender la SGD implica algunas ideas básicas:

  • Función de pérdida: Una medida de lo bien que coinciden las predicciones del modelo con los valores objetivo reales. El SGD pretende minimizar esta función.
  • Tasa de aprendizaje: Un hiperparámetro que controla el tamaño del paso que se da en cada actualización de los parámetros. Encontrar una buena tasa de aprendizaje es crucial para un entrenamiento eficaz. A menudo se utilizan programas de tasa de aprendizaje para ajustarla durante el entrenamiento.
  • Tamaño del lote: El número de muestras de entrenamiento utilizadas en una iteración para estimar el gradiente. En el SGD puro, el tamaño del lote es 1. Cuando se utilizan subconjuntos pequeños, suele llamarse Descenso Gradiente en Mini lotes.
  • Datos de entrenamiento: El conjunto de datos utilizado para entrenar el modelo. El SGD procesa estos datos muestra a muestra o en minilotes. Los datos de alta calidad son esenciales, y a menudo requieren una cuidadosa recopilación y anotación de datos.
  • Gradiente: Vector que indica la dirección del aumento más pronunciado de la función de pérdida. El SGD mueve los parámetros en la dirección opuesta al gradiente calculado a partir de una muestra o minilote.
  • Época: Una pasada completa por todo el conjunto de datos de entrenamiento. El entrenamiento suele implicar varias épocas.

Diferencias con conceptos afines

El SGD es uno de varios algoritmos de optimización, y es importante distinguirlo de los demás:

  • Descenso gradiente por lotes (BGD): Calcula el gradiente utilizando todo el conjunto de datos de entrenamiento en cada paso. Esto proporciona una estimación precisa del gradiente, pero es costoso desde el punto de vista informático y requiere mucha memoria para conjuntos de datos grandes. Conduce a una ruta de convergencia más suave en comparación con las actualizaciones ruidosas del SGD.
  • Mini-lote de Descenso Gradiente: Un compromiso entre BGD y SGD. Calcula el gradiente utilizando un subconjunto pequeño y aleatorio (minilotes) de los datos. Esto equilibra la precisión del BGD con la eficacia del SGD y es el enfoque más común en la práctica. El rendimiento puede depender del tamaño del lote.
  • Optimizador Adam: Un algoritmo de optimización de la tasa de aprendizaje adaptativo que calcula tasas de aprendizaje adaptativo individuales para distintos parámetros. A menudo converge más rápido que el SGD estándar, pero a veces puede generalizar con menos eficacia, como se discute en investigaciones como "El valor marginal de los métodos de gradiente adaptativo en el aprendizaje automático". Existen muchas variantes del Descenso Grad iente más allá de éstas.

Aplicaciones en el mundo real

La eficacia del SGD permite su uso en numerosas aplicaciones de IA a gran escala:

Ejemplo 1: Entrenamiento de grandes modelos lingüísticos (LLM)

El entrenamiento de modelos como los utilizados en el Procesamiento del Lenguaje Natural (PLN ) suele implicar conjuntos de datos de texto masivos (miles de millones de palabras). SGD y sus variantes (como Adam) son esenciales para iterar a través de estos datos de forma eficiente, permitiendo que modelos como GPT-4 o los que se encuentran en Hugging Face aprendan gramática, contexto y semántica. La naturaleza estocástica ayuda a escapar de los pobres mínimos locales en el complejo paisaje de pérdidas.

Ejemplo 2: Entrenamiento en detección de objetos en tiempo real

Para modelos como Ultralytics YOLO , diseñados para la inferencia en tiempo real, el entrenamiento debe ser eficiente. SGD permite a los desarrolladores entrenar estos modelos en grandes conjuntos de datos de imágenes como COCO o en conjuntos de datos personalizados gestionados mediante plataformas como Ultralytics HUB. Las actualizaciones rápidas permiten una convergencia más rápida en comparación con el SGD por lotes, crucial para iterar rápidamente durante el desarrollo del modelo y el ajuste de hiperparámetros. Esta eficacia favorece las aplicaciones en áreas como los vehículos autónomos y la robótica.

Leer todo