Descubra como a Perda Focal lida com o desequilíbrio de classes na deteção de objectos - concentrando o treino em exemplos difíceis para melhorar a precisão em conjuntos de dados desequilibrados.
A perda focal é uma função objetiva especializada usada principalmente em tarefas de visão computacional para lidar com o desafio do desequilíbrio extremo de classes durante o treinamento do modelo. É particularmente valiosa em cenários de detecção de objetos, nos quais o número de exemplos de fundo (amostras negativas) supera em muito os objetos de interesse (amostras positivas). Ao dimensionar dinamicamente a penalidade atribuída a cada amostra, a perda focal efetivamente reduz a ponderação dos exemplos "fáceis" — aqueles que o modelo já pode classify alta confiança — e força o processo de otimização a se concentrar nos exemplos "difíceis" que são difíceis de classify. Essa abordagem direcionada evita que o grande número de negativos fáceis sobrecarregue o sinal de treinamento, melhorando assim a precisão do modelo em objetos esparsos, mas críticos .
Em muitas aplicações de aprendizagem profunda (DL), particularmente detetores de objetos de um estágio, o processo de treino envolve a avaliação de milhares de localizações candidatas numa imagem. A maioria dessas localizações não contém objetos e é facilmente identificada como fundo. Funções padrão como Cross-Entropy Loss tratam todas as classificações erradas de forma igual. Consequentemente, o erro acumulado de milhares de amostras fáceis de fundo pode abafar o sinal das poucas amostras positivas difíceis, levando a um modelo que é tendencioso em relação à classe majoritária.
A perda focal modifica o cálculo padrão da perda, introduzindo um parâmetro de focagem, normalmente designado por gama ($\gamma$). À medida que a probabilidade da classe correta aumenta (o que significa que o exemplo é «fácil»), o fator de modulação reduz a contribuição da perda para quase zero. Por outro lado, para exemplos mal classificados ou incertos (casos «difíceis»), a perda continua a ser significativa. Esse mecanismo garante que o algoritmo de otimização atualize os pesos do modelo com base nos exemplos que realmente precisam de melhorias, em vez de simplesmente validar o que o modelo já sabe.
A capacidade de lidar com conjuntos de dados desequilibrados torna a Focal Loss uma pedra angular das soluções modernas de IA em campos críticos para a segurança e de alta precisão.
O ultralytics A biblioteca inclui implementações otimizadas de funções de perda para apoiar o treino
de modelos de última geração, como YOLO26. Enquanto o
treinamento de alto nível é automatizado por meio do Plataforma Ultralytics, os programadores podem
aceder a componentes de perda específicos para pipelines personalizados.
O exemplo a seguir demonstra como inicializar a perda focal e calcular o erro entre as pontuações de previsão e
os rótulos de destino usando o ultralytics pacote de utilitários.
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}")
Compreender como a perda focal se encaixa no panorama mais amplo da medição de erros é útil para selecionar a estratégia de treino certa. treino.