Descubra cómo Gradient Descent optimiza modelos de IA como Ultralytics YOLO, permitiendo predicciones precisas en tareas que van desde la asistencia sanitaria hasta los coches autoconducidos.
El Descenso Gradiente es un algoritmo iterativo fundamental utilizado para minimizar una función moviéndose en la dirección del descenso más pronunciado. En el contexto del aprendizaje automático (AM) y aprendizaje profundo (AD), actúa como mecanismo que entrena a los modelos para realizar predicciones precisas. El objetivo principal es encontrar el conjunto óptimo de pesos del modelo que minimice la función de pérdida, que representa la diferencia entre las predicciones del modelo y los valores objetivo reales. Puede visualizar este proceso como un excursionista que intenta encontrar el fondo de un valle en medio de una densa niebla; dando pasos repetidamente en la dirección de la pendiente descendente más pronunciada, el excursionista llega finalmente al punto más bajo. Este concepto básico se analiza con más detalle en el Curso acelerado de aprendizaje automático deGoogle .
La mecánica central del Descenso Gradiente consiste en calcular el gradiente -un vector de derivadas parciales- de la función de pérdida con respecto a cada parámetro. con respecto a cada parámetro. El algoritmo de algoritmo de retropropagación. Una vez determinado el gradiente Una vez determinado el gradiente, el modelo actualiza sus parámetros dando un paso en la dirección opuesta al gradiente. El tamaño de El tamaño de este paso está controlado por un parámetro crucial conocido como la tasa de aprendizaje. tasa de aprendizaje. Si la tasa de aprendizaje es demasiado alta, el Si la tasa de aprendizaje es demasiado alta, el algoritmo puede sobrepasar el mínimo; si es demasiado baja, el entrenamiento puede durar demasiado tiempo. Este ciclo se repite a lo largo de muchas pasadas por el conjunto de datos, llamadas épocas, hasta que la pérdida se estabiliza. Para una perspectiva matemática, Khan Academy ofrece una lección sobre el descenso de gradiente que desglosa los cálculos implicados.
Existen distintas variaciones del algoritmo para equilibrar la eficiencia computacional y la velocidad de convergencia:
He aquí un ejemplo conciso de cómo configurar un optimizador para entrenar un Ultralytics YOLO11 de Ultralytics:
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Train the model using the SGD optimizer with a specific learning rate
# The 'optimizer' argument allows you to select the gradient descent variant
results = model.train(data="coco8.yaml", epochs=50, optimizer="SGD", lr0=0.01)
Gradient Descent es el motor de muchas aplicaciones de IA en aplicaciones sanitarias e industriales.
Para entender bien el concepto de descenso gradual, hay que distinguirlo de otros términos afines. Mientras que Mientras que la retropropagación calcula los gradientes (determinando la "dirección"), el Descenso Gradiente es el algoritmo de optimización que actualiza los parámetros (dando el "paso"). Además, mientras que los algoritmos estándar de utiliza una tasa de aprendizaje fija, los algoritmos adaptativos como el optimizadorAdam ajustan la tasa de aprendizaje de aprendizaje dinámicamente para cada parámetro, lo que a menudo conduce a una convergencia más rápida, como se describe en el documento de investigación original de Adam. Adam original. Desafíos como el gradiente evanescente pueden dificultar el en redes muy profundas, lo que requiere soluciones arquitectónicas como la normalización por lotes o las conexiones residuales. Normalización por lotes o conexiones residuales. En el blog de Sebastian Ruder se ofrece una visión general de estos problemas de optimización. blog de Sebastian Ruder.