Underfitting
O subajuste ocorre quando um modelo é simples ou pouco treinado demais para captar os padrões dos dados e, por isso, erra tanto nos dados de treinamento quanto nos novos. Sinais e soluções.
O subajuste ocorre quando um modelo de aprendizado de máquina (ML) não consegue captar os padrões dos seus dados de treinamento, por isso comete muitos erros tanto nos exemplos usados no treinamento quanto em exemplos novos. Ajustar uma linha reta a pontos que seguem uma curva, como faz a regressão linear simples, é o exemplo clássico: nenhuma combinação de inclinação e intercepto consegue acompanhar a curvatura. Um modelo com subajuste apresenta alto viés, ou seja, suas suposições são restritivas demais para a relação real entre entradas e saídas, e sua acurácia é baixa tanto no conjunto de treinamento quanto nos dados de teste.
Sinais de subajuste#
O sinal mais claro é uma perda de treinamento que permanece alta. Quando a função de perda se estabiliza bem acima de um nível aceitável e a perda nos dados de validação fica próxima desse valor, o modelo não está aprendendo o suficiente, e a pequena diferença entre as duas perdas mostra que a memorização não é o problema. As curvas de aprendizado que mostram o erro em função do tamanho do conjunto de treinamento revelam um segundo sinal: ambas se estabilizam com um erro alto, então adicionar mais dados do mesmo tipo quase não ajuda. Na detecção de objetos, um modelo cuja média da precisão média (mAP) é baixa até mesmo nas imagens em que foi treinado apresenta subajuste. Comparar as duas perdas permite distinguir o subajuste do sobreajuste:
Causas comuns#
- Capacidade insuficiente: A família do modelo não consegue representar o padrão, como um modelo linear aplicado a dados curvos ou uma rede muito pequena para uma tarefa complexa de visão.
- Poucos épocas: Interromper o treinamento cedo ou usar uma taxa de aprendizado pequena demais para avançar no tempo disponível faz o otimizador parar antes de convergir.
- Regularização excessiva: Decaimento de pesos forte, taxas altas de dropout ou aumento de dados muito agressivo restringem tanto o modelo que ele não consegue ajustar os sinais.
- Características pouco informativas: Variáveis ausentes ou imagens reduzidas até que os objetos pequenos desapareçam removem as informações de que o modelo precisa.
- Gradientes que desaparecem e outras falhas de otimização: As camadas iniciais de uma rede profunda param de aprender mesmo quando o modelo tem capacidade suficiente.
Subajuste no código#
O exemplo a seguir ajusta amostras ruidosas de uma curva seno com uma linha reta e um polinômio cúbico usando o scikit-learn e, em seguida, informa o erro quadrático médio (MSE) nos pontos de treinamento e teste:
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import PolynomialFeatures
# Noisy samples of a curved function
rng = np.random.default_rng(0)
x = rng.uniform(-3, 3, size=(200, 1))
y = np.sin(x).ravel() + rng.normal(0, 0.1, size=200)
x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=0)
# A straight line underfits; a cubic polynomial has enough capacity for the curve
for degree in (1, 3):
model = make_pipeline(PolynomialFeatures(degree), LinearRegression()).fit(x_train, y_train)
train_mse = mean_squared_error(y_train, model.predict(x_train))
test_mse = mean_squared_error(y_test, model.predict(x_test))
print(f"degree {degree}: train MSE {train_mse:.3f}, test MSE {test_mse:.3f}")A linha reta obtém um MSE de treinamento de 0.193 e um MSE de teste de 0.188, valores altos e quase iguais, o que caracteriza subajuste. O modelo cúbico reduz ambos para 0.013 e 0.017, próximos do limite de 0.010 imposto pelo ruído adicionado aos dados.
Como corrigir o subajuste#
As correções devem abordar a causa: um modelo maior ou mais expressivo, treinamento mais longo com uma taxa de aprendizado adequada, regularização mais fraca ou aumento de dados e entradas mais ricas, como imagens de maior resolução. O YOLO26 está disponível nos tamanhos n, s, m, l e x, que dimensionam a profundidade e a largura de uma arquitetura; por isso, passar de yolo26n.pt para um tamanho maior costuma ser o primeiro passo quando as perdas de treinamento e validação em results.csv de uma execução permanecem altas. Objetos pequenos são um caso comum em visão computacional: um detector que recebe imagens de drones em baixa resolução de entrada não detecta objetos pequenos que seriam preservados com uma resolução de entrada maior.
Subajuste vs. sobreajuste#
O subajuste e o sobreajuste são os dois modos de falha do compromisso entre viés e variância. Um modelo com subajuste tem alto viés e erra de maneira semelhante nos dados de treinamento e nos dados novos, enquanto um modelo com sobreajuste tem alta variância, ajustando-se de perto aos dados de treinamento, inclusive ao ruído, e generalizando mal. A representação clássica é uma curva em U do erro de teste, com o subajuste à esquerda e o sobreajuste à direita. As redes neurais grandes complicam essa representação com a dupla descida, em que o erro de teste pode voltar a cair quando o modelo fica grande o suficiente para ajustar exatamente os dados de treinamento, um padrão observado em diferentes tamanhos de modelo e épocas de treinamento.










