TinyML (Tiny machine learning) - в переводе "крошечное" машинное обучение, появилось сравнительно недавно. Оно внедряет технологии машинного обучения и искусственного интеллекта в небольшие аппаратные компоненты, тем самым способствуя бурному распространению данных технологий. В этой статье мы кратко рассмотрим основы, особенности данной технологии и программное и аппаратное обеспечение для ее реализации.
Введение в TinyML
Tiny machine learning — это быстрорастущая область технологий и приложений машинного обучения, которая включает в себя аппаратное обеспечение (специализированные интегральные схемы), алгоритмы и программное обеспечение, способное выполнять аналитику данных датчиков на устройстве (камера/цветовое зрение, аудио, IMU, биомедицина) при чрезвычайно низкой мощности, как правило, в диапазоне мВт и ниже, что позволяет использовать множество постоянно включенных вариантов использования и нацеливаться на устройства с питанием от батареи. TinyML — это отрасль исследований машинного обучения и встраиваемых систем, которая изучает типы моделей, которые могут работать на небольших устройствах с низким энергопотреблением, таких как микроконтроллеры. Она обеспечивает вывод моделей с низкой задержкой, низким энергопотреблением и низкой пропускной способностью на периферийных устройствах. Типичный микроконтроллер потребляет электроэнергию в диапазоне милливатт или микроватт, тогда как типичный потребительский ЦП потребляет от 65 до 85 Вт, а типичный потребительский ГП потребляет от 200 до 500 Вт. Это эквивалентно тысячекратному сокращению потребления энергии. Благодаря низкому энергопотреблению устройства TinyML могут работать от батарей в течение недель, месяцев и даже лет, одновременно выполняя приложения машинного обучения.
Зачем нам нужен TinyML?
Сейчас мы слушаем о камерах с искусственным интеллектом, стиральных машинах с искусственным интеллектом и электронных устройствах с искусственным интеллектом. В этих устройствах машинное обучение используется для осмысления зашумленных данных датчиков. Но проблема со встроенными устройствами заключается в том, что они крошечные и большинство из них работают от батареи. Поскольку модели машинного обучения потребляют много вычислительной мощности, они не подходят для создания моделей на устройствах с питанием от батареи. Вот здесь в игру и вступает TinyML. В TinyML мы можем запустить модель нейронной сети на любой плате, используя менее 1 мВт энергии. Это означает, что устройство, работающее от батарейки-таблетки, прослужит целый год. В результате мы получаем устройство достаточно крошечное, чтобы вписаться в любую обстановку, и способное работать в течение длительного периода времени без необходимости взаимодействия с человеком.
TinyML позволяет запускать модели машинного обучения на небольших микроконтроллерах. На нашем сайте мы рассматривали создание большого числа проектов на таких устройствах как Raspberry PI и ESP32. Например, на основе платы Raspberry Pi мы рассматривали следующие проекты машинного обучения:
- управляемый жестами видеоплеер на Raspberry Pi и MediaPipe;
- распознавание эмоций с помощью Raspberry Pi, OpenCV, TensorFlow и Keras;
- распознавание объектов на Raspberry Pi с помощью Edge Impulse TinyML;
- машинное обучение в Raspberry Pi с помощью TensorFlow.
Это великолепные устройства, но даже самый маленький Pi потребляет сотни милливатт, что сопоставимо с энергопотреблением основного процессора мобильного телефона. Для работы даже в течение нескольких дней требуется батарея, аналогичная батарее смартфона, что затрудняет создание полностью автономного устройства. TinyML специализируется на устройствах имеющих энергопотребление менее 1 мВт, поэтому мы должны перейти в область встраиваемых устройств для наших аппаратных платформ. Мы будем использовать такие устройства для TinyML, который потребляют очень мало энергии и при этом способны запускать алгоритмы машинного обучения.
Аппаратное обеспечение для TinyML
Теперь, когда у нас есть базовое понимание TinyML, давайте обсудим аппаратное обеспечение, которое мы можем использовать для запуска моделей TinyML. Для тестирования ваших программ вам также понадобится встроенная плата разработки с некоторыми датчиками, такими как микрофон, акселерометры или камера, прикрепленная для выполнения чего-то интересного, и вам понадобится что-то достаточно маленькое, чтобы встроить его в практический прототип, а также батарея. Для всего этого отлично подходит такая плата как Arduino Nano 33 BLE Sense. На нашем сайте мы рассматривали два проекта машинного обучения, использующих данную плату:
- распознавание речи на Arduino Nano 33 BLE Sense;
- обнаружение людей с помощью Arduino и машинного обучения на TensorFlow.
Но в платформе Arduino есть и другие типы плат, обеспечивающие достаточно продвинутые технологии машинного обучения, их обзор вы можете прочитать в статье про разновидности плат Arduino.
Обзор платы Arduino Nano 33 BLE Sense
Это очень маленькая плата с поддержкой искусственного интеллекта размером 45*18 мм. Это мощная версия обычного Arduino Nano с nRF52840 от Nordic Semiconductors, 32-битным процессором ARM CortexTM-M4, работающим на частоте 64 МГц. Она позволит вам писать более крупные программы (она имеет 1 МБ памяти программ, что в 32 раза больше, чем Uno) и с гораздо большим количеством переменных, чем с Arduino Uno (ОЗУ в 128 раз больше). Другие замечательные особенности основного процессора включают сопряжение Bluetooth через NFC и режимы сверхнизкого энергопотребления. Она имеет встроенные датчики:
- 9-осевой инерциальный датчик: что делает эту плату идеальной для носимых устройств;
- датчик влажности и температуры: для получения высокоточных измерений условий окружающей среды;
- барометрический датчик: можно сделать простую метеостанцию;
- микрофон: для захвата и анализа звука в реальном времени;
- датчик жестов, приближения, цвета и интенсивности света: оценивает освещенность помещения, а также приближается ли кто-то к плате.
Помимо выдающегося выбора датчиков, ключевой особенностью этой платы является возможность запуска на ней приложений Edge Computing (AI) с использованием TinyML. TensorFlow Lite может использоваться для разработки моделей машинного обучения, которые затем можно загрузить на вашу плату с помощью Arduino IDE.
Программное обеспечение для TinyML
Фреймворк TensorFlow Lite for Microcontrollers широко применяется во всех проектах, основанных на TinyML. Это модифицированная версия фреймворка TensorFlow Lite, которая предназначена для работы на встраиваемых устройствах с объемом памяти всего в несколько десятков килобайт.
TensorFlow Lite — это легковесное решение TensorFlow для мобильных и встраиваемых устройств. Оно позволяет выполнять модели машинного обучения на мобильных устройствах с минимальной задержкой, что позволяет использовать их для классификации, регрессии и других задач без необходимости совершать круговой обход сервера. TensorFlow Lite и TensorFlow Mobile отличаются следующим: это последняя мобильная версия TensorFlow. Приложения TensorFlow Lite обычно имеют лучшую производительность и меньшие размеры двоичных файлов, чем мобильные приложения TensorFlow.
Преимущества Tiny ML
- Низкое энергопотребление — одно из главных преимуществ TinyML. Мы будем использовать здесь микроконтроллеры, которые потребляют очень мало энергии (менее 1 мВт). Это позволяет устройствам работать в течение длительного периода времени без необходимости подзарядки.
- Для проекта TinyML требуется гораздо меньше пропускной способности, поскольку данные не нужно регулярно передавать на сервер, потребляется меньше пропускной способности интернета.
- Используя TinyML, мы можем разработать ряд интеллектуальных датчиков и интеллектуальных устройств. TinyML будет широко использоваться в различных отраслях. Розничная торговля, здравоохранение, транспорт, оздоровление, сельское хозяйство, фитнес и производство — вот лишь некоторые из отраслей, которые будут затронуты. Добавив сбор данных и выбрав датчики, такие как датчик акселерометра, для сбора данных о движениях телефона, наши телефоны могут стать периферийным устройством, собирающим данные. Это позволяет ему выполнять передовые модели обучения на основе искусственных нейронных сетей (ИНС), которые могут получать доступ и производить выборку крошечных датчиков и маломощных микроконтроллеров.
Заключение
Микроконтроллеры сейчас повсюду, и с помощью подключенных к ним датчиков они собирают огромное количество данных. Добавление TinyML к этим микроконтроллерам откроет ряд возможностей для приложений в устройствах IoT, таких как телевизоры, автомобили, кофемашины, часы и другие устройства, чтобы они имели интеллект, ограниченный только компьютерами и смартфонами.
44 просмотров