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

Focal Loss

La pérdida focal pondera la entropía cruzada para que los ejemplos fáciles apenas cuenten y los difíciles y poco frecuentes impulsen el entrenamiento. Incluye la fórmula, gamma, RetinaNet y variantes.

La pérdida focal es una función de pérdida de entropía cruzada modificada que reduce el peso de los ejemplos que el modelo ya clasifica bien, de modo que el entrenamiento se concentra en los difíciles y mal clasificados. Lin et al. la presentaron en 2017 en el artículo Focal Loss for Dense Object Detection, junto con el detector RetinaNet, para abordar el desequilibrio extremo entre el fondo y los objetos en la detección de objetos. Actualmente se utiliza mucho en problemas de clasificación en los que una clase supera ampliamente en número a las demás.

El problema del desequilibrio#

Los detectores de objetos de una etapa clasifican cada ubicación candidata de una imagen, y RetinaNet evalúa unas 100,000 por imagen. Casi todas esas ubicaciones corresponden al fondo, que el modelo aprende a descartar al principio del entrenamiento. Con la entropía cruzada estándar, cada negativo fácil sigue aportando una pequeña pérdida, y su enorme cantidad domina la pérdida total y sus gradientes, eclipsando las pocas ubicaciones que contienen objetos. Los detectores de objetos de dos etapas evitan este problema filtrando candidatos con una etapa de propuesta de regiones y muestreando una proporción fija de elementos de fondo y de primer plano; los detectores anteriores de una etapa recurrían a la selección de negativos difíciles. La pérdida focal corrige el desequilibrio dentro de la propia función de pérdida, de modo que se puede entrenar con todos los candidatos sin muestreo.

Cómo funciona la pérdida focal#

Escribe p_t para representar la probabilidad que el modelo asigna a la clase correcta. La entropía cruzada es CE = -log(p_t), y la pérdida focal la multiplica por un factor modulador:

FL = -α_t (1 - p_t)^γ log(p_t)

  • Parámetro de enfoque γ (gamma): controla la rapidez con que disminuye la pérdida de los ejemplos fáciles. Con γ = 0, la pérdida focal equivale a la entropía cruzada. A medida que p_t se acerca a 1, (1 - p_t)^γ se acerca a 0, mientras que un ejemplo mal clasificado con un p_t pequeño conserva casi toda su pérdida de entropía cruzada. Con el mejor valor del artículo, γ = 2, un ejemplo clasificado con p_t = 0.9 obtiene una pérdida 100 veces menor que con la entropía cruzada.
  • Peso de equilibrio α_t (alfa): un peso fijo para la clase positiva y su complemento para la clase negativa. RetinaNet usa α = 0.25 con γ = 2, y el artículo también normaliza la pérdida total de cada imagen por el número de anchors asignados a objetos.

La función sigmoid_focal_loss de torchvision implementa la fórmula. Al establecer alpha=-1 se desactiva el peso de equilibrio, lo que permite aislar el efecto de γ en un ejemplo positivo fácil, uno moderado y uno difícil:

import torch
import torch.nn.functional as F
from torchvision.ops import sigmoid_focal_loss

# Logits for three positive examples: easy, moderate, and hard
logits = torch.tensor([4.0, 1.0, -2.0])
targets = torch.ones(3)

# alpha=-1 turns off class weighting so only the gamma focusing term differs
bce = F.binary_cross_entropy_with_logits(logits, targets, reduction="none")
focal = sigmoid_focal_loss(logits, targets, alpha=-1, gamma=2.0, reduction="none")

for p, b, f in zip(logits.sigmoid(), bce, focal):
    print(f"p={p:.2f}  cross-entropy={b:.6f}  focal={f:.6f}  ratio={b / f:,.1f}x")

La pérdida focal reduce la pérdida del ejemplo fácil (p = 0.98) en un factor de aproximadamente 3,091, la del moderado (p = 0.73) en 13.8 y la del difícil (p = 0.12) solo en 1.3, por lo que el ejemplo difícil aporta ahora casi toda la señal de entrenamiento.

Dónde se utiliza la pérdida focal#

Además de RetinaNet, la pérdida focal y sus variantes entrenan la rama de clasificación de muchos detectores densos y detectores basados en Transformer, incluidos modelos de la familia DETR como Deformable DETR. En el análisis de imágenes médicas, las lesiones suelen ocupar una fracción minúscula de los píxeles, así que los modelos de segmentación de imágenes suelen combinar la pérdida focal con la pérdida Dice para evitar que se ignoren hallazgos pequeños y aumentar la exhaustividad. En Ultralytics, el entrenador de RT-DETR puntúa las clases con Varifocal Loss, y el módulo ultralytics.utils.loss ofrece una clase FocalLoss con valores predeterminados de gamma=1.5 y alpha=0.25.

  • Ponderación de clases: la entropía cruzada ponderada aplica el mismo aumento fijo a todos los ejemplos de una clase poco frecuente, según la frecuencia de la clase. La pérdida focal pondera cada ejemplo según su dificultad actual, por lo que los pesos cambian a medida que aprende el modelo.
  • Selección de negativos difíciles: conserva solo los negativos con mayor pérdida y descarta el resto. La pérdida focal conserva todos los ejemplos y reduce gradualmente el peso de los fáciles.
  • Varifocal Loss: variante asimétrica de VarifocalNet que reduce el peso solo de los negativos y entrena los positivos hacia una puntuación que tiene en cuenta IoU, de modo que la confianza de clase también refleja la calidad de la localización.
  • Pérdida focal de distribución (DFL): una pérdida de regresión de cajas de Generalized Focal Loss que trata cada borde de la caja como una distribución de probabilidad discreta. Solo comparte el nombre con la pérdida focal y se aplica a la regresión de cajas.

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