Descubra cómo Focal Loss resuelve el desequilibrio de clases en el aprendizaje profundo. Aprenda a implementarlo con Ultralytics para centrarse en ejemplos difíciles y mejorar la precisión del modelo.
La pérdida focal es una función objetivo especializada que se utiliza principalmente en el aprendizaje profundo para abordar el reto que supone un grave desequilibrio de clases. En muchas tareas de visión por ordenador, como la detección de objetos, el número de ejemplos de fondo (muestras negativas ) supera con creces al de objetos de interés (muestras positivas). Los métodos estándar, como la ampliamente utilizada pérdida de entropía cruzada, tratan todos los errores por igual, lo que a menudo provoca que el modelo se vea abrumado por el gran volumen de datosclassify . La pérdida focal modifica el cálculo estándar de la pérdida para restar importancia a estos ejemplos fáciles, lo que obliga al algoritmo de optimización a centrar su capacidad de aprendizaje en los ejemplos «difíciles», es decir, losclassify raros yclassify que son cruciales para el rendimiento del modelo .
La innovación principal de Focal Loss reside en su capacidad para escalar dinámicamente la penalización asignada a cada muestra en función de la confianza del modelo. En un escenario típico de aprendizaje supervisado, un detector puede evaluar miles de ubicaciones candidatas en una imagen. Dado que la mayoría de estas ubicaciones no contienen objetos, una función de pérdida estándar acumula muchas señales de error pequeñas de estos negativos fáciles, lo que puede ahogar la valiosa señal de las pocas instancias positivas.
La pérdida focal introduce un factor modulador que reduce la contribución de la pérdida a medida que aumenta la confianza en la clase correcta . Esto significa que si un modelo ya tiene un 99 % de certeza de que un parche de fondo es realmente fondo, la pérdida para ese parche se reduce casi a cero. En consecuencia, los pesos del modelo se actualizan principalmente en función de las muestras clasificadas erróneamente o aquellas en las que el modelo no tiene certeza. Este enfoque específico es esencial para entrenar detectores de objetos de una sola etapa de alto rendimiento como YOLO26, lo que les permite alcanzar una alta precisión sin necesitar complejas etapas de muestreo.
El manejo de datos de entrenamiento desequilibrados es fundamental para implementar sistemas de IA robustos en entornos donde la seguridad y la precisión son primordiales.
En ultralytics La biblioteca incluye implementaciones optimizadas de funciones de pérdida avanzadas para admitir
modelos de última generación. Mientras que el Plataforma Ultralytics configura automáticamente
estos hiperparámetros para un entrenamiento óptimo, los desarrolladores también pueden acceder a estos componentes directamente para realizar investigaciones personalizadas
.
El siguiente ejemplo muestra cómo inicializar Focal Loss utilizando el ultralytics paquete de utilidades y
calcular el error para un conjunto de predicciones.
import torch
from ultralytics.utils.loss import FocalLoss
# Initialize Focal Loss.
# The 'gamma' parameter controls the focusing strength (higher = more focus on hard examples).
criterion = FocalLoss(gamma=1.5)
# Example: Model predictions (logits) and binary Ground Truth labels
# requires_grad=True simulates model outputs that need backpropagation
predictions = torch.tensor([[0.8], [-1.5], [0.1]], requires_grad=True)
targets = torch.tensor([[1.0], [0.0], [1.0]])
# Calculate the loss value
loss = criterion(predictions, targets)
print(f"Computed Focal Loss: {loss.item():.4f}")
Comprender dónde encaja la pérdida focal en el panorama más amplio de la medición de errores ayuda a seleccionar la estrategia adecuada para tareas específicas de visión artificial.