Вопрос или проблема
Читая некоторые статьи по обнаружению объектов (типы R-CNN
, YOLO
и др.), я задумываюсь, существует ли детектор, который может обнаруживать объекты незнакомых классов.
Например, моя модель не обучена для обнаружения зданий, но возможно ли сделать так, чтобы моя модель обнаруживала здания или какие-то транспортные средства только на основе пиксельных данных?
Да, это возможно, но вам потребуется некоторая адаптация. Обычно вы используете переноса обучения, чтобы научить свою модель, что есть еще много объектов для обнаружения с теми признаками, которые она уже может извлекать. Для этого вы обычно берете свою модель и просто удаляете последний плотный слой, который отвечает за классификацию. Затем вы замораживаете все предыдущие слои CNN и настраиваете новый плотный слой в конце с количеством классов, которые вы хотите обнаруживать. Теперь, давая сети новые примеры с истинными метками (не так много обычно), чтобы адаптироваться к новому домену. Это может сработать, но также может и определенно провалиться. Например, я пытался использовать ResNet-базовые модели (51,101), обученные на ImageNet (большом наборе данных для обнаружения людей, автомобилей и прочего), и пытался использовать их для сегментации и классификации клеток в микроскопии. Да, она нашла некоторые границы, но не смогла получить точную классификацию.
Подводя итог: да, вы можете использовать перенос обучения или задачи из области “UDA” -> Ненаблюдаемая адаптация домена, или обычную супервайзинговую/полусупервайзинговую адаптацию домена, чтобы научить модели новым вещам. Или просто для усиления их знаний. Обнаружение объектов, не видевших их прежде, также является возникающей задачей и называется “обучение без примеров“, часто в сочетании с графовыми нейронными сетями, но это все еще на ранней стадии. Сокращение разрыва между несколькими доменами является одним из основных вопросов в ML в целом, пытаясь найти специфические для объектов признаки. Одним из шагов в этом направлении являются cGAN, которые пытаются преобразовать одно изображение в другое, извлекая наиболее важную информацию из обоих доменов, чтобы выполнить точное преобразование. Но и это тоже еще на ранней стадии, но может работать удивительно хорошо при определенных усилиях и настройке функции потерь. Вот некоторые примеры:
Преобразовать зеленый в красный, чтобы сделать возможным для другой CNN сегментировать изображение:
Дополнительные интересные статьи по этой теме:
Ненаблюдаемая адаптация домена на уровне пикселей с помощью генеративных состязательных сетей
Ответ или решение
Вопрос о возможности обнаружения объектов, которые не были обучены в модели, привлекает внимание многих исследователей и специалистов в области компьютерного зрения. Действительно, существуют методы, которые могут помочь в этой ситуации. В данной статье мы подробно рассмотрим соответствующие практики и недавние разработки в этой области.
1. Применение трансферного обучения
Трансферное обучение позволяет адаптировать существующие модели для идентификации новых классов объектов. Это достигается путем удаления последнего плотного слоя (Dense Layer), который отвечает за классификацию. Затем можно заморозить (freeze) все предыдущие слои нейронной сети и добавить новый слой с необходимым числом классов. Данная методика требует минимального количества новых данных для обучения, что делает ее экономически эффективной. Однако, результаты могут варьироваться: хотя одно из ваших испытаний с использованием ResNet-бэкендов показало определенный успех, существует риск, что модель не сможет достичь необходимой точности для новой задачи, как это было в вашем примере с микроскопической сегментацией клеток.
2. Неподдерживаемая адаптация домена
Неподдерживаемая адаптация домена (UDA) — это еще одна методика, которая позволяет модели адаптироваться к новым классам объектов без значительных изменений в первоначальном обучении. Существует ряд подходов к UDA, включая супервайзенные и полусупервизорные методы. Эти технологии направлены на улучшение способностей модели видеть и распознавать новые объекты с использованием имеющихся знаний и характеристик.
3. Обучение без примеров: Zero-Shot Learning
Обнаружение объектов, которые не были представлены на этапе обучения, также возможно с помощью так называемого "zero-shot learning" (ZSL). Эта технология, основанная на графовых нейронных сетях, ищет общие характеристики между известными и новыми классами объектов, что позволяет модели делать предположения о новых классах без их прямого обучения. Исследования в этой области все еще находятся на начальном этапе, но методы ZSL уже показывают обнадеживающие результаты.
4. Генеративные состязательные сети (GAN)
Генеративные состязательные сети (GAN) могут быть использованы для трансформации данных из одной доменной области в другую, тем самым улучшая возможность модели распознавать объекты из новых классов. Применение условных GAN (cGAN) позволяет выделить наиболее важные характеристики объектов и эффективно трансформировать изображения, что также способствует улучшению точности детекции.
Дополнительные исследования и ресурсы
Если вы хотите углубить свои знания в данной области, рекомендуем изучить следующие исследования:
- Noisy Student
- Unsupervised Pixel–Level Domain Adaptation with Generative Adversarial Networks
- Transfer learning
Заключение
Обнаружение объектов, на которых модель не была обучена, является актуальной задачей в области компьютерного зрения. Использование трансферного обучения, неподдерживаемой адаптации домена, zero-shot learning и генеративных сетей открывает новые горизонты и предоставляет инструменты для достижения поставленных целей. Хотя технологии еще находятся на стадии развития, они уже показывают значительный потенциал, и их улучшение будет неуклонно продолжаться в будущем.