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