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

26 января 2023 г. Мы обновили эту статью, добавив в нее новые модели YOLOv8. Это включает в себя обширную оценку модели и тест надежности моделей YOLOv8 разных размеров (s, n, m, l, x). Новые модели сравниваются с YOLOv5 и YOLOv8. Спойлер: улучшения производительности YOLOv8 не привели к соответствующему повышению надежности модели.

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

TL;DR

  • Широко используемые показатели машинного обучения (ML) могут ввести в заблуждение при оценке производительности в реальном мире.
  • Модели не устойчивы к реальным факторам, таким как геометрические изменения, размытие, шум и изменения освещения.
  • Интересно, что это также сохраняется, когда аугментации использовались как часть обучения.
  • Большие модели не более надежны. По некоторым параметрам они ухудшаются. YOLO обладает лучшими свойствами надежности ML, чем более крупный DETR на основе трансформатора.
  • Тестирование машинного обучения и тестирование надежности помогут вам оценить способности вашей системы к обобщению.
  • Улучшения производительности от YOLOv5 до YOLOv8 не сопровождаются соответствующим повышением надежности. Эти два семейства имеют примерно одинаковые свойства надежности. В данном случае размер модели не имел значения.

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

Чтобы выяснить это, мы взяли несколько стандартных высокопроизводительных моделей с открытым исходным кодом, таких как YOLOv8 и YOLOv5 от Ultralytics, а также DETR от Meta, для тестирования с помощью MLTest, чтобы оценить их возможности обобщения.

Но прежде чем мы дойдем до этого, почему тестирование машинного обучения и тестирование надежности важны для оценки обобщения модели?

Проблема.

Сегодня следующий рабочий процесс является обычным для нас, разработчиков компьютерного зрения:

  1. Используйте модель с открытым исходным кодом, предварительно обученную, скажем, на COCO, которая достигает конкурентоспособных показателей.
  2. Настройте его на данных, специфичных для нашего варианта использования.

Однако когда такие модели запускаются в реальных условиях, часто встречаются «неизвестные неизвестные», и в моделях начинают появляться проблемы.

Таким образом, главной задачей становится оценка обобщения модели во время разработки: как модель будет вести себя в сложном реальном мире?

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

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

Почему важна надежность модели и как проверить надежность модели.

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

Мы запустили MLTest от Lakera, чтобы оценить надежность наших моделей-кандидатов. В рамках этого MLTest сгенерировал универсальные тесты на надежность, которые едва заметны невооруженным глазом и часто возникают во время работы, без использования состязательных атак белого или черного ящика. Судите сами, можете ли вы сказать, какие из следующих изображений являются оригинальными изображениями COCO, а какие были изменены?

Итак, какие модели мы тестировали?

Модели-кандидаты.

Мы проверили надежность следующих моделей:

  • Семейство YOLOv8: YOLOv8 только что готово к продаже и продемонстрировало некоторые впечатляющие улучшения по сравнению с Yolo v5. Но насколько это справедливо с точки зрения надежности, пострадало ли это из-за более крупных моделей по сравнению с Yolo v5? Мы исследовали модели пяти разных размеров (n, s, m, l, x).
  • Семейство YOLOv5: мы также рассмотрели пять старых моделей YOLOv5 от Ultralytics разных размеров (n, s, m, l, x).Эти модели не являются самыми современными, но показывают хорошие результаты по сравнению с лучшими моделями, если судить по совокупным показателям.
  • Трансформаторы DETR:дополнительно мы рассмотрели модели DETR компании Meta, основанные на архитектуре трансформатора, с учетом размеров S, M, L и H.

Для справки, эти модели достигают следующих показателей конкурентной проверки на COCO:

Однако проверочный набор COCO не отражает реальный мир. Что скрывают эти показатели? Какова вероятность того, что модель будет обобщена после того, как будет выпущена в дикую природу или доработана?

Что мы нашли.

На следующих графиках суммированы оценки риска MLTest для различных моделей и тестов на надежность моделей. Оценка находится в диапазоне от 0 до 100, где 100 представляет наивысший риск, а 0 — модель с меньшим риском. Оценка представляет собой процент набора данных, в котором на поведение модели сильно повлияло тестирование надежности MLTest. Мы наносим совокупный показатель риска (чем меньше, тем лучше), рассчитанный MLTest для всех основных факторов риска, каждый из которых состоит из нескольких отдельных тестов:

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

Мы сделали несколько выводов из наших экспериментов:

Мягкие преобразования существенно влияют на надежность модели.

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

Проблемы с надежностью обнаруживаются даже при использовании дополнений во время обучения.

Интересно, что для моделей YOLO это относится и к дополнениям, которые использовались во время обучения (например, медианное размытие, выравнивание, оттенки серого). Хотя это и неожиданно, но и неудивительно: добавление нескольких строк кода с этими дополнениями не является панацеей.

Мы должны явно проверить, что эти расширения имеют предполагаемый эффект, и тщательно откалибровать конвейер дополнений. Интересно, что эти аугментации также не переносятся тривиально: хотя во время обучения использовалось срединное размытие, общий фактор риска размытия по-прежнему работал плохо. Основываясь на нашей проверке кода, во время обучения моделей DETR использовалось очень мало дополнений. Объясняет ли это проблемы надежности, которые мы здесь наблюдаем?

Большие модели достигают более высоких показателей, но не надежности модели.

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

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

Что мы можем с этим поделать?

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

  • Включите систематическое тестирование машинного обучения в процесс разработки, выходящее далеко за рамки стандартных показателей. Для начала проанализируйте надежность вашей модели, чтобы оценить красные флажки для обобщения. Информацию можно использовать для сбора данных и синтетических дополнений. Мы явно предвзяты, но считаем, что MLTest — фантастическое решение для этого.
  • Добавления аугментаций во время обучения недостаточно. Мы обнаружили, что даже с этими дополнениями надежность модели не является данностью. Мы должны явно проверить, имеют ли аугментации предполагаемый эффект, и тщательно откалибровать ваш конвейер аугментации во время обучения (например, установить правильную вероятность и силу).
  • Надежность модели — это только начало. Агрегированные показатели также скрывают неэффективные фрагменты данных. Определение этих метрик и сбор необходимых данных — важнейший компонент систематического тестирования, о котором мы расскажем в следующем посте.

Мы не можем дождаться, чтобы протестировать еще несколько моделей SOTA в ближайшее время. Так что следите за обновлениями здесь!

Хотите протестировать свои модели?

MLTest — это самый простой способ оценить возможности обобщения ваших моделей. Узнать об этом подробнее можно здесь или начать прямо сейчас. Кроме того, не стесняйтесь обращаться к нам по адресу [email protected].