Cross-Validation
Узнай, как перекрестная проверка (cross-validation) улучшает обобщение модели и предотвращает переобучение. Открой для себя, как внедрять K-Fold оценку с Ultralytics YOLO26 для надежного ML.
Перекрестная проверка — это надежная статистическая процедура передискретизации, используемая для оценки производительности моделей machine learning (ML) на ограниченной выборке данных. В отличие от стандартного метода отложенной выборки (hold-out), который разделяет данные на один набор для обучения и один для тестирования, перекрестная проверка включает разбиение dataset на несколько подмножеств, чтобы гарантировать использование каждой точки данных как для обучения, так и для проверки. Этот метод критически важен для оценки того, как результаты статистического анализа будут обобщаться на независимый набор данных, что помогает выявить overfitting, при котором модель может запоминать примеры обучения, а не изучать обобщаемые закономерности.
Link to this sectionМеханизм K-блочной перекрестной проверки#
Наиболее широко используемой вариацией этого метода является K-Fold Cross-Validation (K-блочная перекрестная проверка). В этом процессе весь набор данных случайным образом делится на k групп одинакового размера, или "фолдов". Затем процесс обучения повторяется k раз. На каждой итерации один фолд выступает в качестве validation data для тестирования модели, а остальные k-1 фолдов служат training data.
Итоговая метрика производительности обычно рассчитывается путем усреднения оценок — таких как accuracy, precision или Mean Average Precision (mAP) — полученных в каждом цикле. Этот подход значительно снижает дисперсию, связанную с единственной попыткой разделения на обучение и тест, обеспечивая более надежную оценку generalization error. Это гарантирует, что оценка не искажена произвольным выбором test data.
Link to this sectionРеализация с помощью Ultralytics#
Перекрестная проверка особенно полезна при работе с небольшими наборами данных или при выполнении тщательной hyperparameter tuning. Хотя современные фреймворки глубокого обучения, такие как PyTorch, упрощают цикл обучения, управление фолдами требует тщательной подготовки данных.
The following example demonstrates how to iterate through pre-generated YAML configuration files for a 5-fold cross-validation experiment using the YOLO26 model. This assumes you have already split your dataset into five separate configuration files.
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}")Для более глубокого изучения автоматизации создания разбиений обратись к руководству по K-Fold Cross-Validation.
Link to this sectionРеальные приложения#
Перекрестная проверка незаменима в отраслях, где данных мало, их сбор обходится дорого или где требуется критически важная для безопасности надежность.
- Медицинская диагностика: В medical image analysis наборы данных для редких заболеваний часто невелики. Одно случайное разделение для проверки может не включить в себя сложные случаи или редкие патологии. Используя перекрестную проверку, исследователи, разрабатывающие AI in healthcare, гарантируют, что их диагностические модели тестируются на каждом доступном скане пациента, подтверждая, что система работает для различных демографических групп и типов оборудования.
- Точное земледелие: Условия окружающей среды сильно варьируются на открытом воздухе. Модель, обученная для crop disease detection, может хорошо работать в солнечные дни, но давать сбои при облачном небе, если такие изображения отсутствовали в обучающей выборке. Перекрестная проверка гарантирует устойчивость модели к таким вариациям, помогая фермерам полагаться на инструменты automated machine learning (AutoML) для стабильного мониторинга независимо от погодных условий.
Link to this sectionСтратегические преимущества в разработке моделей#
Интеграция перекрестной проверки в AI development lifecycle дает важные сведения о bias-variance tradeoff.
-
Оценка стабильности: Если показатели производительности значительно варьируются между фолдами, это указывает на высокую чувствительность модели к конкретным точкам данных, используемым для обучения, что говорит о высокой дисперсии.
-
Эффективность данных: Она максимизирует полезность ограниченных данных, так как каждое наблюдение в конечном итоге используется как для обучения, так и для проверки.
-
Оптимизация гиперпараметров: Она предоставляет надежный эталон для выбора наилучших стратегий learning rate, batch size или data augmentation без «подглядывания» в финальный тестовый набор.
Link to this sectionРазграничение связанных понятий#
Важно отличать перекрестную проверку от других терминов оценки:
- vs. Hold-out Validation: Hold-out involves a single split (e.g., 80/20). While faster and suitable for massive datasets like ImageNet, it is less statistically robust than cross-validation for smaller datasets.
- vs. Bootstrapping: Bootstrapping включает случайную выборку с возвращением, тогда как K-Fold перекрестная проверка разбивает данные без возвращения (каждый образец находится ровно в одном фолде).
Управление артефактами, метриками и моделями из нескольких фолдов может быть сложным. Ultralytics Platform упрощает это, предлагая централизованное отслеживание экспериментов, позволяя командам сравнивать производительность между различными фолдами и легко визуализировать model evaluation insights.






