Каков минимальный объем данных? Как вы решаете проблемы с несбалансированными данными?

· 1. Модель YOLOv5
· 2. Корейский набор данных о тротуарах
· 3. Минимальный размер набора данных
· 4. Противодействие классовому дисбалансу
· 5. Как обновить модель
· Заключение
· Справочник

В этой статье я хочу ответить на три вопроса об обучающем наборе данных модели обнаружения объектов:

  1. каков минимальный размер набора данных для максимального повышения точности?
  2. Как вы решаете проблему дисбаланса классов?
  3. Каков наилучший способ обновить уже обученную модель новыми данными?

Важность первого вопроса невозможно переоценить. Предварительная обработка данных (сбор, очистка и аннотирование данных) составляет более 80% разработки ИИ. Итак, в идеале вы хотите инвестировать ресурсы с максимальной отдачей.

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

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

Я хочу ответить на эти вопросы эмпирически, используя YOLOv5 и общедоступный набор данных, известный как Korean Sidewalk Dataset.

1. Модель YOLOv5

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

Чтобы добиться такого результата, модель обнаружения объектов должна определить, где находятся целевые объекты, и определить, к каким классам они принадлежат. Первая задача называется «локализация объекта», а вторая — «классификация объекта».

Чтобы обучить модель обнаружения объектов, вам необходимо предоставить набор данных, содержащий как изображения, так и соответствующую информацию о местоположении и метке. Создание такого набора данных — это трудоемкая и трудоемкая работа, выполняемая людьми в процессе работы. К счастью, есть много общедоступных наборов данных. Например, набор данных COCO для обнаружения объектов содержит изображения и аннотации для 80 различных классов.

YOLOv5 — это семейство моделей обнаружения объектов, предварительно обученных на наборе данных COCO. Для эксперимента в качестве основы обучения по методу трансферного обучения был использован yolov5s.pt. Используется конфигурация гиперпараметров по умолчанию, за исключением размера партии и эпох. Размер пакета был зафиксирован на уровне 16, и в большинстве экспериментов использовалось 100 эпох.

2. Корейский набор данных о тротуарах

Примером набора данных является набор данных Korean Sidewalk. Это крупномасштабный общедоступный набор данных с более чем 670 000 изображений, аннотированных ограничивающими рамками, сегментацией полигонов, маскированием поверхности или метками предсказания глубины. Первоначальная цель состояла в том, чтобы создать обучающий набор данных для моделей ИИ, который может помочь людям с нарушениями зрения самостоятельно ориентироваться. Половина из них (352 810 изображений) снабжены ограничивающими рамками, которые мы можем использовать для обучения моделей обнаружения объектов. Список меток классов объектов и количественное относительное соотношение в наборе данных приведены здесь:

Для экспериментов используются только 15 лучших классов, которые делятся на обучающие, проверочные и тестовые наборы. Соотношение между обучающими и проверочными наборами сохранено на уровне 80:20. Отдельный набор тестов использовали для измерения mAP (средняя средняя точность).

Несколько замечаний по поводу набора данных:

  1. Несбалансированный. Как видите, набор данных значительно несбалансирован. На 5 лучших объектов класса приходится 70% всех объектов, а на 15 лучших — 90% всех объектов. Наиболее частым классом объектов является «автомобиль», который составляет 24% набора данных.

2. Несколько экземпляров на одном изображении. В каждом изображении имеется более одного экземпляра объектов одного и того же класса. Например, класс автомобиля имеет 3–4 экземпляра на изображение. Это понятно, учитывая, что изображения представляют собой изображения тротуаров, где автомобили обычно находятся поблизости. Поиск всех экземпляров разных размеров на изображении является дополнительной проблемой для модели.

3. Обезличена: изображения тротуаров содержат некоторую личную информацию, такую ​​как лица и номерные знаки. В целях защиты конфиденциальности изображения, содержащие PII (идентифицирующую личность информацию), «обезличиваются» (размываются) перед аннотацией и последующим распространением. Вот изображение автомобиля с выделенным размытым номерным знаком.

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

3. Минимальный размер набора данных

По словам Салеха Шахинфара и др. (2020) в «Сколько изображений мне нужно?» документ, обучение модели показывает точку перегиба примерно в 150–500 изображений на класс, где более ранний резкий прирост производительности начинает выравниваться.

Для повторения экспериментов подготавливаются наборы данных случайно выбранных изображений, каждый из которых содержит 100 изображений. Они предоставляются в виде набора обучающих данных постепенно, а mAP измеряются после обучения модели в течение 100 эпох. Чтобы сравнить прирост производительности разных классов, они сгруппированы в 3 категории:

  1. Топ 5: автомобиль, человек, ствол дерева, столб, тумба.
  2. Топ-10: traffic_sign, traffic_light, truck, moveable_signage, potted_plant
  3. Топ 15: мотоцикл, велосипед, автобус, стул, скамейка.

МАР в каждой группе усреднены, и результат подтверждает наблюдение Saleh, et al. (2020).

Производительность первых 5 классов выравнивается примерно на 300 изображениях, потому что на каждое изображение приходится несколько экземпляров, особенно экземпляров класса автомобилей. Тем не менее, тенденция очевидна. Около 150–500 изображений кажутся точкой перегиба, чтобы увидеть прирост производительности. mAP топ-15 следует той же схеме, за исключением того, что она медленно догоняет из-за небольшого количества объектов.

4. Противодействие классовому дисбалансу

В предыдущем эксперименте 5 лучших классов с самого начала показали хороший прирост производительности, но классы 10 и 15 лучших медленно догнали его, и даже после того, как было добавлено 1000 изображений, их mAP по-прежнему не приближается к показателям первой пятерки. причина в отсутствии данных. Итак, давайте исправим эту проблему.

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

Полностью сбалансированный набор данных невозможен из-за характера данных. Например, при выборке для автобуса или мотоцикла вы вынуждены брать экземпляры и для автомобилей.

Точность набора данных с повторной выборкой показывает улучшение.

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

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

Результат показывает менее значительные улучшения для наборов данных с повторной выборкой.

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

5. Как обновить модель

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

  1. Используйте только новые данные
  2. Используйте комбинированный набор новых и старых данных

Результаты вполне ясны. Как для набора данных со случайной выборкой, так и для набора данных с повторной выборкой (с избыточной и недостаточной выборкой) комбинированный набор новых и старых данных дает лучший результат обучения.

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

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

Заключение

Вот что мы узнали из экспериментов:

  1. Минимальное количество данных изображений для обучения составляет около 150–500.
  2. Используйте недостаточную и избыточную выборку, чтобы компенсировать проблему дисбаланса классов, но будьте осторожны с перебалансированными распределениями наборов данных.
  3. Чтобы обновить модель, выполните перенос обучения на комбинированном наборе новых и старых данных.

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

Ссылка