Funções de perda e tarefas

2 min

Objetivo: alinhar alvo, camada de saída e função de perda.

A perda fornece o sinal de treinamento. A métrica descreve a qualidade segundo a necessidade. Uma perda deve ser derivável em quase todo lugar; uma métrica de negócio pode não ser.

TarefaSaídaAlvoPerda PyTorch
Regressão(N,1) ou (N,)floatMSELoss, L1Loss, HuberLoss
Binária1 logit0/1 floatBCEWithLogitsLoss
K classesK logitsíndice inteiroCrossEntropyLoss
MultilabelK logitsK valores 0/1BCEWithLogitsLoss

Entropia cruzada

Para a classe verdadeira y, a perda multiclasse vale -log p_y. Uma predição confiante e errada é fortemente penalizada. CrossEntropyLoss combina log_softmax e a log-verossimilhança negativa; não se deve fornecer a ela probabilidades já normalizadas.

Redução e desequilíbrio

A perda de um batch é geralmente uma média. Com classes raras, é possível ponderar as classes, mas a ponderação não substitui nem um protocolo de validação adequado nem métricas como recall, precisão e PR-AUC.

python
import torch
from torch import nn

weights = torch.tensor([1.0, 4.0])
criterion = nn.CrossEntropyLoss(weight=weights)

Label smoothing

A suavização dos rótulos substitui um alvo absolutamente certo por uma distribuição levemente atenuada. Ela pode reduzir o excesso de confiança, mas modifica a calibração e deve ser validada, não aplicada ritualmente.

Verificação rápida

Por que a accuracy não serve diretamente como perda? É preciso aplicar softmax antes de CrossEntropyLoss?

Respostas

A accuracy é descontínua e não fornece quase nenhum gradiente. Não, a perda espera os logits.

Atividade de domínio — Perda, alvo e métrica

Para preço imobiliário, fraude binária, espécie entre dez e tags independentes, indique a forma dos logits, a codificação do alvo, a perda de treinamento e a métrica de negócio. Adicione um caso em que MAE seria preferível a MSE. Sucesso: a perda e a métrica têm papéis explicitamente distintos.

Da tarefa à função de perda

Leitura: a perda torna o aprendizado diferenciável, enquanto a métrica julga o valor do modelo. Elas podem, portanto, ser diferentes. A principal armadilha é escolher uma perda apenas porque seu nome se parece com a métrica, sem verificar o formato do alvo, os logits esperados e o custo de negócio dos erros.