Машинное обучение предоставляет исследователям мощные инструменты для выявления и прогнозирования моделей и поведения, а также для обучения, оптимизации и выполнения задач. Это варьируется от приложений, таких как системы технического зрения на автономных транспортных средствах или роботах, до интеллектуальных термостатов и носимых и мобильных устройств, таких как умные часы и приложения, которые могут отслеживать изменения в состоянии здоровья. Хотя эти алгоритмы и их архитектуры становятся все более мощными и эффективными, они обычно требуют огромных объемов памяти, вычислений и данных для обучения и создания выводов.
В то же время исследователи работают над уменьшением размера и сложности устройств, на которых могут работать эти алгоритмы, вплоть до микроконтроллера (MCU), который находится в миллиардах устройств Интернета вещей (IoT).
MCU — это миникомпьютер с ограниченным объемом памяти, размещенный в компактной интегральной схеме, в которой отсутствует операционная система и который выполняет простые команды. Эти относительно дешевые периферийные устройства требуют низкой вычислительной мощности и пропускной способности и предлагают множество возможностей для внедрения технологии искусственного интеллекта для расширения их приминения, повышения конфиденциальности и демократизации их использования — область, называемая TinyML.
Теперь команда MIT, работающая над TinyML в лаборатории MIT-IBM Watson AI Lab, и исследовательская группа Сон Хана, доцента кафедры электротехники и информатики (EECS), разработали методику уменьшения необходимого объема памяти, улучшая при этом производительность при распознавании изображений в живом видео.
«Наша новая технология может сделать намного больше и открывает путь к крошечному машинному обучению на периферийных устройствах», — говорит Хан, который занимается разработкой программного и аппаратного обеспечения TinyML.
Чтобы повысить эффективность TinyML, Хан и его коллеги из EECS и MIT-IBM Watson AI Lab проанализировали, как используется память на микроконтроллерах, на которых работают различные сверточные нейронные сети (CNN). CNN часто применяются для оценки и определения визуальных характеристик в изображениях, например, человека, проходящего через видеокадр. В своем исследовании ученые обнаружили дисбаланс в использовании памяти, вызывающий предварительную загрузку компьютерного чипа и создание узких мест. Разработав новую технику логического вывода и нейронную архитектуру, команда решила проблему и снизила пиковое использование памяти в четыре-восемь раз. Кроме того, команда развернула его на своей собственной системе технического зрения tinyML, оснащенной камерой и способной обнаруживать людей и объекты, создав новое поколение, получившее название MCUNetV2.
Дизайн для повышения эффективности памяти и перераспределения
TinyML предлагает множество преимуществ по сравнению с глубоким машинным обучением, которое происходит на более крупных устройствах, таких как удаленные серверы и смартфоны. К ним, отмечает Хан, относится конфиденциальность, поскольку данные не передаются в облако для вычислений, а обрабатываются на локальном устройстве; надежность, так как вычисления выполняются быстро, а время ожидания невелико; и низкая стоимость, потому что устройства IoT стоят примерно от 1 до 2 долларов.
Однако небольшая память MCU и цифровое хранилище ограничивают приложения AI, поэтому эффективность является центральной проблемой. MCU содержат только 256 килобайт памяти и 1 мегабайт памяти. Для сравнения: мобильный ИИ на смартфонах и облачные вычисления, соответственно, может иметь 256 гигабайт и терабайт памяти, а также в 16 000 и 100 000 раз больше памяти. Как ценный ресурс, команда хотела оптимизировать его использование, поэтому они профилировали использование памяти MCU в проектах CNN — задача, на которую до сих пор не обращали внимания, говорят Линь и Чен.
Их результаты показали, что пик использования памяти приходится на первые пять сверточных блоков из примерно 17. Каждый блок содержит множество связанных сверточных слоев, которые помогают отфильтровать наличие определенных функций во входном изображении или видео, создавая карту функций как вывод. На начальном этапе с интенсивным использованием памяти большинство блоков работали за пределами ограничения памяти в 256 КБ, что давало много возможностей для улучшения. Чтобы уменьшить пиковую память, исследователи разработали график вывода на основе патчей, который работает только с небольшой частью, примерно 25 процентов, карты объектов слоя за один раз, прежде чем перейти к следующему кварталу, пока не будет готов весь слой. . Этот метод сэкономил в четыре-восемь раз больше памяти, чем предыдущий метод послойных вычислений, без каких-либо задержек.
«В качестве иллюстрации скажем, что у нас есть пицца. Мы можем разделить его на четыре части и съедать только один кусок за раз, так что вы сэкономите около трех четвертей. Это метод вывода на основе патчей », — говорит Хан. «Однако это был не бесплатный обед». Подобно фоторецепторам в человеческом глазу, они могут воспринимать и исследовать только часть изображения за раз; это восприимчивое поле представляет собой участок всего изображения или поля зрения. По мере того, как размер этих рецептивных полей (или кусочков пиццы в этой аналогии) увеличивается, увеличивается перекрытие, что приводит к избыточным вычислениям, которые, как выяснили исследователи, составляют около 10 процентов. Исследователи предложили также перераспределить нейронную сеть по блокам параллельно с методом вывода на основе патчей, не теряя при этом точности системы технического зрения. Тем не менее, оставался вопрос о том, какие блоки нуждаются в методе вывода на основе патчей, а какие могут использовать исходный послойный метод вместе с решениями о перераспределении; ручная настройка была трудоемкой, и ее лучше доверить ИИ.
«Мы хотим автоматизировать этот процесс, выполняя совместный автоматический поиск для оптимизации, включая архитектуру нейронной сети, например количество слоев, количество каналов, размер ядра, а также график вывода, включая количество исправлений, количество слоев. для вывода на основе патчей и других ручек оптимизации, — говорит Лин, — чтобы специалисты, не относящиеся к машинному обучению, могли иметь кнопочное решение для повышения эффективности вычислений, а также повышения производительности проектирования, чтобы иметь возможность развернуть эту нейронную сеть на микроконтроллерах ».
Новый горизонт для крошечных систем технического зрения
Совместное проектирование сетевой архитектуры с оптимизацией поиска нейронной сети и планированием логических выводов обеспечило значительный выигрыш и было адаптировано в MCUNetV2; устройство превосходил другие системы технического зрения по пиковому использованию памяти, а также по обнаружению и классификации изображений и объектов. Устройство MCUNetV2 включает в себя небольшой экран и камеру, а его размер примерно равен футляру для наушников. По словам Чена, по сравнению с первой версией для новой версии требовалось в четыре раза меньше памяти при той же точности. При сопоставлении с другими решениями tinyML MCUNetV2 смог обнаруживать присутствие объектов в кадрах изображения, таких как человеческие лица, с улучшением почти на 17 процентов. Кроме того, система установила рекорд точности, почти 72 процента, для классификации изображений тысячи классов в наборе данных ImageNet, используя 465 КБ памяти. Исследователи проверили так называемые визуальные слова пробуждения, насколько хорошо их модель зрения MCU может идентифицировать присутствие человека на изображении, и даже с ограниченной памятью всего 30 КБ она достигла точности более 90 процентов, превзойдя предыдущее состояние. ультрасовременный метод. Это означает, что метод достаточно точен и может быть использован, например, в приложениях для умного дома.
Благодаря высокой точности, низкому энергопотреблению и стоимости производительность MCUNetV2 открывает доступ к новым приложениям Интернета вещей. По словам Хана, из-за их ограниченной памяти системы технического зрения на устройствах Интернета вещей ранее считались подходящими только для базовых задач классификации изображений, но их работа помогла расширить возможности использования TinyML. Кроме того, исследовательская группа рассматривает приминение во многих областях, от мониторинга сна и движений суставов в сфере здравоохранения до спортивных тренировок и идентификации растений в сельском хозяйстве, а также в более интеллектуальном производстве, от определения гаек и болтов. для обнаружения неисправных машин.
Это исследование спонсировалось MIT-IBM Watson AI Lab, Samsung и Woodside Energy, а также Национальным научным фондом.
Будьте в курсе в удобном формате, присоединяйтесь: TG-канал и ВК