Loss Function
Uma função de perda mede a diferença entre as previsões de um modelo e a verdade fundamental, e o treinamento busca minimizá-la. Veja as perdas mais comuns e quando usar cada uma.
Uma função de perda mede a distância entre as previsões de um modelo e as etiquetas de referência nos dados de treino e condensa esse erro num único número, sendo melhor um valor mais baixo. Treinar uma rede neural significa ajustar os pesos do modelo para minimizar esse número. «Função de custo» e «função objetivo» são sinónimos comuns, embora alguns textos reservem «perda» para o erro de um único exemplo e «custo» para a média de um lote ou conjunto de dados.
Como a perda orienta o treino#
O treino repete o mesmo ciclo para cada lote de dados. O modelo gera previsões, a função de perda compara-as com as etiquetas e a retropropagação calcula o gradiente da perda em relação a cada peso. Em seguida, um otimizador, como a descida do gradiente estocástico (SGD) ou o otimizador Adam, altera cada peso num pequeno passo contrário ao gradiente, com um tamanho de passo definido pela taxa de aprendizagem. Como este processo depende de gradientes, uma função de perda tem de ser diferenciável em quase todos os pontos. Representar graficamente a perda de treino e a perda de validação após cada época é a forma padrão de monitorizar uma execução: uma perda de validação que aumenta enquanto a perda de treino continua a diminuir é o sinal clássico de sobreajuste.
Funções de perda comuns#
A perda adequada depende do que o modelo prevê, e estruturas como PyTorch incluem a maioria das opções padrão:
- Erro quadrático médio (MSE): Média das diferenças ao quadrado entre os valores previstos e os verdadeiros, usada em regressão. O quadrado faz com que os erros grandes tenham mais peso, pelo que os valores atípicos exercem uma forte influência.
- Erro absoluto médio (L1) e perda Huber: Perdas de regressão que aumentam linearmente para erros grandes, sendo por isso menos sensíveis a valores atípicos. A perda Huber é quadrática para erros pequenos e linear acima de um limiar.
- Entropia cruzada: Perda padrão para classificação de imagens, calculada sobre probabilidades softmax de classes mutuamente exclusivas.
- Entropia cruzada binária (BCE): Avalia cada classe como uma previsão independente de sim ou não através de uma sigmoide, sendo adequada para problemas multirrótulo e pontuações de classes de detetores.
- Perda focal: Variante da entropia cruzada que reduz o peso dos exemplos fáceis, para que os exemplos raros e difíceis orientem a aprendizagem quando existe um forte desequilíbrio entre classes.
- Perdas baseadas em IoU: Perdas de regressão de caixas baseadas em interseção sobre união (IoU), com variantes como DIoU e CIoU, que acrescentam penalizações pela distância entre centros e, no caso da CIoU, pela proporção entre os lados.
- Perda Dice: Perda de sobreposição para segmentação de imagens, que continua informativa quando o primeiro plano ocupa apenas uma pequena fração dos píxeis.
- Perdas contrastivas: Perdas para aprendizagem contrastiva que aproximam pares correspondentes no espaço de incorporações e afastam pares não correspondentes.
A entropia cruzada usa o logaritmo negativo da probabilidade atribuída à classe verdadeira; por isso, um erro confiante custa muito mais do que um erro hesitante, e uma resposta correta e confiante custa quase nada. O trecho de código CrossEntropyLoss do PyTorch mostra o efeito em duas previsões com a mesma confiança:
import torch
from torch import nn
# CrossEntropyLoss applies softmax to raw scores (logits) internally
loss_fn = nn.CrossEntropyLoss()
# Logits for 3 classes; the true class is index 0
target = torch.tensor([0])
confident_right = torch.tensor([[4.0, 0.5, -1.0]])
confident_wrong = torch.tensor([[-1.0, 4.0, 0.5]])
print(f"Confident and right: {loss_fn(confident_right, target).item():.4f}")
print(f"Confident and wrong: {loss_fn(confident_wrong, target).item():.4f}")A previsão correta e confiante tem um custo de 0,0363, enquanto atribuir a mesma confiança à classe errada custa 5,0363, cerca de 139 vezes mais.
Perdas compostas na deteção de objetos#
Os modelos de deteção de objetos preveem onde está cada objeto e o que é, pelo que a perda de treino é uma soma ponderada de vários termos. O YOLO26 combina uma perda de caixas CIoU, uma perda de classificação BCE e uma perda L1 nas distâncias normalizadas das caixas, que substitui a Distribution Focal Loss dos modelos YOLO anteriores. Estes termos são ponderados pelos argumentos de treino box, cls e dfl (valores predefinidos: 7,5, 0,5 e 1,5). A Progressive Loss também transfere gradualmente o peso da cabeça um-para-muitos para a cabeça um-para-um, usada na inferência sem NMS, à medida que o treino avança.
Função de perda e termos relacionados#
- Métricas de avaliação: Métricas como a exatidão e a precisão média (mAP) apresentam o desempenho em termos relevantes para as pessoas, mas a maioria varia em saltos discretos e não fornece gradientes. O treino minimiza uma perda diferenciável como aproximação destas métricas.
- Regularização: Termos de penalização acrescentados à perda para desencorajar a complexidade. A regularização L2 acrescenta um múltiplo da soma dos pesos ao quadrado, levando o otimizador a preferir pesos menores que generalizam melhor.
- Função de recompensa: Objetivo da aprendizagem por reforço, em que um agente maximiza a recompensa acumulada em vez de minimizar uma perda; assim, a recompensa desempenha o papel de uma perda negativa.










