Система под названием MCUNet создает компактные нейронные сети, которые обеспечивают беспрецедентную скорость и точность для глубокого обучения на устройствах IoT, несмотря на ограниченную память и вычислительную мощность. Технология может способствовать расширению вселенной Интернета вещей при одновременном сбережении энергии и повышении безопасности данных.
Исследование будет представлено на конференции по нейронным системам обработки информации в следующем месяце. Ведущий автор – Цзи Линь, аспирант лаборатории Сон Хана на факультете электротехники и компьютерных наук Массачусетского технологического института. Соавторы: Хан и Юджун Линь из Массачусетского технологического института, Вэй-Мин Чен из Массачусетского технологического института и Национального университета Тайваня, а также Джон Кон и Чуанг Ган из лаборатории ИИ Watson MIT-IBM.
Интернет вещей
Интернет вещей родился в начале 1980-х годов. Аспиранты Университета Карнеги-Меллона, в том числе Майк Казар ’78, подключили автомат с кола-колой к Интернету.
Мотивация группы была проста: лень. Они хотели использовать свои компьютеры, чтобы убедиться, что машина есть на складе, прежде чем отправиться из своего офиса, чтобы сделать покупку. Это было первое в мире устройство, подключенное к Интернету. «Это в значительной степени воспринималось как изюминка шутки», – говорит Казар, ныне инженер Microsoft. "Никто не ожидал, что в Интернете появятся миллиарды устройств."
С тех пор, как появилась машина с кока-колой, предметы повседневного обихода стали все больше объединяться в сеть растущего Интернета вещей.
Это включает в себя все, от носимых кардиомониторов до умных холодильников, которые сообщают вам, когда у вас мало молока. Устройства IoT часто работают на микроконтроллерах – простых компьютерных микросхемах без операционной системы, с минимальной вычислительной мощностью и менее одной тысячной памяти типичного смартфона.
Поэтому задачи распознавания образов, такие как глубокое обучение, сложно выполнять локально на устройствах Интернета вещей. Для комплексного анализа данные, собранные IoT, часто отправляются в облако, что делает его уязвимым для взлома.
"Как развертывать нейронные сети прямо на этих крошечных устройствах?? Это новая область исследований, которая становится все более актуальной ", – говорит Хан. "Такие компании, как Google и ARM, работают в этом направлении."Хан тоже.
С помощью MCUNet группа Хана разработала два компонента, необходимых для «крошечного глубокого обучения» – работы нейронных сетей на микроконтроллерах. Одним из компонентов является TinyEngine, механизм вывода, который управляет управлением ресурсами, аналогично операционной системе.
TinyEngine оптимизирован для работы с конкретной структурой нейронной сети, которая выбирается другим компонентом MCUNet: TinyNAS, алгоритмом поиска нейронной архитектуры.
Системно-алгоритм кодовой подписи
Спроектировать глубокую сеть для микроконтроллеров непросто. Существующие методы поиска нейронной архитектуры начинаются с большого пула возможных сетевых структур на основе предопределенного шаблона, затем они постепенно находят ту, которая отличается высокой точностью и низкой стоимостью.
Хотя метод работает, он не самый эффективный. «Он может отлично работать с графическими процессорами или смартфонами», – говорит Линь. «Но было трудно напрямую применить эти методы к крошечным микроконтроллерам, потому что они слишком малы."
Поэтому Лин разработал TinyNAS, метод поиска по нейронной архитектуре, который создает сети нестандартного размера. «У нас есть много микроконтроллеров с разной мощностью и разным объемом памяти», – говорит Лин. «Поэтому мы разработали алгоритм [TinyNAS] для оптимизации пространства поиска для различных микроконтроллеров.«Индивидуальный характер TinyNAS означает, что он может создавать компактные нейронные сети с наилучшей производительностью для данного микроконтроллера – без лишних параметров. «Затем мы доставляем окончательную, эффективную модель микроконтроллеру», – говорит Линь.
Чтобы запустить эту крошечную нейронную сеть, микроконтроллер также нуждается в бережливом механизме вывода. Типичный механизм логического вывода несет в себе некоторый мертвый груз – инструкции для задач, которые он может редко запускать.
Дополнительный код не представляет проблемы для ноутбука или смартфона, но он может легко перегрузить микроконтроллер. «У него нет внешней памяти и нет диска», – говорит Хан. "Все вместе – это всего лишь один мегабайт флеш-памяти, поэтому нам нужно очень тщательно управлять таким маленьким ресурсом."Cue TinyEngine.
Исследователи разработали свой механизм вывода вместе с TinyNAS. TinyEngine генерирует основной код, необходимый для запуска настраиваемой нейронной сети TinyNAS. Любой мертвый код отбрасывается, что сокращает время компиляции. «Мы оставляем только то, что нам нужно», – говорит Хан. "И поскольку мы разработали нейронную сеть, мы точно знаем, что нам нужно.
В этом преимущество кодового обозначения системного алгоритма."В групповых тестах TinyEngine размер скомпилированного двоичного кода был между 1.В 9 и в пять раз меньше, чем сопоставимые механизмы логического вывода микроконтроллеров от Google и ARM. TinyEngine также содержит инновации, которые сокращают время выполнения, в том числе свертку с глубиной на месте, которая сокращает пиковое использование памяти почти вдвое. После кодирования TinyNAS и TinyEngine команда Хана провела тестирование MCUNet.
Первой задачей MCUNet была классификация изображений.
Исследователи использовали базу данных ImageNet для обучения системы с помеченными изображениями, а затем для проверки ее способности классифицировать новые. На тестируемом ими коммерческом микроконтроллере MCUNet успешно классифицировал 70.7 процентов новых изображений – предыдущая комбинация современной нейронной сети и механизма вывода была точна всего на 54 процента. «Даже 1 процентное улучшение считается значительным, – говорит Линь. "Так что это гигантский скачок в настройках микроконтроллеров."
Команда нашла аналогичные результаты в тестах ImageNet трех других микроконтроллеров. И по скорости, и по точности MCUNet превосходит конкурентов в задачах звукового и визуального «пробуждения», когда пользователь инициирует взаимодействие с компьютером, используя голосовые сигналы (подумайте: «Привет, Siri») или просто войдя в комнату.
Эксперименты подчеркивают адаптируемость MCUNet к многочисленным приложениям.
«Огромный потенциал»
Многообещающие результаты тестирования вселяют в Хана надежду, что он станет новым отраслевым стандартом для микроконтроллеров. «У него огромный потенциал», – говорит он.
Прогресс «расширяет границы проектирования глубоких нейронных сетей еще дальше в вычислительную область небольших энергоэффективных микроконтроллеров», – говорит Курт Койцер, ученый-компьютерщик из Калифорнийского университета в Беркли, который не принимал участия в работе. Он добавляет, что MCUNet может «привнести интеллектуальные возможности компьютерного зрения даже в простейшие кухонные приборы или включить более интеллектуальные датчики движения."
MCUNet также может сделать устройства Интернета вещей более безопасными. «Ключевым преимуществом является сохранение конфиденциальности», – говорит Хан. "Вам не нужно передавать данные в облако."
Локальный анализ данных снижает риск кражи личной информации, включая личные данные о здоровье. Хан представляет умные часы с MCUNet, которые не только определяют сердцебиение пользователей, их кровяное давление и уровень кислорода, но также анализируют и помогают им понять эту информацию.
MCUNet также может обеспечить глубокое обучение для устройств IoT в транспортных средствах и сельской местности с ограниченным доступом в Интернет.
Кроме того, компактный размер вычислительной сети MCUNet превращается в небольшой углеродный след. «Наша большая мечта – зеленый ИИ», – говорит Хан, добавляя, что обучение большой нейронной сети может сжечь углеродный эквивалент выбросов пяти автомобилей.
MCUNet на микроконтроллере потребует небольшую часть этой энергии. «Наша конечная цель – создать эффективный крошечный ИИ с меньшими вычислительными ресурсами, человеческими ресурсами и данными», – говорит Хан.