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

Learning Rate

La tasa de aprendizaje escala cada actualización de los pesos durante el entrenamiento. Por qué los valores demasiado altos provocan divergencia y los demasiado bajos lo estancan, además del calentamiento, los programas de decaimiento y el ajuste.

La tasa de aprendizaje es el hiperparámetro que determina cuánto cambian los pesos de un modelo en cada paso de entrenamiento. El descenso del gradiente calcula el gradiente de la función de pérdida, que señala la dirección en la que la pérdida aumenta más deprisa, y actualiza cada peso según w ← w − η × gradiente, donde η (eta) es la tasa de aprendizaje. «Tamaño del paso» es un sinónimo, y el código suele llamarla lr. Una tasa bien elegida permite que una red neuronal converja rápidamente a una buena solución; una mal elegida hace que el entrenamiento diverja o avance a paso de tortuga, por lo que el artículo de Leslie Smith sobre tasas de aprendizaje cíclicas la califica como el hiperparámetro más importante que ajustar para las redes profundas.

Demasiado alta, demasiado baja o en su punto#

La tasa de aprendizaje equilibra la velocidad y la estabilidad:

  • Demasiado alta: Cada paso sobrepasa el mínimo. La pérdida oscila, da saltos o aumenta hasta convertirse en NaN, y el entrenamiento diverge.
  • Demasiado baja: Cada paso apenas mueve los pesos. La pérdida disminuye despacio, el entrenamiento necesita muchas más épocas para converger y una ejecución con un presupuesto fijo acaba con infraajuste.
  • Bien elegida: La pérdida disminuye de forma constante y se estabiliza cerca de un mínimo.

El siguiente script de PyTorch minimiza la pérdida w² desde el mismo punto de partida con cuatro tasas de aprendizaje:

import torch

# Minimize loss = w**2 (lowest at w = 0) from the same start with four learning rates
for lr in (0.01, 0.1, 0.9, 1.1):
    w = torch.tensor(5.0, requires_grad=True)
    optimizer = torch.optim.SGD([w], lr=lr)
    path = []
    for step in range(20):
        optimizer.zero_grad()
        loss = w**2
        loss.backward()
        optimizer.step()  # w = w - lr * gradient
        path.append(w.item())
    print(f"lr={lr}: first steps {[round(v, 2) for v in path[:3]]}, after 20 steps w={path[-1]:.3f}")

Con 0.01, el peso apenas pasa de 5 a 3.338 en 20 pasos, y con 0.1 llega a 0.058. Con 0.9, cambia de signo en cada paso (−4.0, 3.2, −2.56), pero aun así converge a 0.058; con 1.1, cada paso se pasa más y el peso crece hasta 191.688. El descenso del gradiente en una función cuadrática solo es estable mientras la tasa de aprendizaje sea menor que 2 dividido por la curvatura de la pérdida, es decir, su segunda derivada. La curvatura de w² es 2, así que el límite es exactamente 1.0, y una tasa de 0.5 alcanza el mínimo en un solo paso. En una red real, la dirección más pronunciada de la pérdida establece un límite similar, por lo que una tasa que funciona con un modelo o tamaño de lote puede hacer que otro diverja.

Programaciones de la tasa de aprendizaje#

Rara vez se mantiene la misma tasa durante todo el entrenamiento. Una programación la modifica con el tiempo:

  • Calentamiento: Empieza con una tasa baja y la aumenta gradualmente durante las primeras épocas o iteraciones, lo que evita que los gradientes grandes e irregulares de las primeras iteraciones desestabilicen el entrenamiento.
  • Reducción escalonada: Divide la tasa por un factor fijo, a menudo 10, en determinadas épocas o cuando la pérdida de validación se estanca.
  • Reducción lineal y cosenoidal: Reduce la tasa gradualmente hacia un valor final bajo. El recocido cosenoidal sigue media onda cosenoidal, y su variante con reinicios en caliente vuelve a la tasa alta al comienzo de cada ciclo nuevo.
  • Políticas cíclicas y de un ciclo: Durante el entrenamiento, mueve la tasa entre un límite inferior y uno superior.

Los pasos grandes al principio acercan rápidamente los pesos a una buena región, y los pasos pequeños al final permiten que se estabilicen en un mínimo en lugar de rebotar a su alrededor. YOLO26 el entrenamiento en Ultralytics empieza en lr0, realiza un calentamiento durante warmup_epochs (3 de forma predeterminada) y desciende linealmente hasta lr0 * lrf, o siguiendo una curva coseno con cos_lr=True. Con el valor predeterminado optimizer="auto", el entrenador elige por sí mismo tanto el optimizador como su tasa inicial: MuSGD a 0.01 para ejecuciones de más de 10,000 iteraciones y, en caso contrario, AdamW con una tasa ajustada al número de clases, por lo que lr0 solo se aplica cuando se configura explícitamente el optimizador:

from ultralytics import YOLO

# Carga un modelo nano YOLO26 preentrenado
model = YOLO("yolo26n.pt")

# Un optimizador explícito hace que se aplique lr0; la tasa desciende hasta lr0 * lrf siguiendo una curva coseno
results = model.train(data="coco8.yaml", epochs=10, optimizer="SGD", lr0=0.01, lrf=0.01, cos_lr=True)

Elegir un valor inicial#

Los valores iniciales habituales son de 0.01 a 0.1 para el descenso del gradiente estocástico (SGD) con momentum y 0.001 para el optimizador Adam, el valor predeterminado propuesto en el artículo sobre Adam. El ajuste fino de un modelo preentrenado utiliza una tasa menor que el entrenamiento desde cero, porque los pasos grandes sobrescribirían las características que permiten el aprendizaje por transferencia.

La prueba del rango de tasas de aprendizaje del mismo artículo sobre tasas de aprendizaje cíclicas, incorporada en fastai como su buscador de tasas de aprendizaje, encuentra un valor adecuado en una ejecución breve. Aumenta la tasa después de cada minibatch mientras registra la pérdida, y el rango útil es aquel en el que la pérdida disminuye más rápido, antes de que empiece a dispararse.

  • Algoritmo de optimización: La regla de actualización que utiliza la tasa de aprendizaje. Los optimizadores adaptativos, como Adam, escalan el paso de cada peso según su propio historial de gradientes, pero siguen multiplicando cada paso por una tasa de aprendizaje global.
  • Momentum: Un hiperparámetro independiente que suma una fracción de la actualización anterior a la actual, suaviza la trayectoria y aumenta el tamaño efectivo del paso en direcciones coherentes.
  • Decaimiento de pesos: Término de regularización que acerca los propios pesos a cero en cada paso, mientras que el decaimiento de la tasa de aprendizaje reduce el tamaño del paso con el tiempo.
  • Tamaño del lote: Número de ejemplos cuya media se calcula para cada gradiente. Los lotes más grandes producen gradientes menos ruidosos y admiten tasas mayores; la regla de escalado lineal multiplica la tasa de aprendizaje por k cuando el tamaño del lote aumenta por k.

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