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 ocorre na aprendizagem automática (ML) quando um modelo aprende os detalhes específicos e o ruído dos seus dados de treino dados de treino a ponto de afetar negativamente o seu desempenho em novos dados. Essencialmente, o modelo memoriza os exemplos de treino de treino em vez de aprender os padrões subjacentes necessários para a para a generalização. Isto resulta num sistema que atinge uma elevada precisão durante o desenvolvimento, mas não consegue fornecer previsões fiáveis quando implementado em cenários do mundo real.
No contexto da aprendizagem supervisionada, o objetivo é criar um modelo que tenha um bom desempenho em entradas não vistas, conhecidas como dados de teste. O sobreajuste ocorre normalmente quando um modelo é demasiado complexo em relação à quantidade de dados disponíveis, uma situação frequentemente descrita como tendo uma variância elevada. Um modelo modelo capta as flutuações aleatórias ou "ruído" no conjunto de dados como se fossem caraterísticas significativas. Este é um desafio central na aprendizagem profunda (AP), que exige que os programadores equilibrem a complexidade e a flexibilidade, muitas vezes referida como equilíbrio entre polarização e variância.
O sobreajuste pode ter consequências graves, dependendo da aplicação:
Os programadores normalmente detect o sobreajuste através da monitorização funções de perda durante o treino. Um indicador claro é quando a perda do treino continua a diminuir enquanto a perda dos perda de dados de validação começa a aumentar. Para combater este facto, são utilizadas várias técnicas:
É importante distinguir este conceito de subadaptação. Enquanto o sobreajuste envolve um modelo que é demasiado complexo e "esforça-se demasiado" para se ajustar aos dados de treino (variância elevada), o subajustamento ocorre quando um O subajustamento ocorre quando um modelo é demasiado simples para captar a tendência subjacente dos dados (viés elevado). Ambos resultam num fraco desempenho preditivo, mas por razões opostas. Para obter o modelo ideal, é necessário navegar entre estes dois extremos.
Bibliotecas modernas como ultralytics simplificar a aplicação de estratégias de prevenção. Por exemplo,
os utilizadores podem facilmente aplicar paragem precoce e abandono quando
formação de um YOLO11 modelo.
from ultralytics import YOLO
# Load the YOLO11 model (recommended for latest SOTA performance)
model = YOLO("yolo11n.pt")
# Train with 'patience' for early stopping and 'dropout' for regularization
# This helps the model generalize better to new images
results = model.train(
data="coco8.yaml",
epochs=100,
patience=10, # Stop if validation loss doesn't improve for 10 epochs
dropout=0.1, # Randomly drop 10% of units to prevent co-adaptation
)