Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Focal Loss

A focal loss pondera a entropia cruzada para que exemplos fáceis quase não contem e os exemplos raros e difíceis orientem o treinamento. Abrange a fórmula, gama, RetinaNet e variantes.

A perda focal é uma função de perda de entropia cruzada modificada que reduz o peso dos exemplos que o modelo já classifica bem, para que o treino se concentre nos exemplos difíceis e classificados incorretamente. Lin et al. apresentaram-na em 2017 no artigo Perda focal para deteção densa de objetos, juntamente com o detetor RetinaNet, para lidar com o desequilíbrio extremo entre o fundo e os objetos na deteção de objetos. Atualmente, é muito utilizada em problemas de classificação em que uma classe tem muito mais exemplos do que as outras.

O problema do desequilíbrio#

Os detetores de objetos de uma etapa classificam cada localização candidata numa imagem, e o RetinaNet avalia cerca de 100,000 por imagem. Quase todas essas localizações são fundo, que o modelo aprende a rejeitar logo no início do treino. Com a entropia cruzada padrão, cada exemplo negativo fácil ainda acrescenta uma pequena perda, e o seu grande número faz com que dominem a perda total e os respetivos gradientes, abafando as poucas localizações que contêm objetos. Os detetores de objetos de duas etapas evitam este problema ao filtrar candidatos numa etapa de propostas de regiões e ao amostrar uma proporção fixa de regiões de primeiro plano e de fundo; os detetores de uma etapa anteriores recorriam à seleção de exemplos negativos difíceis. A perda focal corrige o desequilíbrio na própria função de perda, pelo que é possível treinar com todos os candidatos sem amostragem.

Como funciona a perda focal#

Escreve p_t para representar a probabilidade que o modelo atribui à classe correta. A entropia cruzada é CE = -log(p_t), e a perda focal multiplica-a por um fator modulador:

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

  • Parâmetro de focalização γ (gamma): Controla a rapidez com que a perda dos exemplos fáceis diminui. Com γ = 0, a perda focal é igual à entropia cruzada. À medida que p_t se aproxima de 1, (1 - p_t)^γ aproxima-se de 0, enquanto um exemplo classificado incorretamente com um valor baixo de p_t mantém quase toda a sua perda de entropia cruzada. Com o melhor valor definido no artigo, γ = 2, um exemplo classificado com p_t = 0.9 tem uma perda 100 vezes menor do que com a entropia cruzada.
  • Peso de equilíbrio α_t (alpha): Um peso fixo para a classe positiva e o seu complemento para a classe negativa. O RetinaNet usa α = 0.25 com γ = 2, e o artigo também normaliza a perda total de cada imagem pelo número de âncoras atribuídas a objetos.

A função sigmoid_focal_loss do torchvision implementa a fórmula. Definir alpha=-1 desativa o peso de equilíbrio, isolando o efeito de γ num exemplo positivo fácil, moderado e 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")

A perda focal reduz a perda do exemplo fácil (p = 0.98) por um fator de cerca de 3,091, a do exemplo moderado (p = 0.73) por 13.8 e a do exemplo difícil (p = 0.12) por apenas 1.3, pelo que o exemplo difícil passa a representar quase todo o sinal de treino.

Onde se usa a perda focal#

Além do RetinaNet, a perda focal e as suas variantes treinam o ramo de classificação de muitos detetores densos e detetores baseados em Transformer, incluindo modelos da família DETR, como o Deformable DETR. Na análise de imagens médicas, as lesões ocupam muitas vezes uma fração ínfima dos píxeis, por isso os modelos de segmentação de imagens combinam frequentemente a perda focal com a perda Dice para evitar ignorar achados pequenos e aumentar a sensibilidade. Na Ultralytics, o treinador RT-DETR pontua as classes com a Varifocal Loss, e o módulo ultralytics.utils.loss disponibiliza uma classe FocalLoss com os valores predefinidos gamma=1.5 e alpha=0.25.

  • Ponderação de classes: A entropia cruzada ponderada dá a cada exemplo de uma classe rara o mesmo aumento fixo, com base na frequência da classe. A perda focal pondera cada exemplo de acordo com o seu grau de dificuldade atual, pelo que os pesos mudam à medida que o modelo aprende.
  • Seleção de exemplos negativos difíceis: Mantém apenas os exemplos negativos com maior perda e descarta os restantes. A perda focal mantém todos os exemplos e reduz suavemente o peso dos mais fáceis.
  • Varifocal Loss: Uma variante assimétrica da VarifocalNet que reduz o peso apenas dos exemplos negativos e treina os positivos para obter uma pontuação sensível ao IoU, fazendo com que a confiança da classe também reflita a qualidade da localização.
  • Perda focal de distribuição (DFL): Uma perda de regressão de caixas da Generalized Focal Loss que trata cada aresta da caixa como uma distribuição de probabilidade discreta. Só partilha o nome com a perda focal e aplica-se à regressão de caixas.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina