Descubra cómo Focal Loss aborda el desequilibrio de clases en la detección de objetos, centrando el entrenamiento en ejemplos difíciles para mejorar la precisión en conjuntos de datos desequilibrados.
La pérdida focal es una función objetivo especializada que se utiliza principalmente en tareas de visión por ordenador para abordar el reto del desequilibrio extremo entre clases durante el entrenamiento del modelo. Es especialmente valiosa en escenarios de detección de objetos en los que el número de ejemplos de fondo (muestras negativas) supera ampliamente al de objetos de interés (muestras positivas). Al escalar dinámicamente la penalización asignada a cada muestra, la pérdida focal reduce eficazmente la ponderación de los ejemplos «fáciles» , aquellos que el modelo ya puede classify alta confianza, y obliga al proceso de optimización a concentrarse en los ejemplos «difíciles» que son difíciles de classify. Este enfoque específico evita que la gran cantidad de negativos fáciles abrume la señal de entrenamiento, mejorando así la precisión del modelo en objetos escasos pero críticos .
En muchas aplicaciones de aprendizaje profundo (DL), en particular en los detectores de objetos de una sola etapa, el proceso de entrenamiento implica evaluar miles de ubicaciones candidatas en una imagen. La mayoría de estas ubicaciones no contienen objetos y se identifican fácilmente como fondo. Las funciones estándar, como la pérdida de entropía cruzada, tratan todas las clasificaciones erróneas por igual. En consecuencia, el error acumulado de miles de muestras de fondo fáciles puede ahogar la señal de las pocas muestras positivas difíciles, lo que da lugar a un modelo sesgado hacia la clase mayoritaria.
La pérdida focal modifica el cálculo estándar de la pérdida introduciendo un parámetro de enfoque, normalmente denominado gamma ($\gamma$). A medida que aumenta la probabilidad de la clase correcta (lo que significa que el ejemplo es «fácil»), el factor modulador reduce la contribución de la pérdida a casi cero. Por el contrario, para los ejemplos mal clasificados o inciertos (casos «difíciles»), la pérdida sigue siendo significativa. Este mecanismo garantiza que el algoritmo de optimización actualice los pesos del modelo basándose en los ejemplos que realmente requieren mejora, en lugar de limitarse a validar lo que el modelo ya sabe.
La capacidad de manejar conjuntos de datos desequilibrados convierte a Focal Loss en una piedra angular de las soluciones modernas de IA en campos críticos para la seguridad y de alta precisión.
En ultralytics La biblioteca incluye implementaciones optimizadas de funciones de pérdida para respaldar el entrenamiento de
modelos de última generación como YOLO26. Mientras que el entrenamiento de alto nivel
se automatiza a través del Plataforma Ultralytics, los desarrolladores pueden
acceder a componentes de pérdida específicos para tuberías personalizadas.
El siguiente ejemplo muestra cómo inicializar Focal Loss y calcular el error entre las puntuaciones de predicción y
las etiquetas de destino utilizando el ultralytics paquete de utilidades.
import torch
from ultralytics.utils.loss import FocalLoss
# Initialize Focal Loss with a standard gamma value
# Gamma=1.5 aggressively down-weights easy examples
criterion = FocalLoss(gamma=1.5)
# Example: Predictions (logits) and binary Ground Truth labels
predictions = torch.tensor([[0.8], [-1.5], [0.1]], requires_grad=True)
targets = torch.tensor([[1.0], [0.0], [1.0]])
# Calculate the loss
loss = criterion(predictions, targets)
print(f"Computed Focal Loss: {loss.item():.4f}")
Comprender cómo encaja la pérdida focal en el panorama más amplio de la medición de errores es útil para seleccionar la estrategia de entrenamiento adecuada .