Привет, Хабр. Будущих студентов курса «Machine Learning. Advanced» всех желающих приглашаем посетить открытый вебинар на тему «Извлечение признаков из временных рядов». Участники вебинара вместе с экспертом-ведущим решат задачку распознавания активности по данным акселерометра мобильного телефона. Присоединяйтесь!

А сейчас делимся с вами традиционным переводом интересного материала.


Вы узнаете основную идею, преимущества и с чего начать участие в этой «крошечной» революции.

Tiny Machine Learning (или TinyML) — это метод машинного обучения, который объединяет облегченные и оптимизированные варианты машинного обучения, требующие «full-stack» решений (оборудования, системы, программного обеспечения и приложений), включая архитектуры машинного обучения, методы, инструменты и подходы, способные выполнять аналитику на устройстве на грани с облаком.

TinyML может быть реализован в системах с низким энергопотреблением, таких как датчики или микроконтроллеры, в целях выполнения автоматизированных задач.

С TinyML мы можем делать больше, располагая меньшим. Это по-прежнему машинное обучение, но с меньшими энергозатратами, стоимостью и без подключения к сети.

Маленькое устройство с огромным потенциалом

Так можно кратко охарактеризовать Tiny Machine Learning (или TinyML) —  без преувеличения прорыв в области искусственного интеллекта.

Следует принять во внимание, что, согласно прогнозу ABI Research, к 2030 году около 2,5 миллиардов устройств выйдут на рынок с применением технологий TinyML, основным преимуществом которой будет создание интеллектуальных IoT-устройств и, что не менее важно, популяризация их за счет вероятного снижения стоимости.

Более того, исследование консалтинговой компании Silent Intelligence подтверждает предыдущий прогноз: экономическая оценка рынка TinyML может преодолеть рубеж в 70 миллиардов долларов в следующие пять лет. Эти цифры не могут остаться незамеченными. Несколько компаний уже работают над созданием микросхем, которые будут использоваться в реализациях TinyML.

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

Большинство IoT-устройств выполняют какую-то конкретную задачу. Они получают входные данные через датчик, производят вычисления, а затем выполняют какое-либо действие или отправляют данные дальше.

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

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

Проблема со встроенными системами в том, что они слишком маленькие. И большинство из них работают от разного рода батарей. Модели машинного обучения потребляют много вычислительной мощности. Инструменты машинного обучения, такие как Tensorflow, не годятся для создания моделей на IoT-устройствах.

Реализация маленького машинного обучения

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

Но как нам реализовать TinyML? Запускать модели машинного обучения на IoT-устройствах нам могут помочь специальные инструменты.

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

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

Некоторые из основных отличий этой технологии:

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

  • Экономия энергии: Передача информации требует обширной серверной инфраструктуры. Когда в передаче данных нет необходимости, экономятся энергия и ресурсы, как, следовательно, и затраты.

  • Нет зависимости от соединения: Если устройству нужен интернет для работы, а связь с ним отсутствует, то отправить данные на сервер будет невозможно. Вы пытаетесь использовать голосового помощника, но он не отвечает, потому что он подключен к интернету.

  • Отсутствие задержки: Передача данных требует времени и часто результирует в задержках. Когда передача данных не является частью рабочего процесса, результат будет мгновенным.

Предпочтительным языком для создания моделей машинного обучения обычно является Python, но с TensorFlow Lite для создания моделей вы можете использовать C, C++ или Java.

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

Tensorflow Lite уже предлагает набор предварительно обученных моделей машинного обучения для повседневного использования. К ним относятся:

  • Обнаружение объектов — используется для распознавания нескольких объектов на изображении, с поддержкой до 80 различных элементов.

  • Умные ответы — генерирует интеллектуальные ответы, подобные тем, которые вы получаете при взаимодействии с диалоговым ИИ или чат-ботом.

  • Рекомендации — предлагает системы индивидуальных рекомендаций, основанных на поведении пользователей.

Также существует несколько хороших альтернатив Tensorflow Lite. Двумя большими конкурентами являются:

  • CoreML — библиотека Apple для построения моделей машинного обучения на устройствах iOS.

  • PyTorch Mobile — мобильная версия библиотеки глубокого обучения PyTorch от Facebook.

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

Может пройти еще некоторое время, прежде чем мы начнем видеть повсеместное распространение TinyML. Но не сомневайтесь, интеллектуальные устройства уже в пути.

Где можно узнать больше о TinyML?

В настоящее время ведущим сообществом является tinyML Foundation, цель которого — создать глобальное сообщество исследователей, инженеров, продукт менеджеров для разработки передовых технологий, продвижения и стимулирования исследований по этой теме.

От себя хотел бы порекомендовать увлекательную книгу (я ее сейчас читаю и, наверное, скоро напишу на нее обзор) под названием Tiny ML: Машинное обучение с Tensorflow Lite на Arduino и микроконтроллерах со сверхмалым энергопотреблением, написанную Питом Уорденом и Дэниэлом Ситунаяке, которая является вводным курсом во вселенную TinyML.

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

Заключение

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

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

Я хочу быть к этому готов, а вы?

Дополнительные материалы

Если вы хотите узнать больше о машинном обучении, искусственном интеллекте, IoT и 5G, я выбрал несколько интересных статей, которые вам, возможно, будет прочитать: 

Кроме того, я только что опубликовал свою новую электронную книгу на Amazon, а также работаю над публикацией в этом году нескольких других книг.

Ссылки


Узнать подробнее о курсе «Machine Learning. Advanced».

Зарегистрироваться на вебинар на тему «Извлечение признаков из временных рядов».