В новом видеоуроке от образовательного проекта DeepLearning.AI профессор Эндрю Ын анализирует современное состояние компьютерного зрения (Computer Vision). Он объясняет, почему эта область всё ещё сильно полагается на сложное проектирование архитектур, в чем принципиальное различие между победой в соревнованиях и созданием реальных продуктов, а также дает советы по использованию предобученных моделей.
📊 Дилемма данных: почему компьютерное зрение стоит особняком 0:25
По мнению Эндрю Ына, большинство задач машинного обучения можно расположить на определенном спектре: на одном его конце находятся области с относительно небольшим объемом данных, на другом — задачи, где данных в избытке . Компьютерное зрение, несмотря на наличие огромных датасетов, находится в специфическом положении.
Лектор сравнивает CV с другими областями:
- Распознавание речи: Сегодня здесь накоплено достаточно данных относительно сложности задачи .
- Классификация изображений: Хотя существуют наборы данных, содержащие более миллиона изображений (например, ImageNet), исследователям всё равно часто кажется, что данных недостаточно . Это связано с высокой сложностью задачи — алгоритму нужно проанализировать огромное количество пикселей, чтобы понять суть объекта.
- Детекция объектов: Здесь ситуация с данными ещё сложнее. Если для классификации достаточно пометить картинку как «кошка», то для детекции нужно вручную разметить ограничивающие рамки (bounding boxes) . Стоимость такой разметки выше, поэтому данных для этих задач исторически меньше .
Эндрю Ын выводит общую закономерность: чем больше у вас данных, тем меньше потребность в «ручном проектировании» (hand engineering) признаков и архитектур . В условиях избытка информации нейросеть может выучить всё необходимое самостоятельно даже на простой архитектуре. Однако в условиях дефицита данных ручное проектирование становится единственным способом добиться высокой производительности .
🛠 Ручное проектирование: искусство или костыль? 4:18
В сообществе иногда пренебрежительно относятся к сложным архитектурным решениям, называя их «хаками». Однако Эндрю Ын не разделяет эту позицию. По его словам, когда данных не хватает, ручное проектирование — это сложная и высококвалифицированная задача, требующая глубокой интуиции .
Исторически область компьютерного зрения развивалась на очень маленьких датасетах, что и сформировало культуру создания невероятно сложных и тонко настроенных нейросетевых архитектур . Даже сегодня, когда объем данных значительно вырос, CV-алгоритмы остаются более сложными в плане выбора гиперпараметров по сравнению со многими другими дисциплинами .
В качестве инструментов для работы в условиях дефицита данных Эндрю Ын выделяет:
- Тщательное проектирование архитектуры сети.
- Перенос обучения (Transfer Learning) — метод, который критически важен для таких задач, как детекция объектов .
🏆 Бенчмарки против реальности: как побеждать в соревнованиях 6:25
В академической среде компьютерного зрения существует культ побед на стандартизированных бенчмарках. По мнению Ына, это имеет свои плюсы — сообщество быстрее понимает, какие алгоритмы эффективны, — но порождает методы, которые почти не применимы в реальной эксплуатации (production) .
Для получения заветных лишних 1-2% точности на соревнованиях исследователи используют два основных приема, которые Эндрю Ын не рекомендует применять в бизнес-задачах:
Ансамблирование (Ensembling)
Этот метод подразумевает обучение нескольких (от 3 до 15) одинаковых сетей с разной случайной инициализацией и усреднение их прогнозов .
- Плюс: повышение точности на 1-2% .
- Минус: время обработки каждого изображения увеличивается в 3-15 раз, что требует огромных вычислительных ресурсов .
- Вердикт: Эндрю Ын считает, что ансамбли почти никогда не используются в продакшене из-за их медлительности и требований к памяти .
Multi-crop на этапе тестирования
Это форма аугментации данных, применяемая не при обучении, а при проверке модели. Например, используется техника «10-crop»: из изображения вырезается центральная часть и четыре угла, затем то же самое делается для зеркально отраженного изображения . Все 10 вариантов прогоняются через классификатор, а результаты усредняются.
- Минус: десятикратное замедление работы системы .
- Сравнение: в отличие от ансамблей, этот метод требует хранения только одной сети в памяти, но всё равно сильно нагружает процессор или GPU.
🚀 Практические советы по созданию систем 11:07
Для тех, кто строит практические системы, Эндрю Ын дает ключевой совет: не пытайтесь изобрести велосипед. Архитектуры, которые хорошо работают в одной задаче компьютерного зрения, с большой вероятностью подойдут и для другой .
Рекомендованный алгоритм действий:
- Найдите существующую архитектуру, хорошо показавшую себя в литературе.
- Используйте open-source реализацию, если это возможно. В ней уже могут быть учтены тонкие детали вроде графиков снижения скорости обучения (learning rate decay) и другие гиперпараметры .
- Возьмите предобученную модель. Кто-то уже мог потратить недели времени и ресурсы нескольких GPU, чтобы обучить её на миллионе изображений. Тонкая настройка (fine-tuning) такой модели на ваших данных позволит запустить проект гораздо быстрее .
В завершение лекции автор отмечает, что самостоятельное обучение сетей с нуля оправдано только в том случае, если у вас есть избыточные вычислительные ресурсы или вы стремитесь создать принципиально новый алгоритм .