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

Test Data

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

Тестовые данные, также называемые тестовой или отложенной выборкой, — это часть набора данных, зарезервированная для оценки готовой модели машинного обучения (ML). Они не участвуют в подгонке весов модели и не влияют на решения при разработке: выбор архитектуры, гиперпараметров, контрольной точки или порога уверенности. Оценку проводят после того, как все эти решения приняты. Поскольку модель и её разработчики никогда не подстраивались под тестовые данные, измеренные точность, полнота или средняя точность (mAP) дают несмещённую оценку того, как модель будет работать на новых данных из того же распределения. Именно на этот показатель команды опираются, решая, готова ли модель к развёртыванию.

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

Обычно набор данных делят на три непересекающиеся выборки с разными задачами:

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

Для наборов данных с тысячами примеров часто используют разделение 80/10/10 или 70/15/15, а в наборах с миллионами примеров для теста можно оставить несколько процентов. Необходимый размер тестовой выборки зависит от требуемой точности оценки: стандартная ошибка точности p, измеренной на n примерах, равна квадратному корню из p(1 − p)/n. Поэтому для 1 000 тестовых изображений с точностью 90% 95-процентный доверительный интервал составляет примерно ±1,9 процентного пункта, а для 10 000 изображений он сужается примерно до ±0,6. Терминология различается в разных областях: во многих статьях итоговые результаты на ImageNet приводятся по официальной валидационной выборке, поскольку тестовые метки ImageNet не публикуются. Для Ultralytics YOLO в YAML-файле набора данных обязательно указываются пути train и val, а путь test можно указать дополнительно. Во время обучения val оценивается после каждой эпохи, чтобы выбрать best.pt, а model.val(data="data.yaml", split="test") оценивает готовую модель на отложенных изображениях в режиме валидации.

Почему тестовая выборка должна оставаться нетронутой#

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

import numpy as np
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

val_scores, test_scores = [], []
for seed in range(30):
    # A small, noisy dataset split 60/20/20 into train, validation, and test
    X, y = make_classification(n_samples=400, n_features=20, n_informative=4, flip_y=0.2, random_state=seed)
    X_train, X_rest, y_train, y_rest = train_test_split(X, y, test_size=0.4, random_state=seed)
    X_val, X_test, y_val, y_test = train_test_split(X_rest, y_rest, test_size=0.5, random_state=seed)

    # Model selection: keep the neighbor count with the best validation accuracy
    scores = {k: KNeighborsClassifier(k).fit(X_train, y_train).score(X_val, y_val) for k in range(1, 51)}
    best_k = max(scores, key=scores.get)
    val_scores.append(scores[best_k])

    # The test set is scored once, after the choice is final
    test_scores.append(KNeighborsClassifier(best_k).fit(X_train, y_train).score(X_test, y_test))

print(f"Chosen model, mean of 30 runs: validation {np.mean(val_scores):.3f}, test {np.mean(test_scores):.3f}")

Средняя оценка выбранных моделей составляет 0,805 на валидации и 0,758 на тесте, поэтому отбор среди 50 кандидатов завысил валидационную оценку почти на пять процентных пунктов. Если настраивать модель по тестовой выборке, этот разрыв останется незамеченным, а тот же эффект завышения перейдёт в опубликованный результат — это разновидность утечки данных. В публичных бенчмарках от этого защищаются, скрывая метки: результаты на тестовой выборке COCO test-dev получают, отправляя предсказания на сервер оценки. Для больших языковых моделей (LLM) тестовые вопросы, попавшие в данные предобучения из интернета, загрязняют бенчмарк. Поэтому LiveCodeBench постоянно добавляет новые конкурсные задачи и оценивает каждую модель на задачах, опубликованных после даты завершения её обучения.

Создание надёжной тестовой выборки#

Результат оценки на тесте предсказывает качество в реальных условиях только тогда, когда тестовая выборка похожа на данные, с которыми столкнётся модель: это могут быть уличные сцены для автономных автомобилей или снимки для анализа медицинских изображений:

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

Даже тщательно пересобранная тестовая выборка может изменить результаты: когда исследователи воссоздали тестовую выборку ImageNet по исходной процедуре сбора данных, точность снизилась на 11–14 процентных пунктов для широкого набора моделей. При этом улучшения на исходной тестовой выборке сохранялись, а авторы объяснили падение тем, что новые изображения были немного сложнее, а не многолетним повторным использованием тестовой выборки.

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

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

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

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

Узнай, как 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. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

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

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