Underfitting
Aprende a identificar e resolver o underfitting em machine learning. Explora as causas e os indicadores e aprende a otimizar modelos Ultralytics YOLO26 para obter maior precisão.
O subajuste ocorre quando um modelo de aprendizagem automática é demasiado simples ou não tem capacidade para captar as tendências e os padrões subjacentes nos dados de treino. Conceptualmente, é análogo a tentar ajustar uma linha reta a pontos de dados que formam uma curva distinta; o modelo não consegue compreender a complexidade da relação entre as entradas e as saídas. Como o modelo não aprendeu os dados de forma eficaz, apresenta um desempenho fraco não só no conjunto de treino, mas também em dados de validação não vistos, o que resulta numa baixa precisão preditiva. Este fenómeno resulta frequentemente de um elevado viés na IA, em que o algoritmo faz suposições demasiado simplistas sobre a função-alvo.
Causas e indicadores#
Vários fatores podem levar a um modelo com subajuste. A causa mais comum é utilizar uma arquitetura de modelo que não é suficientemente complexa para a tarefa em questão, como aplicar regressão linear a dados não lineares. Uma duração de treino insuficiente, em que não são fornecidas ao modelo épocas suficientes para convergir, também impede uma aprendizagem adequada. Além disso, uma regularização excessiva—uma técnica normalmente utilizada para evitar o problema oposto—pode restringir demasiado o modelo, impedindo-o de captar características importantes.
Os engenheiros podem identificar o subajuste monitorizando as funções de perda durante o treino. Se tanto o erro de treino como o erro de validação permanecerem elevados e não diminuírem significativamente, é provável que o modelo apresente subajuste. Ao contrário de uma eficaz engenharia de características, que ajuda os modelos a compreender os dados, fornecer poucas características também pode privar o modelo das informações necessárias.
Subajuste vs. sobreajuste#
É crucial distinguir o subajuste do seu oposto, o sobreajuste. Estes dois conceitos representam os extremos opostos do compromisso entre viés e variância.
- Subajuste (viés elevado): O modelo é demasiado rígido. Tem um desempenho fraco tanto nos dados de treino como nos dados de teste, porque não aprendeu o sinal básico.
- Sobreajuste (variância elevada): O modelo é demasiado flexível. Memoriza os dados de treino, incluindo o ruído, apresentando um desempenho excecional durante o treino, mas não conseguindo generalizar para novos exemplos.
Encontrar o "ponto ideal" entre estes dois extremos é o principal objetivo da otimização de modelos.
Aplicações no mundo real#
Compreender o subajuste é essencial para desenvolver sistemas de IA fiáveis em vários setores.
- Condução autónoma: No contexto dos veículos autónomos, um modelo de deteção de objetos com subajuste pode não conseguir distinguir entre um peão e um poste de iluminação em ambientes urbanos complexos. Como o modelo não tem os parâmetros necessários para aprender as diferenças visuais subtis, coloca em risco a segurança da IA.
- Diagnóstico médico: Ao aplicar a análise de imagens médicas para detetar anomalias como tumores, um modelo demasiado simples pode não identificar crescimentos pequenos ou irregulares. Se a rede neuronal for demasiado pouco profunda, não consegue aprender as texturas complexas necessárias para obter uma elevada sensibilidade e especificidade, o que resulta em diagnósticos falhados.
Abordar o subajuste com código#
Em visão computacional, o subajuste ocorre frequentemente ao utilizar uma variante de modelo demasiado pequena para a dificuldade da tarefa (por exemplo, detetar objetos pequenos em imagens de drones de alta resolução). O exemplo seguinte em Python demonstra como mudar de um modelo mais pequeno para um modelo maior e mais capaz utilizando a biblioteca ultralytics para resolver um possível subajuste.
from ultralytics import YOLO
# If 'yolo26n.pt' (Nano) is underfitting and yielding low accuracy,
# upgrade to a model with higher capacity like 'yolo26l.pt' (Large).
model = YOLO("yolo26l.pt")
# Train the larger model.
# Increasing epochs also helps the model converge if it was previously underfitting.
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Ao mudar para um modelo Ultralytics YOLO26 maior e garantir uma duração de treino adequada, o sistema obtém os parâmetros necessários para aprender padrões complexos, reduzindo eficazmente o subajuste. Para verificar se o teu modelo já não apresenta subajuste, avalia-o sempre com um conjunto de dados de teste robusto. Para gerir conjuntos de dados e acompanhar experiências de modo a detetar precocemente o subajuste, a Ultralytics Platform oferece ferramentas abrangentes de visualização e análise.









