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.
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.
Comprender en qué se diferencia SGD de otros conceptos afines es vital para seleccionar la estrategia adecuada para sus datos de entrenamiento.
SGD y sus variantes son el estándar para el entrenamiento de sistemas modernos de IA en diversos sectores.
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.