Перейти к содержимому

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

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Оверфиттинг и недофиттинг в машинном обучении

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

Оверфиттинг

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

Признаки чрезмерной подгонки

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

Заниженная посадка

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

Признаки недостаточной посадки

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

Баланс между чрезмерной и недостаточной подгонкой

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

Обзор оверфиттинга и андерфиттинга

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

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

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

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

  • Перекос камеры: различные ракурсы, освещение, тени и движения камеры могут внести нежелательные детали.
  • Предвзятость наложения: логотипы, временные метки или другие наложения на изображениях могут ввести модель в заблуждение.
  • Предвзятое отношение к шрифтам и объектам: специфические шрифты или объекты, которые часто встречаются в определенных классах, могут исказить результаты обучения модели.
  • Пространственная погрешность: дисбаланс переднего плана и заднего плана, распределение ограничительных рамок и расположение объектов могут повлиять на обучение.
  • Label and Domain Bias: Неправильные метки или смещение типов данных могут привести к утечке информации.

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

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

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

Предотвращение утечки данных

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

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

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

Присоединяйся к разговору об искусственном интеллекте

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

Общественные ресурсы

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

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

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

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

В кратком изложении

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

ВОПРОСЫ И ОТВЕТЫ

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

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

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

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

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

Чтобы решить проблему чрезмерной подгонки:

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

Чтобы решить проблему недостаточной подгонки:

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

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

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

Чтобы обнаружить утечку данных:

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

Чтобы избежать утечки данных:

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

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

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

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

  • Анализ ошибок.
  • Собирай более разнообразные и качественные данные.
  • Настройка гиперпараметров.
  • Переобучение модели.

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

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

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



Создано 2024-07-04, Обновлено 2024-07-05
Авторы: glenn-jocher (2), abirami-vina (1)

Комментарии