Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Descenso Gradiente EstocásticoSGD)

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

El Descenso Gradiente EstocásticoSGD) es un algoritmo de optimización algoritmo de optimización muy utilizado en aprendizaje automático (ML) y aprendizaje profundo (AD). Actúa como la fuerza motriz detrás del entrenamiento del modelo, ajustando iterativamente los y sesgos internos del modelo para minimizar el error calculado por una función de pérdida. A diferencia del que procesa todo el conjunto de datos para calcular una única actualización, SGD modifica los parámetros del modelo utilizando un único ejemplo de entrenamiento seleccionado aleatoriamente cada vez. Este enfoque "estocástico" o aleatorio Este enfoque "estocástico" o aleatorio hace que el algoritmo sea eficiente desde el punto de vista computacional y altamente escalable, creando una vía factible para el entrenamiento en en grandes volúmenes de datos en los que el procesamiento sería prohibitivo para la memoria.

Cómo funciona el descenso de gradiente estocástico

El objetivo principal del entrenamiento de una red neuronal es navegar por un complejo paisaje de errores para encontrar el punto más bajo, que representa la mayor precisión. SGD lo consigue mediante un ciclo repetitivo. En primer lugar, calcula el gradiente (la dirección del aumento más pronunciado del error) para una muestra específica mediante retropropagación. una muestra concreta mediante retropropagación. A continuación actualiza los pesos en la dirección opuesta para reducir el error.

La magnitud de este paso está controlada por la de aprendizaje, un valor crítico configurado durante durante el ajuste de los hiperparámetros. Dado que SGD utiliza muestras individuales, el camino hacia el mínimo es ruidoso y zigzagueante en lugar de una línea recta. Este ruido suele ser Este ruido suele ser beneficioso, ya que ayuda al modelo a escapar de los mínimos locales -soluciones subóptimas en las que los algoritmos no estocásticos podrían atascarse-, lo que le permite encontrar la solución óptima. que los algoritmos no estocásticos podrían atascarse, permitiéndole encontrar una solución global mejor. Este proceso se repite durante muchas épocas, o pasadas completas por el conjunto de datos, hasta que el modelo converge. modelo converja. Los lectores pueden explorar la intuición matemática en el documento apuntes de optimización de Stanford CS231n.

SGD frente a otros algoritmos de optimización

Comprender en qué se diferencia SGD de otros conceptos afines es vital para seleccionar la estrategia adecuada para sus datos de entrenamiento.

  • Descenso de gradiente por lotes: Este método calcula el gradiente utilizando todo el conjunto de datos en cada paso. Aunque produce una curva de error estable es extremadamente lento y costoso computacionalmente para grandes conjuntos de datos.
  • Mini-Batch Gradient Descent: En práctica, la mayoría de las implementaciones deSGD" en marcos como PyTorch utilizan mini-lotes. Este enfoque actualiza parámetros utilizando un pequeño grupo de muestras (por ejemplo, 32 o 64 imágenes). Se logra un equilibrio, ofreciendo la eficiencia computacional de SGD con la estabilidad del procesamiento por lotes. computacional de SGD con la estabilidad del procesamiento por lotes.
  • OptimizadorAdam : El algoritmo Adam amplía el SGD introduciendo tasas de aprendizaje adaptativas para cada parámetro. Aunque Adam suele converger más rápido, SGD con impulso es a veces preferible para tareas de visión por ordenador para lograr una mejor generalización y evitar sobreajuste.

Aplicaciones en el mundo real

SGD y sus variantes son el estándar para el entrenamiento de sistemas modernos de IA en diversos sectores.

  1. Detección de objetos en tiempo real: Cuando se entrenan modelos de alto rendimiento como Ultralytics YOLO11 para detección de objetos, el optimizador debe procesar miles de imágenes de conjuntos de datos como COCO. SGD permite al modelo aprender rápidamente características como los bordes y las formas de los objetos. La naturaleza estocástica ayuda al modelo a generalizar bien, lo que es crucial para aplicaciones críticas de seguridad como vehículos autónomos que detectan peatones en peatones en diversas condiciones meteorológicas.
  2. Procesamiento del lenguaje natural (PLN): Formación grandes modelos lingüísticos (LLM) implica conjuntos de datos que contienen miles de millones de palabras. Es imposible cargar todos estos datos a la vez en la memoria. SGD permite al modelo modelo aprenda gramática, contexto y el contexto y el análisis de sentimientos. Esta eficacia de eficiencia permite el desarrollo de sofisticados asistentes virtuales y herramientas de traducción.

Implantación de SGD con Ultralytics

En ultralytics permite a los usuarios cambiar fácilmente entre optimizadores. Mientras que AdamW puede ser el por defecto para algunas tareas, SGD se utiliza a menudo para el ajuste fino o requisitos específicos de investigación. El siguiente fragmento muestra cómo seleccionar explícitamente SGD para entrenar un modelo.

from ultralytics import YOLO

# Load the latest YOLO11 model (nano version)
model = YOLO("yolo11n.pt")

# Train the model on the COCO8 dataset using the SGD optimizer
# The 'lr0' argument sets the initial learning rate
results = model.train(data="coco8.yaml", epochs=50, optimizer="SGD", lr0=0.01)

Este código inicializa un YOLO11 modelo y comienza a entrenar con optimizer="SGD". Para una mayor personalización, consulte el configuración del modelo de entrenamiento documentación. Frameworks como TensorFlow y Scikit-learn también proporcionan implementaciones robustas de SGD para diversas tareas de aprendizaje automático.

Únase a la comunidad Ultralytics

Únete al futuro de la IA. Conecta, colabora y crece con innovadores de todo el mundo

Únete ahora