Yolo Vision Shenzhen
Shenzhen
Junte-se agora
Glossário

Overfitting

Descubra como identificar, prevenir e resolver o overfitting em machine learning. Descubra técnicas para melhorar a generalização do modelo e o desempenho no mundo real.

O sobreajuste é um fenómeno comum na aprendizagem automática (ML), em que um modelo aprende os dados de treino muito bem, captando ruído e flutuações aleatórias em vez do padrão subjacente. Isso resulta num modelo que tem um desempenho excepcionalmente bom nos dados em que foi treinado, mas não consegue generalizar para informações novas e desconhecidas . Essencialmente, o modelo memoriza as respostas específicas em vez de aprender as regras gerais necessárias para fazer previsões em cenários do mundo real. Esta é uma questão crítica, porque o objetivo principal de qualquer agente de IA ou sistema preditivo é lidar com dados novos com precisão, não apenas recordar exemplos passados.

Por que ocorre o sobreajuste

O sobreajuste ocorre normalmente quando um modelo é demasiado complexo em relação à quantidade e variedade de dados disponíveis. Se uma rede neural (NN) tiver demasiados parâmetros ou camadas, tem a capacidade de «memorizar» o conjunto de treino. Outros fatores que contribuem para isso incluem:

  • Dados de treino insuficientes: quando o conjunto de dados é pequeno, o modelo pode identificar padrões que são específicos apenas para essa pequena amostra, mas que não existem na população mais ampla.
  • Dados ruidosos: se os dados de treino contiverem erros ou valores atípicos, o modelo poderá tentar incorporar essas anomalias nas suas regras, levando a um desempenho insatisfatório noutros aspetos.
  • Treinamento prolongado: Treinar por muitas épocas permite que o modelo refine os seus pesos internos a um ponto em que começa a se ajustar ao ruído nos dados, em vez do sinal.

Exemplos do Mundo Real

As consequências do sobreajuste podem ser observadas em vários setores onde a IA é implementada:

  • Imagiologia médica: Na IA na área da saúde, um modelo pode ser treinado para detect em raios-X de um hospital específico. Se o modelo for sobreajustado, ele pode aprender a associar as "marcas d'água" específicas ou o ruído do equipamento das máquinas de raios-X desse hospital à presença de tumores. Quando implantado em um hospital diferente, com máquinas diferentes, o modelo falha em detect tumores porque estava baseando-se em pistas erradas.
  • Detecção de fraudes: Um algoritmo financeiro projetado para detectar anomalias pode se ajustar excessivamente a transações fraudulentas passadas que ocorreram apenas durante as épocas festivas. Como resultado, ele pode sinalizar gastos legítimos durante as festas como fraudes, enquanto ignora novos padrões sofisticados de fraude que ocorrem durante o resto do ano.

Detetar e prevenir o sobreajuste

Os engenheiros utilizam estratégias específicas para identificar quando um modelo está a começar a sobreajustar-se. O método mais comum envolve dividir os dados em conjuntos de dados de treino e validação. Se o erro de treino continuar a diminuir enquanto o erro de validação começa a aumentar, está a ocorrer sobreajuste.

Para combater isso, várias técnicas são práticas padrão:

  • Aumento de dados: Ao expandir artificialmente o conjunto de dados usando aumento de dados— como rodar, inverter ou adicionar ruído às imagens — os programadores forçam o modelo a ser mais robusto e invariante a pequenas alterações.
  • Regularização: Técnicas como regularização L1 ou L2 adicionam uma penalidade à função de perda por complexidade, desencorajando o modelo de atribuir demasiada importância a qualquer característica individual.
  • Dropout: a inserção de uma camada dropout ignora aleatoriamente um subconjunto de neurónios durante o treino, o que impede que a rede se torne excessivamente dependente de vias específicas.
  • Paragem antecipada: envolve monitorizar o desempenho do modelo num conjunto de validação e interromper o processo de treino assim que o desempenho deixar de melhorar, impedindo que o modelo aprenda ruído em fases posteriores.

Overfitting vs. Underfitting

É importante distinguir o sobreajuste do subajuste. Enquanto o sobreajuste se comporta como um aluno que memoriza o livro didático, mas é reprovado na prova, o subajuste é como um aluno que mal estudou. Um modelo subajustado é simples demais para capturar a tendência subjacente dos dados, resultando em baixo desempenho tanto nos conjuntos de treino quanto nos de teste. Essa relação é frequentemente descrita como o compromisso entre viés e variância, em que alta variância leva ao sobreajuste e alto viés leva ao subajuste.

Exemplo de implementação

Ao treinar modelos modernos de deteção de objetos, como YOLO26, os parâmetros podem ser ajustados para evitar o sobreajuste diretamente no comando de treino. O seguinte Python demonstra como aplicar dropout e patience (para interrupção antecipada) usando o ultralytics pacote.

from ultralytics import YOLO

# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")

# Train with techniques to prevent overfitting
# 'dropout' adds regularization, 'patience' enables early stopping
results = model.train(
    data="coco8.yaml",
    epochs=100,
    dropout=0.1,  # 10% dropout rate
    patience=10,  # Stop if validation loss doesn't improve for 10 epochs
    imgsz=640,
)

Ao ajustar cuidadosamente esses hiperparâmetros, os programadores podem garantir que os seus modelos sejam robustos, precisos e prontos para implementação em diversos ambientes.

Junte-se à comunidade Ultralytics

Junte-se ao futuro da IA. Conecte-se, colabore e cresça com inovadores globais

Junte-se agora