Исследователи из Массачусетского технологического института разработали систему, которая может обеспечить применение нейронных сетей глубокого обучения в новых — и гораздо меньших — местах, таких как крошечные компьютерные чипы в носимых медицинских устройствах, бытовой технике и других 250 миллиардах объектов, составляющих «Интернет вещей» (IoT).

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

Результаты исследования будут представлены на конференции по нейронным информационным системам в следующем месяце. Ведущий автор — Цзи Линь, аспирант лаборатории Сун Хана на кафедре электротехники и информатики Массачусетского технологического института. Соавторами являются Хан и Юцзюнь Линь из Массачусетского технологического института, Вэй-Мин Чен из Массачусетского технологического института и Национального университета Тайваня, а также Джон Кон и Чуан Ган из лаборатории искусственного интеллекта MIT-IBM Watson.

Интернет вещей

Интернет вещей (IoT) зародился в начале 1980-х годов. Аспиранты Университета Карнеги-Меллона, включая Майка Казара в 1978 году, подключили автомат Coca-Cola к интернету. Мотивация группы была проста: лень. Они хотели использовать свои компьютеры, чтобы убедиться, что автомат заполнен товаром, прежде чем покинуть свой офис для покупки. Это было первое в мире устройство, подключенное к интернету. «Это воспринималось в большей или меньшей степени как кульминация шутки», — говорит Казар, ныне инженер Microsoft. «Никто не ожидал, что к интернету подключатся миллиарды устройств»

От автомата Coca-Cola до стремительно развивающегося интернета вещей (IoT) всё большее число повседневных предметов становится взаимосвязанным. Это включает в себя всё: от носимых кардиомониторов до умных холодильников, которые сообщают о нехватке молока. Устройства IoT часто работают на микроконтроллерах — простых компьютерных чипах без операционной системы, с минимальной вычислительной мощностью и объемом памяти менее одной тысячной от памяти типичного смартфона. Поэтому задачи распознавания образов, такие как глубокое обучение, сложно выполнять локально на устройствах IoT. Для сложного анализа данные, собранные с помощью IoT, часто отправляются в облако, что делает их уязвимыми для взлома.

«Как нам внедрить нейронные сети непосредственно в эти небольшие устройства? Это новое направление исследований, которое набирает большую популярность», — говорит Хан. «Такие компании, как Google и ARM, работают в этом направлении».

В рамках проекта MCUNet группа Хана разработала два компонента, необходимых для «миниатюрного глубокого обучения» — работы нейронных сетей на микроконтроллерах. Один из компонентов — TinyEngine, механизм вывода, который управляет ресурсами подобно операционной системе. TinyEngine оптимизирован для работы с определенной архитектурой нейронной сети, которая выбирается другим компонентом MCUNet: TinyNAS, алгоритмом поиска архитектуры нейронной сети.

Кодирование системного алгоритма

Разработка глубокой нейронной сети для микроконтроллеров — непростая задача. Существующие методы поиска нейронной архитектуры начинаются с большого набора возможных структур сети на основе заранее определенного шаблона, а затем постепенно находят ту, которая обладает высокой точностью и низкой стоимостью. «Это может довольно хорошо работать для графических процессоров или смартфонов, — говорит Лин. — Но напрямую применять эти методы к крошечным микроконтроллерам сложно, потому что они слишком малы»

Поэтому Лин разработал TinyNAS — метод поиска нейронной архитектуры, который создает сети заданного размера. «У нас много микроконтроллеров с разными возможностями энергопотребления и размерами памяти», — говорит Лин. «Поэтому мы разработали алгоритм [TinyNAS] для оптимизации пространства поиска для разных микроконтроллеров». Индивидуальный характер TinyNAS означает, что он может генерировать компактные нейронные сети с наилучшей возможной производительностью для данного микроконтроллера, без лишних параметров. «Затем мы передаем окончательную, эффективную модель микроконтроллеру», — говорит Лин.

Для работы этой крошечной нейронной сети микроконтроллеру также необходим слабый механизм вывода. Типичный механизм вывода содержит определенное количество «мертвого груза» — инструкций для задач, которые он редко может выполнить. Дополнительный код не является проблемой для ноутбука или смартфона, но он легко может перегрузить микроконтроллер. «У него нет внешней памяти и нет диска», — говорит Хан. «Всё это всего лишь один мегабайт флэш-памяти, поэтому нам приходится очень бережно обращаться с таким малым ресурсом». И тут на помощь приходит TinyEngine.

Исследователи разработали свой механизм вывода в сотрудничестве с TinyNAS. TinyEngine генерирует необходимый код для работы собственной нейронной сети TinyNAS. Любой ненужный код отбрасывается, что сокращает время компиляции. «Мы оставляем только то, что нам нужно», — говорит Хан. «И поскольку мы сами разработали нейронную сеть, мы точно знаем, что нам нужно. В этом преимущество системного алгоритмического кода». В тестах, проведенных группой TinyEngine, размер скомпилированного бинарного кода был в 1,9–5 раз меньше, чем у сопоставимых механизмов вывода для микроконтроллеров от Google и ARM. TinyEngine также содержит инновации, сокращающие время выполнения, включая сверток глубины на месте, что снижает пиковое использование памяти почти вдвое. После написания кода для TinyNAS и TinyEngine команда Хана протестировала MCUNet.

Первой задачей MCUNet стала классификация изображений. Исследователи использовали базу данных ImageNet для обучения системы на размеченных изображениях, а затем для проверки ее способности классифицировать новые. На протестированном ими коммерческом микроконтроллере MCUNet успешно классифицировала 70,7% новых изображений — предыдущая передовая комбинация нейронной сети и механизма вывода показала точность всего 54%. «Даже улучшение на 1% считается значительным», — говорит Лин. «Так что это большой шаг вперед в настройке микроконтроллеров»

Команда получила аналогичные результаты в тестах ImageNet на трех других микроконтроллерах. И по скорости, и по точности MCUNet превзошла конкурентов в задачах «пробуждения» с помощью слуховых и визуальных сигналов, когда пользователь инициирует взаимодействие с компьютером с помощью голосовых команд (например, «Привет, Siri») или просто входя в комнату. Эксперименты подчеркивают адаптивность MCUNet к многочисленным приложениям.

«Огромный потенциал».
Обнадеживающие результаты испытаний вселяют в Хана надежду на то, что это устройство станет новым отраслевым стандартом для микроконтроллеров. «У него огромный потенциал», — говорит он.

«Этот прорыв „продвигает границы проектирования глубоких нейронных сетей еще дальше в вычислительную область небольших, энергоэффективных микроконтроллеров“», — говорит Курт Койтцер, специалист по информатике из Калифорнийского университета в Беркли, не принимавший участия в работе. Он добавляет, что MCUNet может „привнести возможности интеллектуального компьютерного зрения даже в самые простые кухонные приборы или обеспечить работу более интеллектуальных датчиков движения“.

MCUNet также может повысить безопасность устройств IoT. «Ключевое преимущество — сохранение конфиденциальности, — говорит Хан. — Нет необходимости передавать данные в облако».

Локальный анализ данных снижает риск кражи личной информации, включая данные о состоянии здоровья. Хан предполагает, что умные часы с технологией MCUNet будут не только определять частоту сердечных сокращений, артериальное давление и уровень кислорода у пользователей, но и анализировать и понимать эту информацию. MCUNet также может расширить возможности глубокого обучения для устройств IoT в транспортных средствах и сельских районах с ограниченным доступом к интернету.

Кроме того, небольшая вычислительная мощность MCUNet означает и небольшой углеродный след. «Наша большая мечта — это экологичный Интернет вещей», — говорит Хан, добавляя, что обучение большой нейронной сети может сжечь углеродный эквивалент выбросов пяти автомобилей за весь срок их службы. MCUNet на микроконтроллере потребует лишь ничтожную долю этой энергии. «Наша конечная цель — создать миниатюрный, эффективный ИИ с меньшей вычислительной мощностью, меньшим количеством людей и меньшим объемом данных», — говорит Хан.

Автор: Даниэль Аккерман, Массачусетский технологический институт