Введение и применение TinyML
Введение и применение TinyML

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

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

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

В этой статье мы:

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

1. Что такое TinyML

«Нейронные сети также известны как искусственные нейронные сети (ИНС). Эта архитектура составляет основу глубокого обучения, которое представляет собой лишь часть машинного обучения, включающую алгоритмы, основанные на структуре и функциях человеческого мозга. нейронные сети составляют основу архитектуры, которая имитирует то, как биологические нейроны отправляют сигналы друг другу». (Источник: Учебное пособие по PyTorch: построение простой нейронной сети).

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

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

Figure 1. A visualization of a three-layer neural network
Figure 1. A visualization of a three-layer neural network

Согласно сайту tinyml.org, «Tiny машинное обучение в широком смысле определяется как быстро растущая область технологий и приложений машинного обучения, включающая аппаратное обеспечение, алгоритмы и программное обеспечение, способное выполнять работу датчиков на устройстве с чрезвычайно низким энергопотреблением (обычно м Вт). Аналитика данных диапазона и ниже, что позволяет использовать различные варианты постоянного использования и нацеливаться на устройства с батарейным питанием».

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

Но почему это так важно? Давайте посмотрим, почему TinyML так привлекателен.

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

  1. Задержка: данные не нужно передавать на сервер для вывода, поскольку модель работает на периферийном устройстве. Передача данных обычно требует времени, что может вызвать небольшие задержки. Удаление этого требования уменьшает задержку.
  2. Энергосбережение: микроконтроллерам требуется очень небольшое количество электроэнергии, что позволяет им работать в течение длительного времени без подзарядки. Самое приятное то, что не требуется обширная серверная инфраструктура, поскольку не происходит передачи информации: результатом является экономия энергии, ресурсов и затрат.
  3. Уменьшенная пропускная способность: для вывода практически не требуется подключение к Интернету. На устройстве имеются датчики, которые собирают данные и обрабатывают их на устройстве. Это означает, что необработанные данные датчиков не передаются постоянно на сервер.
  4. Конфиденциальность данных: ваши данные не сохраняются на сервере, поскольку модель работает на периферии. Отсутствие передачи информации на сервер увеличивает гарантию конфиденциальности данных.

2. Сценарии использования: как использовать TinyML?

У TinyML есть приложения в самых разных областях, особенно те, которые полагаются на сети и данные из Интернета вещей (IoT) — по сути, сети физических объектов, встроенных в датчики, программное обеспечение и другие технологии, подключенные к другим объектам через Интернет. устройства и системы и обмениваться с ними данными.

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

сельское хозяйство

Можно использовать TinyML Мониторинг устройств и сбор данных в режиме реального времени данные о хозяйстве и животноводстве. шведский край AI продуктовая компания Imagimob Создал платформу разработки машинного обучения на периферийных устройствах. со всего ЕС 55 организации и Imagimob сотрудничать, понимать TinyML Как обеспечить эффективное управление растениеводством и животноводством.

Промышленное профилактическое обслуживание

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

Ярким примером профилактического обслуживания является служба Ping. Они разработали устройство мониторинга, которое постоянно отслеживает акустическую сигнатуру лопастей ветряных турбин, чтобы обнаружить и уведомить о любых изменениях или повреждениях. Согласно веб-сайту Ping, «непрерывный мониторинг позволяет операторам оперативно реагировать на повреждение лопастей, снижая затраты на техническое обслуживание, риск сбоев и простоев, а также улучшая производительность и эффективность ветряных турбин».

опыт работы с клиентами

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

3. Требования к приложению TinyML

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

Tensorflow Lite для микроконтроллеров (TF Lite Micro) — одна из самых популярных платформ машинного обучения для периферийных устройств. Она предназначена для реализации задач машинного обучения во встроенных системах с объемом памяти всего несколько килобайт.

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

С аппаратной точки зрения для начала использования TinyML с TF Lite требуется поддерживаемая плата микроконтроллера. В настоящее время библиотека поддерживает следующие микроконтроллеры:

  • Arduino Nano 33 BLE Sense
  • SparkFun Edge
  • STM32F746 Discovery kit
  • Adafruit EdgeBadge
  • Adafruit TensorFlow Lite for Microcontrollers Kit
  • Adafruit Circuit Playground Bluefruit
  • Espressif ESP32-DevKitC
  • Espressif ESP-EYE
  • Wio Terminal: ATSAMD51
  • Himax WE-I Plus EVB Endpoint AI Development Board
  • Synopsys DesignWare ARC EM Software Development Platform
  • Sony Spresense

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

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода