Sintonize na YOLO Vision 2025!
25 de setembro de 2025
10:00 — 18:00 BST
Evento híbrido
Yolo Vision 2024
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 overfitting é um conceito fundamental em aprendizado de máquina (ML) que ocorre quando um modelo aprende os detalhes e o ruído nos dados de treinamento a tal ponto que impacta negativamente o desempenho do modelo em dados novos e não vistos. Em essência, o modelo memoriza o conjunto de treinamento em vez de aprender os padrões subjacentes. Isso resulta em um modelo que atinge alta precisão nos dados em que foi treinado, mas não consegue generalizar para dados do mundo real, tornando-o não confiável para aplicações práticas. Alcançar uma boa generalização é um objetivo primordial no desenvolvimento de IA.

Como Identificar Overfitting

O overfitting é normalmente identificado monitorando o desempenho do modelo tanto no conjunto de dados de treinamento quanto em um conjunto de dados de validação separado durante o processo de treinamento. Um sinal comum de overfitting é quando o valor da função de perda para o conjunto de treinamento continua a diminuir, enquanto a perda para o conjunto de validação começa a aumentar. Da mesma forma, se a precisão do treinamento continuar a melhorar, mas a precisão da validação estabilizar ou piorar em épocas subsequentes, é provável que o modelo esteja sofrendo de overfitting. Ferramentas como o TensorBoard são excelentes para visualizar essas métricas e diagnosticar esses problemas precocemente. Plataformas como o Ultralytics HUB também podem ajudar a rastrear experimentos e avaliar modelos para detectar overfitting.

Overfitting vs. Underfitting

O overfitting e o underfitting são dois problemas comuns em aprendizado de máquina que representam a falha de um modelo em generalizar. Eles são essencialmente problemas opostos.

  • Overfitting: O modelo é muito complexo para os dados (alta variância). Ele captura ruído e flutuações aleatórias nos dados de treinamento, levando a um excelente desempenho durante o treinamento, mas a um desempenho ruim nos dados de teste.
  • Underfitting: O modelo é demasiado simples para capturar a estrutura subjacente dos dados (alto viés). Tem um desempenho fraco tanto nos dados de treino como nos dados de teste porque não consegue aprender os padrões relevantes.

O desafio no aprendizado profundo é encontrar o equilíbrio certo, um conceito frequentemente descrito pelo tradeoff entre viés e variância.

Exemplos reais de Overfitting

  1. Deteção de Objetos em Veículos Autónomos: Imagine treinar um modelo Ultralytics YOLO para um veículo autónomo utilizando um conjunto de dados que contenha apenas imagens de condições soalheiras e diurnas. O modelo pode tornar-se altamente especializado na deteção de peões e carros com luz forte, mas falhar drasticamente à noite ou em tempo chuvoso ou com nevoeiro. Tornou-se excessivamente especializado nas condições específicas de iluminação e meteorológicas dos dados de treino. A utilização de conjuntos de dados diversificados como o Argoverse pode ajudar a evitar isto.
  2. Análise de Imagens Médicas: Um modelo de CNN é treinado para detectar tumores a partir de exames de ressonância magnética provenientes de um único hospital. O modelo pode inadvertidamente aprender a associar artefatos específicos ou padrões de ruído da máquina de ressonância magnética particular desse hospital com a presença de um tumor. Quando testado em exames de um hospital diferente com uma máquina diferente, seu desempenho pode cair significativamente porque ele se ajustou demais ao ruído do conjunto de treinamento original, e não aos marcadores biológicos reais dos tumores. Esta é uma questão crítica em áreas como a IA na área da saúde.

Como Prevenir Overfitting

Várias técnicas podem ser empregadas para combater o overfitting e construir modelos mais robustos.

  • Obtenha Mais Dados: Aumentar o tamanho e a diversidade do conjunto de dados de treinamento é uma das maneiras mais eficazes de evitar o overfitting. Mais dados ajudam o modelo a aprender os verdadeiros padrões subjacentes, em vez de ruído. Você pode explorar uma variedade de conjuntos de dados Ultralytics para aprimorar seus projetos.
  • Aumento de Dados: Isso envolve expandir artificialmente o conjunto de dados de treinamento, criando cópias modificadas dos dados existentes. Técnicas como rotações aleatórias, escalonamento, recorte e mudanças de cor são aplicadas. As técnicas de aumento de dados Ultralytics YOLO são integradas para melhorar a robustez do modelo.
  • Simplificar a Arquitetura do Modelo: Às vezes, um modelo é muito complexo para o conjunto de dados fornecido. Usar uma arquitetura mais simples com menos parâmetros pode impedir que ele memorize os dados. Por exemplo, escolher uma variante de modelo menor, como YOLOv8n vs. YOLOv8x, pode ser benéfico para conjuntos de dados menores.
  • Regularização: Esta técnica adiciona uma penalidade à função de perda com base na complexidade do modelo, desencorajando pesos de modelo grandes. Métodos comuns são a regularização L1 e L2, sobre os quais você pode ler mais aqui.
  • Dropout: Uma forma específica de regularização onde uma fração aleatória de neurônios é ignorada durante cada etapa de treinamento. Isso força a rede a aprender representações redundantes e impede que qualquer neurônio individual se torne excessivamente influente. O conceito de Dropout é explicado em detalhes aqui.
  • Early Stopping: Isso envolve monitorar o desempenho do modelo em um conjunto de validação e interromper o processo de treinamento assim que o desempenho da validação começar a diminuir, mesmo que o desempenho do treinamento ainda esteja melhorando. Você pode ver uma explicação de early stopping no Keras para obter mais detalhes.
  • Validação Cruzada: Ao usar técnicas como a validação cruzada K-Fold, os dados são divididos em várias partes, e o modelo é treinado e validado em diferentes subconjuntos. Isso fornece uma estimativa mais robusta da capacidade de generalização do modelo.
  • Poda de Modelo (Model Pruning): Isso envolve remover parâmetros ou conexões de uma rede treinada que têm pouco impacto em seu desempenho, reduzindo assim a complexidade. Empresas como a Neural Magic oferecem ferramentas especializadas na poda de modelos para uma implantação eficiente.

Junte-se à comunidade Ultralytics

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

Junte-se agora
Link copiado para a área de transferência