Что такое TinyML

Поделиться страницей Игры

Узнайте о подразделе машинного обучения (ML) под названием Tiny Machine Learning (TinyML), о том, что это такое, о его применении, требованиях к аппаратному и программному обеспечению, а также о его преимуществах.

Машинное обучение (ML) — это динамичная и мощная область информатики, которая проникла практически во все цифровые вещи, с которыми мы взаимодействуем, будь то социальные сети, наши мобильные телефоны, автомобили или даже бытовая техника.

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

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

Чтобы позволить ML расширить сферу своего применения и открыть новую эру приложений, мы должны найти способы облегчить вывод ML на небольших устройствах с ограниченными ресурсами. Это стремление привело к появлению области, известной как Tiny Machine Learning или TinyML (торговая марка TinyML Foundation, ставшая синонимом технологии).

Что такое Tiny Machine Learning или TinyML?

Машинное обучение — это технология, использующая алгоритмы, называемые нейронными сетями (пример показан на рисунке 1), для обучения компьютера распознаванию закономерностей. Это экстраполируется на различные приложения, включая распознавание объектов и обработку естественного языка.

Рисунок 1. Визуализация примера нейронной сети Perceptron

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

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

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

Приложения TinyML

Независимо от того, осознаете вы это или нет, TinyML, вероятно, является частью вашей повседневной жизни в том или ином качестве.

Приложения для TinyML включают:

  • Поиск ключевых слов;
  • Распознавание и классификация объектов;
  • Распознавание жестов;
  • Обнаружение звука;
  • Мониторинг машин.

Примером применения TinyML в повседневной жизни является модель обнаружения звукового сигнала пробуждения, используемая в устройствах Google и Android. Пример компонентов обнаружения слов пробуждения показан на рисунке 2.

Чтобы «включиться», услышав слова «OK Google», устройства Android используют ML-модель обнаружения речи объемом 14 кБ, которая работает на DSP. То же самое можно сказать и о многих других виртуальных помощниках.

Рисунок 2. Компоненты приложения для пробуждения

Другие примеры применения TinyML от студентов Гарварда включают обнаружение оленей на шоссе для автомобилей (пример обнаружения объектов), обнаружение комаров по звуку (пример распознавания звука) и многое другое.

Аппаратное обеспечение, используемое в приложениях TinyML

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

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

С точки зрения вычислений, TinyML не полагается на графические процессоры (GPU), интегральные схемы для конкретных приложений (ASIC) и микропроцессоры, как большинство приложений ML. Пример обучающего набора с использованием Arduino показан на рисунке 3.

Рисунок 3. Пример учебного комплекта TinyML

Чтобы достичь высоких целей в 1 мВт, мы почти исключительно ограничиваемся менее мощным вычислительным оборудованием, таким как микроконтроллеры (MCU) и цифровые сигнальные процессоры (DSP). Эти устройства часто основаны на Cortex-M и, как можно ожидать, имеют не более нескольких сотен кБ оперативной памяти, аналогичный объем флэш-памяти и тактовую частоту в десятки МГц.

Помимо этого, другие аппаратные средства, которые можно ожидать найти на устройстве TinyML, включают датчики (например, камеру, микрофон) и, возможно, некоторые возможности подключения BLE (Bluetooth Low Energy).

Программное обеспечение TinyML: TensorFlow

Во многом программное обеспечение, лежащее в основе инструментов и концепций TinyML, является его самой важной особенностью.

В целом, наиболее популярной и развитой экосистемой для разработки TinyML является TensorFlow Lite for Microcontrollers (TF Lite Micro). Обобщенный рабочий процесс для TinyML на TF Lite Micro показан ниже на рисунке 4.

TF Lite Micro была разработана специально для решения задачи ML на устройствах с ограниченными ресурсами, причем основное внимание уделяется MCU.

Будучи средой на базе Python, TF Lite Micro содержит множество встроенных библиотек и наборов инструментов для:

  • Сбора данных;
  • Предварительной обработки;
  • Архитектура модели;
  • Обучение;
  • Оценка;
  • Оптимизация;
  • Квантование.
Рисунок 4. Рабочий процесс TensorFlow Lite Micro

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

С квантованной моделью большинство приложений для устройств TinyML пишутся на C/C++ с минимальными накладными расходами.

Преимущества TinyML

Основным преимуществом TinyML является его портативность. Работа на дешевых микроконтроллерах с крошечными батареями и низким энергопотреблением означает, что, используя TinyML, можно легко и дешево интегрировать ML практически во что угодно.

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

Видеообзор: Что такое TinyML?
Поделиться страницей
«Кови»