Руководство по тестированию моделей

Введение

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



Watch: How to Test Machine Learning Models | Avoid Data Leakage in Computer Vision 🚀

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

Тестирование модели против оценки модели

Сначала давай разберёмся в разнице между оценкой и тестированием модели на примере.

Допустим, ты обучил модель компьютерного зрения распознавать кошек и собак и хочешь развернуть её в зоомагазине для наблюдения за животными. На этапе оценки модели ты используешь размеченный набор данных для расчёта таких метрик, как точность, precision, recall и F1 score. Например, точность модели при различении кошек и собак на заданном наборе данных может составлять 98%.

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

Подготовка к тестированию модели

Модели компьютерного зрения учатся на наборах данных, выявляя закономерности, делая прогнозы и оценивая свою производительность. Эти наборы данных обычно делятся на обучающие и тестовые для симуляции реальных условий. Обучающие данные обучают модель, в то время как тестовые данные подтверждают её точность.

Вот два момента, которые стоит иметь в виду перед тестированием модели:

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

Тестирование твоей модели компьютерного зрения

Вот основные шаги, которые нужно предпринять для тестирования модели компьютерного зрения и понимания её производительности.

  • Запуск предсказаний: Используй модель для создания предсказаний на тестовом наборе данных.
  • Сравнение предсказаний: Проверь, насколько хорошо предсказания модели совпадают с фактическими метками (ground truth).
  • Расчёт метрик производительности: Вычисли метрики, такие как точность, precision, recall и F1 score, чтобы понять сильные и слабые стороны модели. Тестирование фокусируется на том, как эти метрики отражают производительность в реальных условиях.
  • Визуализация результатов: Создай визуальные пособия, такие как матрицы ошибок и ROC-кривые. Они помогут тебе заметить конкретные области, где модель может работать недостаточно хорошо в практических приложениях.

Затем результаты тестирования можно проанализировать:

  • Неверно классифицированные изображения: Определи и просмотри изображения, которые модель классифицировала неверно, чтобы понять, в чём ошибка.
  • Анализ ошибок: Проведи тщательный анализ ошибок, чтобы понять типы ошибок (например, ложноположительные против ложноотрицательных) и их потенциальные причины.
  • Предвзятость и справедливость: Проверь предсказания модели на наличие предвзятости. Убедись, что модель работает одинаково хорошо на разных подмножествах данных, особенно если они включают чувствительные атрибуты, такие как раса, пол или возраст.

Тестирование твоей модели YOLO26

Чтобы протестировать свою модель YOLO26, ты можешь использовать режим валидации. Это простой способ понять сильные стороны модели и области, требующие улучшения. Также тебе нужно будет правильно отформатировать тестовый набор данных для YOLO26. Подробнее о том, как использовать режим валидации, читай на странице документации Model Validation.

Использование YOLO26 для предсказания на нескольких тестовых изображениях

Если ты хочешь протестировать обученную модель YOLO26 на нескольких изображениях, хранящихся в папке, ты можешь легко сделать это за один раз. Вместо использования режима валидации, который обычно применяется для оценки производительности модели на проверочном наборе и предоставления подробных метрик, ты можешь просто захотеть увидеть предсказания для всех изображений в твоём тестовом наборе. Для этого ты можешь использовать режим предсказания.

Разница между режимами валидации и предсказания

  • Режим валидации: Используется для оценки производительности модели путём сравнения предсказаний с известными метками (ground truth). Он предоставляет подробные метрики, такие как точность, precision, recall и F1 score.
  • Режим предсказания: Используется для запуска модели на новых, ранее не виденных данных для генерации предсказаний. Он не предоставляет подробных метрик производительности, но позволяет увидеть, как модель работает с реальными изображениями.

Запуск предсказаний YOLO26 без пользовательского обучения

Если тебе интересно протестировать базовую модель YOLO26, чтобы понять, можно ли её использовать для твоего приложения без пользовательского обучения, ты можешь использовать режим предсказания. Хотя модель предварительно обучена на таких наборах данных, как COCO, запуск предсказаний на твоих собственных данных может дать тебе быстрое представление о том, насколько хорошо она может работать в твоём конкретном контексте.

Переобучение и недообучение в машинном обучении

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

Переобучение

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

Признаки переобучения

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

Недообучение

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

Признаки недообучения

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

Баланс между переобучением и недообучением

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

Overfitting vs underfitting visualization

Утечка данных в компьютерном зрении и как её избежать

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

Почему происходит утечка данных

Утечку данных может быть трудно обнаружить, и часто она возникает из-за скрытых предвзятостей в обучающих данных. Вот несколько распространённых способов её появления в компьютерном зрении:

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

Обнаружение утечки данных

Чтобы найти утечку данных, ты можешь:

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

Как избежать утечки данных

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

Что делать после тестирования модели

После тестирования твоей модели следующие шаги зависят от результатов. Если модель работает хорошо, ты можешь развернуть её в реальной среде. Если результаты неудовлетворительны, тебе потребуется внести улучшения. Это может включать анализ ошибок, сбор большего количества данных, улучшение качества данных, настройку гиперпараметров и переобучение модели.

Присоединяйся к обсуждению ИИ

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

Ресурсы сообщества

  • GitHub Issues: Изучи репозиторий YOLO26 на GitHub и используй вкладку Issues, чтобы задавать вопросы, сообщать о багах и предлагать новые функции. Сообщество и мейнтейнеры очень активны и готовы помочь.
  • Сервер Ultralytics в Discord: Присоединяйся к серверу Ultralytics в Discord, чтобы общаться с другими пользователями и разработчиками, получать поддержку и делиться своим опытом.

Официальная документация

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

Эти ресурсы помогут тебе справляться с трудностями и оставаться в курсе последних тенденций и практик в сообществе компьютерного зрения.

В итоге

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

Часто задаваемые вопросы (FAQ)

Каковы ключевые различия между оценкой модели и тестированием модели в компьютерном зрении?

Оценка модели и тестирование модели — это разные этапы проекта по компьютерному зрению. Оценка модели включает использование размеченного набора данных для вычисления метрик, таких как точность, precision, recall и F1 score, что даёт понимание производительности модели на контролируемом наборе данных. Тестирование модели, напротив, оценивает производительность модели в реальных сценариях путём применения её к новым, ранее не виденным данным, гарантируя, что выученное моделью поведение соответствует ожиданиям вне среды оценки. Подробное руководство см. в разделе этапов проекта по компьютерному зрению.

Как я могу протестировать свою модель Ultralytics YOLO26 на нескольких изображениях?

Чтобы протестировать свою модель Ultralytics YOLO26 на нескольких изображениях, ты можешь использовать режим предсказания. Этот режим позволяет запускать модель на новых, ранее не виденных данных для генерации предсказаний без предоставления подробных метрик. Это идеально подходит для проверки реальной производительности на больших наборах изображений, хранящихся в папке. Для оценки метрик производительности используй вместо этого режим валидации.

Что делать, если моя модель компьютерного зрения показывает признаки переобучения или недообучения?

Для борьбы с переобучением:

  • Методы регуляризации, такие как дропаут (dropout).
  • Увеличь размер обучающего набора данных.
  • Упрости архитектуру модели.

Для борьбы с недообучением:

  • Используй более сложную модель.
  • Добавь больше релевантных признаков.
  • Увеличь количество итераций обучения или эпох.

Просматривай неверно классифицированные изображения, проводи тщательный анализ ошибок и регулярно отслеживай метрики производительности, чтобы поддерживать баланс. Для получения дополнительной информации об этих концепциях изучи наш раздел Overfitting and Underfitting.

Как я могу обнаружить и избежать утечки данных в компьютерном зрении?

Для обнаружения утечки данных:

  • Проверь, чтобы производительность на тестах не была необычно высокой.
  • Проверь важность признаков на наличие неожиданных выводов.
  • Интуитивно просматривай решения модели.
  • Обеспечь правильное разделение данных перед обработкой.

Для предотвращения утечки данных:

  • Используй разнообразные наборы данных с различными условиями.
  • Тщательно проверяй данные на наличие скрытых предвзятостей.
  • Убедись, что нет перекрывающейся информации между обучающим и тестовым наборами.

Подробные стратегии предотвращения утечки данных см. в нашем разделе Data Leakage in Computer Vision.

Какие шаги мне предпринять после тестирования моей модели компьютерного зрения?

После тестирования, если производительность модели соответствует целям проекта, переходи к развёртыванию. Если результаты неудовлетворительны, рассмотри:

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

Как запустить предсказания YOLO26 без пользовательского обучения?

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

Комментарии