Explore cross-validation to prevent overfitting and boost model reliability. Learn how to implement K-Fold splits with YOLO26 to ensure your AI generalizes well.
A validação detect ada é um procedimento robusto de reamostragem estatística usado para avaliar o desempenho de modelos de aprendizagem automática (ML) em uma amostra de dados limitada . Ao contrário do método padrão de retenção, que divide os dados em um único conjunto de treino e teste, a validação cruzada envolve a divisão do conjunto de dados em vários subconjuntos para garantir que todos os pontos de dados sejam usados tanto para treino quanto para validação. Essa técnica é fundamental para avaliar como os resultados de uma análise estatística serão generalizados para um conjunto de dados independente, ajudando a detectar o sobreajuste, em que um modelo pode memorizar exemplos de treino em vez de aprender padrões generalizáveis.
A variação mais amplamente utilizada desta técnica é a validação cruzada K-Fold. Neste processo, o conjunto de dados inteiro é dividido aleatoriamente em k grupos de tamanho igual, ou «dobras». O processo de treino é então repetido k vezes. Em cada iteração, uma única dobra atua como os dados de validação para testar o modelo, enquanto as k-1 dobras restantes servem como os dados de treino.
A métrica de desempenho final é normalmente calculada pela média das pontuações — tais como exatidão, precisão ou precisão média (mAP)— obtidas em cada ciclo. Essa abordagem reduz significativamente a variação associada a uma única tentativa de divisão entre treino e teste, fornecendo uma estimativa mais confiável do erro de generalização. Ela garante que a avaliação não seja influenciada por uma seleção arbitrária dos dados de teste.
A validação cruzada é particularmente útil ao trabalhar com conjuntos de dados menores ou ao realizar um rigoroso ajuste de hiperparâmetros. Embora as modernas estruturas de aprendizagem profunda como o PyTorch facilitam o ciclo de treino, o gerenciamento das dobras requer uma preparação cuidadosa dos dados.
O exemplo a seguir demonstra como iterar através de ficheiros de configuração YAML pré-gerados para uma experiência de validação cruzada de 5 dobras usando o modelo YOLO26. Isso pressupõe que já dividiu o seu conjunto de dados em cinco ficheiros de configuração separados.
from ultralytics import YOLO
# List of dataset configuration files representing 5 folds
fold_yamls = [f"dataset_fold_{i}.yaml" for i in range(5)]
for i, yaml_file in enumerate(fold_yamls):
# Load a fresh YOLO26 Nano model for each fold
model = YOLO("yolo26n.pt")
# Train the model, saving results to a unique project directory
results = model.train(data=yaml_file, epochs=20, project="cv_experiment", name=f"fold_{i}")
Para uma análise mais aprofundada sobre a automatização da geração de divisão, consulte o guia sobre Validação cruzada K-Fold.
A validação cruzada é indispensável em setores onde os dados são escassos, caros de coletar ou onde é necessária uma confiabilidade crítica para a segurança .
Integrar a validação cruzada no ciclo de vida do desenvolvimento da IA fornece informações cruciais sobre o equilíbrio entre viés e variância.
É importante distinguir a validação cruzada de outros termos de avaliação:
Gerenciar os artefatos, métricas e modelos de várias dobras pode ser complexo. A Ultralytics simplifica isso, oferecendo rastreamento centralizado de experiências , permitindo que as equipas comparem o desempenho em diferentes dobras e visualizem insights de avaliação de modelos sem esforço.