Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

Momentum (Optimization)

La optimización por impulso utiliza gradientes anteriores para acelerar el entrenamiento del modelo, suavizar las actualizaciones ruidosas y mejorar la convergencia, al tiempo que equilibra la tasa de aprendizaje.

El impulso es una técnica de optimización que dota al entrenamiento basado en gradientes de memoria de las actualizaciones anteriores. Al combinar el gradiente actual con un historial decreciente de gradientes anteriores, gana velocidad en las direcciones constantes y reduce los movimientos de ida y vuelta. Esto ayuda a los modelos de aprendizaje automático a minimizar el objetivo de entrenamiento de forma más eficiente. La optimización para motores de búsqueda tiene que ver con la visibilidad de los sitios web; el impulso, con las actualizaciones numéricas de los parámetros del modelo.

Cómo funciona el impulso#

Durante el descenso del gradiente, un modelo desplaza sus pesos en sentido contrario al gradiente, es decir, a la dirección en la que su función de pérdida aumenta más rápidamente. El impulso clásico, también llamado impulso de Polyak o método de la bola pesada, añade inercia a este movimiento. Boris Polyak lo presentó en su trabajo de 1964 sobre la aceleración de métodos iterativos.

El optimizador mantiene un búfer de velocidad, con un valor acumulado por parámetro. En cada actualización, multiplica el búfer anterior por un coeficiente de impulso, suma el gradiente actual y resta de los pesos el búfer resultante multiplicado por la tasa de aprendizaje. En las redes neuronales, la retropropagación proporciona esos gradientes; el optimizador conserva el búfer entre actualizaciones.

El impulso resulta especialmente útil en superficies de pérdida alargadas, donde la curvatura es pronunciada a través de un valle y suave a lo largo de su fondo. Los gradientes que apuntan repetidamente a lo largo del valle se acumulan, mientras que los componentes alternos que lo atraviesan se cancelan parcialmente. Con el descenso estocástico del gradiente, esta memoria también suaviza las fluctuaciones entre minilotes. La dinámica de la pérdida cuadrática con impulso explica tanto su aceleración como las oscilaciones que puede introducir cerca de un mínimo.

El coeficiente de impulso, que suele representarse con beta o mu, normalmente está entre cero y uno. Con cero se obtiene el descenso del gradiente ordinario; los valores más cercanos a uno conservan durante más tiempo los gradientes anteriores. 0.9 es un valor inicial habitual. Con un búfer de velocidad no normalizado y un gradiente constante, la velocidad acumulada se aproxima a diez veces ese gradiente con 0.9, frente a cien veces con 0.99. Por tanto, el impulso y la tasa de aprendizaje interactúan estrechamente durante el ajuste de hiperparámetros.

Una combinación demasiado agresiva provoca un sobreimpulso: las actualizaciones atraviesan repetidamente un mínimo y causan oscilaciones en la pérdida o divergencia. Esto ocurre incluso con objetivos cuadráticos suaves. Un programa de tasa de aprendizaje modifica la magnitud de las actualizaciones durante el entrenamiento, mientras que el impulso determina cuánto persiste el historial direccional.

Dos algoritmos de optimización estrechamente relacionados utilizan este historial de forma distinta:

  • El impulso de Nesterov evalúa el gradiente en una posición anticipada obtenida mediante la velocidad conservada, lo que permite que el gradiente corrija el movimiento previsto.
  • Adam combina una media de gradientes ponderada exponencialmente con una media de gradientes al cuadrado que escala las actualizaciones por separado para cada parámetro. Su beta1 controla la memoria de gradientes.

Un ejemplo mínimo con PyTorch#

Este ejemplo de PyTorch compara puntos de partida y tasas de aprendizaje idénticos en un objetivo cuadrático alargado. La implementación de SGD oficial gestiona automáticamente el búfer de impulso.

import torch

# Curvature is 50 times greater along the second coordinate.
scale = torch.tensor([1.0, 50.0])

for momentum in (0.0, 0.9):
    weights = torch.tensor([5.0, 1.0], requires_grad=True)
    optimizer = torch.optim.SGD([weights], lr=0.015, momentum=momentum)

    for step in range(100):
        optimizer.zero_grad()
        loss = (scale * weights.square()).sum()
        loss.backward()
        optimizer.step()

    final_loss = (scale * weights.square()).sum().item()
    print(f"Momentum {momentum}: loss = {final_loss:.6f}")

Tras 100 actualizaciones, la pérdida es de aproximadamente 0.056531 sin impulso y 0.000216 con impulso. El historial direccional acumulado acelera el avance a lo largo de la coordenada más suave.

Usos en el entrenamiento de visión artificial#

El impulso contribuye al entrenamiento de redes neuronales convolucionales para la clasificación de imágenes y la detección de objetos. El entrenamiento de Ultralytics YOLO habilita el impulso de Nesterov cuando se selecciona optimizer="SGD", y el ajuste momentum controla el historial de actualizaciones conservado. La implementación del entrenador pasa ese coeficiente al optimizador con nesterov=True.

Una aplicación destacada es el procedimiento de entrenamiento original de ResNet para ImageNet. Esos modelos utilizaban SGD con un impulso de 0.9, un tamaño de lote de 256, una disminución de pesos de 0.0001 y una tasa de aprendizaje inicial de 0.1, que se dividía entre diez cuando el error se estancaba.

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático