Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Validation Data

Os dados de validação são uma divisão reservada, avaliada durante o desenvolvimento para ajustar hiperparâmetros, escolher checkpoints e detectar sobreajuste antes do teste final.

Os dados de validação são uma parte dos dados anotados que não é usada no treino e é avaliada repetidamente durante o desenvolvimento para comparar modelos, ajustar hiperparâmetros, escolher checkpoints e detetar o sobreajuste. O modelo nunca atualiza os seus pesos com base nesses dados, pelo que a pontuação de validação mostra até que ponto o que aprendeu com os dados de treino se aplica a imagens que ainda não viu. «Conjunto de validação» e «conjunto de desenvolvimento» (dev) são sinónimos. Cada decisão baseada nas pontuações de validação ajusta um pouco mais o modelo a essa divisão específica; por isso, reserva-se um conjunto de teste separado para a estimativa final e imparcial.

Divisões de treinamento, validação e teste#

Um conjunto de dados anotados costuma ser dividido em três partes:

  • Conjunto de treino: Os exemplos aos quais o otimizador ajusta os pesos, normalmente 70 a 80 por cento dos dados.
  • Conjunto de validação: Avaliado após cada execução de treino ou época para orientar decisões como a taxa de aprendizagem, o tamanho do modelo, a intensidade do aumento de dados e o momento de parar.
  • Conjunto de teste: Avaliado uma vez, depois de todas as decisões estarem definidas, para comunicar o desempenho esperado no mundo real.

As divisões 70/15/15 ou 80/10/10 são comuns em conjuntos de dados com milhares de imagens. Conjuntos de dados muito grandes precisam de uma proporção menor para obter estimativas fiáveis: o ImageNet-1k reserva 50.000 imagens para validação face a 1.281.167 imagens de treino. Como os rótulos de teste não são públicos, a precisão no ImageNet é convencionalmente comunicada com base nesse conjunto de validação, que passa assim a servir de conjunto de teste.

Um conjunto de validação útil corresponde aos dados que o modelo encontrará na implantação e não compartilha nenhum dado com o conjunto de treinamento. Divisões aleatórias no nível da imagem causam vazamento de informações quando várias imagens vêm do mesmo vídeo, paciente ou local, pois o modelo pode reconhecer a cena em vez do objeto. A divisão por grupos, como por paciente ou sessão de gravação, evita esse vazamento de dados.

Ajuste de hiperparâmetros e seleção de modelos#

Os pesos são aprendidos por descida do gradiente, enquanto os hiperparâmetros são escolhidos treinando vários candidatos e selecionando aquele com a melhor pontuação de validação. As pontuações de treino não permitem fazer esta escolha, porque os modelos maiores e treinados durante mais tempo quase sempre se ajustam melhor aos dados de treino. O script de scikit-learn abaixo ajusta a profundidade de uma árvore de decisão no conjunto de dados de dígitos incluído:

from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier

# Split 1,797 digit images 60/20/20 into training, validation, and test sets
X, y = load_digits(return_X_y=True)
X_train, X_rest, y_train, y_rest = train_test_split(X, y, test_size=0.4, random_state=0, stratify=y)
X_val, X_test, y_val, y_test = train_test_split(X_rest, y_rest, test_size=0.5, random_state=0, stratify=y_rest)

# Fit one model per candidate tree depth and score each on the validation set
val_scores = {}
for depth in (2, 4, 8, 16):
    model = DecisionTreeClassifier(max_depth=depth, random_state=0).fit(X_train, y_train)
    val_scores[depth] = model.score(X_val, y_val)
    print(f"depth {depth}: train {model.score(X_train, y_train):.3f}, validation {val_scores[depth]:.3f}")

# Refit the winner and score the test set exactly once
best = max(val_scores, key=val_scores.get)
final = DecisionTreeClassifier(max_depth=best, random_state=0).fit(X_train, y_train)
print(f"Chosen depth {best}: test accuracy {final.score(X_test, y_test):.3f}")

A precisão no treino continua a aumentar com a profundidade e chega a 1.000 na profundidade 16, enquanto a precisão na validação atinge um máximo de 0.836 na profundidade 8 e desce para 0.825 na profundidade 16, quando a árvore começa a memorizar os dados. A validação seleciona a profundidade 8, que obtém uma pontuação de 0.853 no conjunto de teste não utilizado.

Paragem antecipada e seleção de checkpoints#

Os ciclos de treino de aprendizagem profunda costumam avaliar o conjunto de validação após cada época. A perda de treino continua a diminuir à medida que a rede se ajusta cada vez mais aos dados de treino, mas a perda ou a precisão na validação acaba por estabilizar e depois piorar. A paragem antecipada termina o treino quando a pontuação de validação deixa de melhorar durante um número definido de épocas, chamado paciência, e mantém os pesos da melhor época.

Por predefinição, o treino do YOLO26 no Ultralytics executa este ciclo: avalia a divisão val do YAML do conjunto de dados após cada época, guarda a época com a melhor pontuação de validação (mAP50-95 para deteção) como best.pt e para após patience épocas sem melhorias, 100 por predefinição.

from ultralytics import YOLO

# Carrega um detector nano YOLO26 pré-treinado
model = YOLO("yolo26n.pt")

# Validar na divisão val após cada época e parar após 10 épocas sem melhorias
results = model.train(data="coco8.yaml", epochs=50, patience=10)

Validação cruzada para conjuntos de dados pequenos#

Quando há poucos dados, uma única divisão reservada desperdiça exemplos e produz uma pontuação variável. A validação cruzada K-fold divide os dados em K partições, treina K modelos, cada um com uma partição diferente reservada para validação, e calcula a média das K pontuações, pelo que cada exemplo é usado tanto no treino como na validação. Cinco e dez partições são comuns, e as variantes estratificadas e agrupadas mantêm as proporções das classes equilibradas ou as imagens relacionadas juntas em cada partição. Um conjunto de teste continua a ficar fora de todas as partições.

  • Dados de teste: Avaliados uma vez, no final. Reutilizá-los para tomar decisões transforma-os num segundo conjunto de validação, e a respetiva pontuação deixa de ser uma estimativa imparcial.
  • Dados de treino: A única divisão a partir da qual o otimizador aprende os pesos.
  • Validação cruzada: Um procedimento que alterna os exemplos usados como dados de validação, produzindo K pontuações de validação a partir de um único conjunto de dados.
  • Validação em textos clínicos e regulamentares: Na medicina e em setores regulamentados, validar um modelo significa muitas vezes avaliar o modelo final com dados externos independentes, o que corresponde ao conjunto de teste na terminologia da aprendizagem automática.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina