Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Validation Data

Валидационные данные — это отложенная выборка, которую оценивают в ходе разработки, чтобы настраивать гиперпараметры, выбирать контрольные точки и выявлять переобучение до финального тестирования.

Валидационные данные — это часть размеченных данных, отложенная от обучения и многократно оцениваемая в процессе разработки для сравнения моделей, настройки гиперпараметров, выбора чекпойнтов и выявления переобучения. Модель не обновляет на этих данных свои веса, поэтому оценка на валидации показывает, насколько хорошо усвоенное на обучающих данных переносится на незнакомые изображения. Валидационная выборка и выборка для разработки (dev) — синонимы. Каждое решение, принятое на основе оценок валидации, немного сильнее подгоняет модель под конкретное разбиение, поэтому для итоговой непредвзятой оценки отдельно оставляют тестовую выборку.

Разделение на обучающую, валидационную и тестовую выборки#

Размеченный датасет обычно делят на три части:

  • Обучающая выборка: Примеры, на которых оптимизатор подбирает веса; обычно она составляет от 70 до 80 процентов данных.
  • Валидационная выборка: На ней оценивают модель после запусков обучения или эпох, чтобы принимать решения о таких параметрах, как скорость обучения, размер модели, интенсивность аугментации и момент остановки обучения.
  • Тестовая выборка: Ее оценивают один раз после фиксации всех решений, чтобы сообщить ожидаемую производительность в реальных условиях.

Для датасетов с тысячами изображений распространены разбиения 70/15/15 или 80/10/10. Для надежных оценок очень большим датасетам требуется меньшая доля данных: в ImageNet-1k для валидации отложено 50 000 изображений, а для обучения используется 1 281 167 изображений. Поскольку метки тестовой выборки не опубликованы, точность на ImageNet обычно оценивают на этой валидационной выборке, которая в таком случае служит тестовой.

Полезная валидационная выборка соответствует данным, с которыми модель столкнётся при развёртывании, и не пересекается с обучающей выборкой. Случайное разделение на уровне изображений приводит к утечке информации, когда несколько изображений сняты в одном видео, с одним пациентом или в одном месте: модель может распознать сцену вместо объекта. Разделение по группам, например по пациенту или сеансу записи, предотвращает такую утечку данных.

Настройка гиперпараметров и выбор модели#

Веса обучаются с помощью градиентного спуска, а гиперпараметры выбирают так: обучают несколько кандидатов и оставляют модель с наилучшей оценкой на валидации. Для этого нельзя использовать оценки на обучающей выборке, потому что более крупные модели и модели с более долгим обучением почти всегда лучше подгоняются под обучающие данные. Приведенный ниже скрипт scikit-learn подбирает глубину дерева решений на встроенном датасете цифр:

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}")

Точность на обучающей выборке продолжает расти с увеличением глубины и достигает 1.000 при глубине 16, тогда как точность на валидационной выборке достигает максимума 0.836 при глубине 8, а при глубине 16 падает до 0.825, поскольку дерево начинает запоминать примеры. Валидация позволяет выбрать глубину 8; на нетронутой тестовой выборке такая модель получает оценку 0.853.

Ранняя остановка и выбор чекпойнта#

В циклах обучения глубоких нейронных сетей валидационную выборку обычно оценивают после каждой эпохи. Функция потерь на обучении продолжает снижаться по мере того, как сеть все точнее подстраивается под обучающие данные, но функция потерь или точность на валидации в какой-то момент перестает улучшаться, а затем ухудшается. Ранняя остановка прекращает обучение, если оценка на валидации не улучшается заданное число эпох — этот параметр называется терпением, — и сохраняет веса, полученные в лучшую эпоху.

При обучении YOLO26 Ultralytics по умолчанию выполняет этот цикл: после каждой эпохи оценивает разбиение val из YAML-файла датасета, сохраняет эпоху с наивысшим показателем качества на валидации (mAP50-95 для детекции) как best.pt и останавливает обучение после patience эпох без улучшений; по умолчанию это 100 эпох.

from ultralytics import YOLO

# Загружаем предварительно обученный детектор YOLO26 nano
model = YOLO("yolo26n.pt")

# Проверяй модель на разбиении val после каждой эпохи и останавливай обучение, если улучшений нет 10 эпох
results = model.train(data="coco8.yaml", epochs=50, patience=10)

Кросс-валидация для небольших датасетов#

Когда данных мало, одно отложенное разбиение приводит к потере примеров и неточным оценкам. K-блочная кросс-валидация делит данные на K блоков и обучает K моделей, каждый раз откладывая для валидации другой блок, а затем усредняет K оценок; таким образом, каждый пример используется и для обучения, и для валидации. Часто используют пять или десять блоков, а стратифицированные варианты и варианты с группировкой сохраняют сбалансированное распределение классов или объединяют связанные изображения в одном блоке. Тестовая выборка остается отдельной от всех блоков.

  • Тестовые данные: Оцениваются один раз в конце. Если снова использовать их для принятия решений, они превратятся во вторую валидационную выборку, а оценка перестанет быть непредвзятой.
  • Обучающие данные: Единственное разбиение, на котором оптимизатор обучает веса.
  • Кросс-валидация: Процедура, при которой разные примеры по очереди используются как валидационные данные, что позволяет получить K оценок валидации на одном датасете.
  • Валидация в клинической и нормативной документации: В медицине и регулируемых отраслях валидация модели часто означает оценку готовой модели на независимых внешних данных; в терминологии машинного обучения это соответствует тестовой выборке.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения