Training Data
Os dados de treinamento são o conjunto de exemplos a partir dos quais um modelo aprende seus pesos. Veja como diferem dos dados de validação e de teste, e por que a qualidade dos rótulos é tão importante quanto o volume.
Os dados de treinamento são o conjunto de exemplos com que um modelo de aprendizado de máquina aprende. Durante o treinamento, um otimizador ajusta repetidamente os pesos do modelo para reduzir o erro nesses exemplos; assim, eles definem o que o modelo pode aprender. No aprendizado supervisionado, cada exemplo associa uma entrada à resposta correta, como uma foto de rua com uma caixa delimitadora e o nome da classe de cada carro e pedestre. O aprendizado autossupervisionado e o aprendizado não supervisionado treinam com entradas brutas sem rótulos. Conjunto de treinamento é um sinônimo e, na maioria dos projetos, representa a maior divisão dos dados disponíveis, geralmente de 70% a 80%.
Como os modelos usam dados de treinamento#
O modelo processa os dados de treinamento em lotes. Para cada lote, gera previsões, uma função de perda mede a distância entre as previsões e os rótulos, a retropropagação calcula a contribuição de cada peso para o erro, e o otimizador ajusta os pesos para reduzi-lo. Uma passagem completa pelo conjunto de treinamento é uma época, e o treinamento costuma durar de dezenas a centenas de épocas.
Como o modelo é otimizado com esses exemplos específicos, sua pontuação neles superestima o desempenho em dados novos. Duas divisões separadas ajudam a corrigir isso. Os dados de validação são avaliados durante o desenvolvimento para escolher hiperparâmetros e pontos de verificação, e os dados de teste são avaliados uma vez, ao final, para estimar o desempenho no mundo real. Uma grande diferença entre as pontuações de treinamento e validação indica sobreajuste: o modelo memoriza exemplos de treinamento em vez de aprender padrões que generalizam. Pontuações baixas em ambos indicam subajuste. As divisões não podem compartilhar imagens: quadros quase idênticos do mesmo vídeo ou exames do mesmo paciente em ambos os lados da divisão causam vazamento de dados e elevam artificialmente todas as pontuações dos dados reservados.
Quantidade, qualidade e abrangência#
Três características de um conjunto de treinamento determinam a capacidade de generalização de um modelo:
- Quantidade: Mais exemplos ajudam, embora os benefícios diminuam com o tempo. Começar com um modelo pré-treinado por meio de aprendizado por transferência reduz a quantidade de exemplos rotulados necessária para uma nova tarefa.
- Qualidade: Cada rótulo incorreto, ausente ou desenhado de forma inconsistente ensina algo falso ao modelo. Diretrizes consistentes de rotulagem de dados são tão importantes quanto a quantidade de rótulos.
- Cobertura: Os exemplos precisam abranger as condições que o modelo enfrentará, como iluminação, clima, ângulos de câmera, fundos e classes raras. Um detector treinado apenas com imagens diurnas falha à noite; quando as lacunas seguem linhas demográficas, como tons de pele ausentes em um conjunto de imagens faciais, tornam-se viés do conjunto de dados.
O script scikit-learn abaixo treina o mesmo classificador no conjunto de dados de dígitos manuscritos incluído no pacote, usando diferentes conjuntos de treinamento, e avalia cada modelo na mesma divisão de teste fixa:
import numpy as np
from sklearn.datasets import load_digits
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
# 1,797 labeled 8x8 digit images; hold out 30% to score every model
X, y = load_digits(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0, stratify=y)
# Reassign 30% of the training labels at random to simulate careless labeling
rng = np.random.default_rng(0)
y_noisy = y_train.copy()
flip = rng.random(len(y_train)) < 0.3
y_noisy[flip] = rng.integers(0, 10, flip.sum())
# Train the same model on three different training sets
for name, n, labels in [("50 clean", 50, y_train), ("1,257 clean", 1257, y_train), ("1,257 noisy", 1257, y_noisy)]:
model = LogisticRegression(max_iter=5000).fit(X_train[:n], labels[:n])
print(f"{name}: test accuracy {model.score(X_test, y_test):.3f}")Aumentar o conjunto de treinamento limpo de 50 para 1.257 imagens eleva a precisão no teste de 0,863 para 0,961. A execução com ruído, em que 315 dos 1.257 rótulos (25%) acabam incorretos, alcança 0,861, sem superar o modelo treinado com 50 imagens limpas.
Como criar um conjunto de treinamento#
As equipes reúnem dados de treinamento de conjuntos de dados públicos, das próprias câmeras e registros e, cada vez mais, de dados sintéticos. Os benchmarks públicos são um ótimo ponto de partida: o conjunto de dados COCO fornece 118.287 imagens de treinamento rotuladas para detecção, segmentação e geração de legendas. As coleções brutas passam então por limpeza de dados para remover duplicatas, arquivos corrompidos e imagens fora do escopo, seguida de rotulagem e revisão. O aumento de dados amplia a variedade dos dados durante o treinamento com inversões, recortes, alterações de cor e mosaicos, mas só pode recombinar o material coletado; portanto, ainda é preciso fotografar as condições que estiverem faltando.
O Ultralytics YOLO lê os dados de treinamento do caminho train de um arquivo YAML de conjunto de dados e associa cada imagem a um arquivo de rótulos .txt, que contém uma linha por objeto: um índice de classe seguido pelo centro, a largura e a altura da caixa, normalizados para o tamanho da imagem. O mesmo formato de conjunto de dados YOLO é usado em todas as divisões, então reequilibrá-las exige mover as imagens e seus arquivos de rótulos entre pastas.
from ultralytics import YOLO
# Carrega um modelo nano YOLO26 pré-treinado
model = YOLO("yolo26n.pt")
# coco8.yaml lista as imagens de treinamento (train: images/train) e as imagens de validação (val: images/val)
results = model.train(data="coco8.yaml", epochs=5)O modelo YOLO26 é ajustado com as quatro imagens de treinamento do COCO8, uma pequena amostra usada para verificar se um pipeline de treinamento é executado de ponta a ponta.
Dados de treinamento vs. termos relacionados#
- Dados de validação: Uma divisão reservada que orienta decisões durante o desenvolvimento, como o momento de interromper o treinamento. O modelo nunca atualiza seus pesos com esses dados.
- Dados de teste: Uma divisão reservada avaliada uma única vez, ao final, para que o resultado seja uma estimativa imparcial do desempenho em dados novos.
- Verdade fundamental: As respostas corretas associadas aos exemplos. No aprendizado supervisionado, os dados de treinamento incluem a verdade fundamental, mas todas as divisões precisam dela para a avaliação.
- Conjunto de dados de referência: Um pequeno conjunto verificado por especialistas, usado como referência confiável para avaliação e verificações da qualidade da anotação.
- Conjunto de dados de benchmark: Um conjunto de dados público com divisões fixas, usado para comparar modelos. A divisão de treino muitas vezes também serve como dados de pré-treino, e a divisão reservada torna-se a tabela de classificação, como acontece com a divisão val2017 do COCO, com 5.000 imagens, na qual muitos artigos sobre deteção apresentam o mAP.










