Label Smoothing
Aprende como o label smoothing evita o overfitting e melhora a generalização dos modelos. Descobre como implementar esta técnica com o Ultralytics YOLO26 para obter melhores resultados.
A suavização de rótulos é uma técnica de regularização amplamente utilizada em machine learning para melhorar a generalização do modelo e evitar o sobreajuste. Ao treinar redes neurais, o objetivo normalmente é minimizar o erro entre as previsões e a verdade de referência. No entanto, se um modelo se tornar demasiado confiante nas suas previsões — atribuindo uma probabilidade próxima de 100% a uma única classe —, muitas vezes começa a memorizar o ruído específico dos dados de treino em vez de aprender padrões robustos. Este fenómeno, conhecido como sobreajuste, degrada o desempenho em exemplos novos e não vistos. A suavização de rótulos resolve este problema ao desencorajar o modelo de fazer previsões com certeza absoluta, dizendo essencialmente à rede que existe sempre uma pequena margem de erro.
A mecânica dos alvos suaves#
Para compreender como funciona a suavização de rótulos, é útil contrastá-la com os alvos "rígidos" padrão. Na aprendizagem supervisionada tradicional, os rótulos de classificação são normalmente representados através de codificação one-hot. Por exemplo, numa tarefa que distingue entre gatos e cães, uma imagem de um "cão" teria um vetor-alvo de [0, 1]. Para corresponder perfeitamente a este vetor, o modelo empurra as suas pontuações internas, conhecidas como logits, em direção ao infinito, o que pode causar gradientes instáveis e incapacidade de adaptação.
A suavização de rótulos substitui estes 1 e 0 rígidos por alvos "suaves". Em vez de uma probabilidade-alvo de 1.0, à classe correta pode ser atribuído 0.9, enquanto a massa de probabilidade restante (0.1) é distribuída uniformemente pelas classes incorretas. Esta alteração subtil modifica o objetivo da função de perda, como a entropia cruzada, evitando que a função de ativação (normalmente Softmax) fique saturada. O resultado é um modelo que aprende agrupamentos de classes mais compactos no espaço de características e produz uma melhor calibração do modelo, o que significa que as probabilidades previstas refletem com maior precisão a verdadeira probabilidade de correção.
Aplicações no mundo real#
Esta técnica é particularmente importante em domínios onde a ambiguidade dos dados é inerente ou os conjuntos de dados são propensos a erros de anotação.
- Diagnóstico médico: No campo da IA na saúde, os dados clínicos raramente são totalmente inequívocos. Por exemplo, na análise de imagens médicas, um exame pode mostrar características altamente sugestivas de uma doença, mas não definitivas. O treino com rótulos rígidos força o modelo a ignorar esta incerteza. Ao aplicar a suavização de rótulos, o modelo mantém um certo grau de ceticismo, o que é essencial para sistemas de apoio à decisão, nos quais o excesso de confiança pode levar a diagnósticos incorretos.
- Classificação de imagens em grande escala: Grandes conjuntos de dados públicos, como o ImageNet, contêm frequentemente imagens com rótulos incorretos ou imagens que incluem vários objetos válidos. Se um modelo tentar ajustar-se a estes exemplos ruidosos com 100% de confiança, aprenderá associações incorretas. A suavização de rótulos funciona como uma proteção contra o ruído dos rótulos, garantindo que alguns pontos de dados incorretos não distorcem drasticamente os pesos do modelo finais.
Implementação da suavização de rótulos com Ultralytics#
As modernas frameworks de deep learning simplificam a aplicação desta técnica. Com o pacote ultralytics, podes integrar facilmente a suavização de rótulos no teu pipeline de treino para tarefas de classificação de imagens ou deteção. Isto é frequentemente feito para extrair um desempenho adicional de modelos de última geração, como o YOLO26.
O exemplo seguinte demonstra como treinar um modelo de classificação com a suavização de rótulos ativada:
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Train with label_smoothing set to 0.1
# The target for the correct class becomes 1.0 - 0.5 * 0.1 = 0.95 (depending on implementation specifics)
model.train(data="mnist", epochs=5, label_smoothing=0.1)Comparação com conceitos relacionados#
É útil distinguir a suavização de rótulos de outras estratégias de regularização para compreender quando a utilizar.
- vs. Dropout: Uma camada de dropout desativa aleatoriamente neurónios durante o treino para forçar a rede a aprender representações redundantes. Embora ambos evitem o sobreajuste, o dropout modifica dinamicamente a arquitetura da rede, enquanto a suavização de rótulos modifica o alvo da otimização (os próprios rótulos).
- vs. Destilação de conhecimento: Ambas as técnicas envolvem o treino com alvos suaves. No entanto, na destilação de conhecimento, os alvos suaves provêm de um modelo "professor" e contêm informação aprendida (por exemplo, "isto parece 10% com um gato"). Em contrapartida, a suavização de rótulos utiliza alvos suaves "não informativos", obtidos matematicamente (por exemplo, "atribuir 10% de probabilidade a todas as outras classes de forma igual").
- vs. Aumento de dados: As estratégias de aumento de dados alteram os dados de entrada (rodando, recortando e modificando as cores) para aumentar a variedade. A suavização de rótulos altera as expectativas de saída. Os fluxos de trabalho de treino abrangentes na Ultralytics Platform combinam frequentemente aumento de dados, dropout e suavização de rótulos para alcançar a máxima precisão.
Ao reduzir o problema do gradiente evanescente nas camadas finais e incentivar o modelo a aprender características mais robustas, a suavização de rótulos continua a ser um elemento fundamental das arquiteturas modernas de deep learning.









