К старту курса "Machine Learning и Deep Learning" мы решили поделиться переводом обзора AttendSeg — новой архитектуры нейронной сети, разработанной исследователями искусственного интеллекта из DarwinAI и Университета Ватерлоо, которая позволит выполнять сегментацию изображений на маломощных вычислительных устройствах, также с низкой вычислительной мощностью.


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

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

В своей последней работе учёным из DarwinAI и Университета Ватерлоо удалось создать нейронную сеть, которая обеспечивает околооптимальную сегментацию и достаточно мала, чтобы подойти устройствам с ограниченными ресурсами. Нейронная сеть под названием AttendSeg подробно описана в статье, которая была принята на конференции по компьютерному зрению и распознаванию образов (CVPR) в этом году.

Классификация, обнаружение и сегментация объектов

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

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

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

Классификация изображений в сравнении с обнаружением объектов и семантической сегментацией

Сложность свёрточных нейронных сетей (CNN), архитектуры глубокого обучения, обычно используемой в задачах компьютерного зрения, обычно измеряется количеством параметров, которые они имеют. Чем больше параметров имеет нейронная сеть, тем больше памяти и вычислительной мощности ей требуется.

RefineNet, популярная нейронная сеть семантической сегментации, содержит более 85 миллионов параметров. При 4 байтах на параметр это означает, что использующему RefineNet приложению требуется не менее 340 мегабайт памяти только для работы нейронной сети. А с учётом того, что производительность нейронных сетей во многом зависит от аппаратного обеспечения, способного выполнять быстрые матричные умножения, это означает, что модель должна быть загружена на видеокарту или другой параллельный вычислительный блок, где память более дефицитна, чем оперативная память компьютера.

Машинное обучение для пограничных устройств

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

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

Архитектура нейронной сети семантической сегментации на устройстве — AttendSeg

С помощью AttendSeg исследователи из DarwinAI и Университета Ватерлоо попытались решить проблемы семантической сегментации на устройстве.

"Идея создания AttendSeg была продиктована как нашим желанием продвинуть TinyML, так и наблюдаемыми DarwinAI потребностями рынка, — рассказал TechTalks Александр Вонг, соучредитель DarwinAI и доцент Университета Ватерлоо. — Существует множество промышленных приложений для высокоэффективных подходов к сегментации на пограничных устройствах, и именно отзывы на эту тему и потребности рынка, которые я вижу, стимулируют такие исследования".

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

Модель глубокого обучения AttendSeg выполняет семантическую сегментацию с точностью, почти не уступающей RefineNet, при этом сокращая количество параметров до 1,19 млн. Интересно, что исследователи также обнаружили, что снижение точности параметров с 32 бит до 8 бит не привело к значительному снижению производительности и позволило им уменьшить объём памяти AttendSeg в 4 раза. Модель требует чуть больше 1 МБ памяти, что достаточно мало, чтобы поместиться на большинстве пограничных устройств.

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

Эксперименты показывают, что AttendSeg обеспечивает оптимальную семантическую сегментацию при сокращении количества параметров и объёма памяти

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

AttendSeg использует "конденсаторы внимания" для уменьшения размера модели без ущерба для производительности. Самовнимание — это серия механизмов, которые повышают эффективность нейронных сетей, фокусируясь на информации, имеющей значение. Методы самовнимания стали благом в области обработки естественного языка. Они стали определяющим фактором успеха архитектур глубокого обучения, таких как трансформеры. В то время как предыдущие архитектуры, такие как рекуррентные нейронные сети, имели ограниченные возможности при работе с длинными последовательностями данных, трансформеры использовали механизмы самовнушения, чтобы расширить свой диапазон. Модели глубокого обучения, такие как GPT-3, используют трансформаторы и самовнимание для создания длинных строк текста, которые (по крайней мере поверхностно) сохраняют связность в течение длительного времени.

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

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

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

Машиноуправляемое проектирование нейронных сетей

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

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

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

Для своих экспериментов исследователи использовали машиноуправляемую архитектуру, чтобы настроить AttendSeg для Nvidia Jetson, аппаратных комплектов для робототехники и приложений ИИ на пограничных устройствах. Но AttendSeg не ограничивается Jetson.

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

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

“Этот тип очень компактной, высокоэффективной нейронной сети сегментации может использоваться для решения широкого спектра задач, начиная от производственных приложений (например, проверка деталей / оценка качества, роботизированное управление), медицинских приложений (например, анализ клеток, сегментация опухолей), приложений дистанционного спутникового зондирования (например, сегментация растительного покрова) и мобильных приложений (сегментация человека для целей дополненной реальности)", — рассказал Вонг.

Таким образом машинное обучение сегодня управляет архитектурой глубоких нейронных сетей, позволяя находить оптимальные для конкретных устройств конфигурации. Если вы хотите начать эксперименты с моделями машинного обучения и глубокими нейронными сетями и вам интересна эта сфера в целом — от обработки естественного языка до генеративно-состязательных сетей — вы можете присмотреться к курсу "Machine Learning и Deep Learning", партнёром которого является компания NVIDIA — разработчик упомянутой в этой статье Jetson — энергосберегающей системы, предназначенной для ускорения машинного обучения.

Узнайте, как прокачаться и в других специальностях или освоить их с нуля:

Другие профессии и курсы