Главная chevron_right Уроки chevron_right Edge AI chevron_right Основы ML для периферийных устройств (2/4)

Основы ML для периферийных устройств (2/4)

Разбираем алгоритмы, методы оптимизации и полный жизненный цикл Edge AI — от выбора модели до развёртывания на микроконтроллере.

В предыдущем модуле мы выяснили, что такое Edge AI и зачем он нужен во встраиваемых системах. Теперь погрузимся глубже: разберём, какие алгоритмы подходят для ресурсоограниченных устройств, как их оптимизировать и как выглядит полный цикл разработки Edge AI-приложений.

Типы алгоритмов для Edge AI

Далеко не каждый алгоритм машинного обучения можно запустить на микроконтроллере. Разберёмся, что делает Edge AI-алгоритмы эффективными и какие классы задач они решают.

Эффективные алгоритмы для ресурсоограниченных устройств

Микроконтроллеры и другие периферийные устройства жёстко ограничены по памяти, вычислительной мощности и энергопотреблению. Поэтому алгоритмы Edge AI должны быть максимально компактными и быстрыми [1].

Первый критерий — малое потребление памяти. Модель должна помещаться во Flash-память (для хранения) и SRAM (для выполнения инференса). Типичная TinyML-модель занимает от 10 КБ до 250 КБ в зависимости от железа [2].

Второй критерий — низкая вычислительная сложность: нужно минимизировать количество математических операций при формировании предсказания. Это обычно измеряют в FLOPS (операций с плавающей точкой в секунду) или MACs (операций умножения с накоплением).

Для приложений реального времени также важна предсказуемая задержка — время отклика между двумя событиями должно быть примерно постоянным. Наконец, для устройств с батарейным питанием критична энергоэффективность.

В таблице ниже — наиболее распространённые типы моделей в Edge AI:

Model TypeCharacteristicsTypical Use Cases
Decision treesLow memory consumption, fast inferenceSimple classification, anomaly detection
Small neural networksBalance between accuracy and efficiencySignal classification, pattern recognition
Optimized CNNsEfficient for spatial dataComputer vision, image classification
Anomaly detection modelsLow resource consumptionPredictive maintenance, sensor monitoring

Классификация, регрессия и детектирование аномалий

Алгоритмы машинного обучения различаются по типу решаемой задачи. Понимание этих различий помогает выбрать правильный подход для конкретного приложения [3].

Классификация

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

Выход модели — категория, например «норма» или «аномалия». Задача может быть бинарной (два класса) или многоклассовой (более двух вариантов). При инференсе модель выдаёт вероятность принадлежности к каждому классу вместе с уверенностью предсказания.

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

Качество классификатора оценивается следующими метриками:

  • Accuracy (Точность): доля правильных предсказаний от общего числа.
  • Precision (Точность по классу): доля корректно предсказанных положительных примеров.
  • Recall (Полнота / Чувствительность): доля реальных положительных примеров, которые модель правильно обнаружила.
  • F1-Score: гармоническое среднее между Precision и Recall. В отличие от простого среднего, штрафует за дисбаланс — высокий F1-Score достигается только при хороших значениях обеих метрик.

Регрессия

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

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

Примеры применения регрессии в Edge AI: прогнозирование температуры или влажности по показаниям датчиков, оценка оставшегося заряда батареи, предсказание энергопотребления, оценка расстояния или положения.

Метрики оценки регрессии отличаются от метрик классификации:

  • MSE (Mean Squared Error): среднее квадратов ошибок. Возведение в квадрат делает метрику чувствительной к выбросам — большие ошибки влияют непропорционально сильно.
  • MAE (Mean Absolute Error): среднее абсолютных значений ошибок. Более интуитивна, чем MSE, поскольку выражена в тех же единицах, что и предсказываемая переменная, и менее чувствительна к выбросам.
  • R² (Коэффициент детерминации): доля дисперсии, объяснённой моделью. Значение 1.0 — идеальное соответствие, 0.0 — модель не лучше простого среднего.

Детектирование аномалий

Детектирование аномалий — задача выявления паттернов, значительно отклоняющихся от нормального поведения. В отличие от традиционной классификации, такие модели обычно обучаются только на «нормальных» данных [4].

Модель учится, что считать нормой, а при инференсе фиксирует отклонения от этого паттерна. Главное преимущество: не нужны примеры всех возможных аномалий — это идеально, когда аномалии редки, непредсказуемы или заранее неизвестны.

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

Основные метрики оценки:

  • True Positive Rate (Чувствительность): доля реальных аномалий, которые модель правильно обнаружила.
  • False Positive Rate (Ложная тревога): доля нормальных случаев, ошибочно классифицированных как аномалии. Высокое значение порождает лишние предупреждения.
  • AUC-ROC: кривая ROC (Receiver Operating Characteristic) показывает компромисс между чувствительностью и долей ложных тревог при разных порогах принятия решений. AUC — площадь под этой кривой: 1.0 — идеальное разделение классов, 0.5 — случайная классификация.

Детектирование объектов

Детектирование объектов объединяет классификацию и локализацию: модель одновременно определяет, что изображено на картинке, и где именно. Это более сложная задача, требующая больше вычислительных ресурсов, чем простая классификация [5].

Модель не просто классифицирует всё изображение целиком — она находит несколько объектов, указывает их расположение с помощью ограничивающих рамок (bounding boxes) и присваивает каждому класс. Для этого нужны специализированные архитектуры — YOLO (You Only Look Once) или SSD (Single Shot Detector), способные обнаруживать несколько объектов за один проход через сеть.

В Edge AI детектирование объектов применяется для подсчёта людей в торговых помещениях, контроля наличия товаров на полках, выявления дефектов на производственных линиях и мониторинга дикой природы.

Обработка сигналов и компьютерное зрение

По типу обрабатываемых данных Edge AI-приложения делятся на две большие категории: обработка сигналов и компьютерное зрение. У каждой — свои особенности, техники и требования к ресурсам.

Обработка сигналов

Обработка сигналов работает с последовательными данными от датчиков: акселерометров, микрофонов, датчиков окружающей среды. Такие данные обычно одномерны или низкоразмерны, что делает их более удобными для ресурсоограниченных устройств [6].

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

Наиболее распространённые преобразования для извлечения признаков из сигналов:

  • FFT (Fast Fourier Transform): переводит сигнал из временной области в частотную, выявляя частотные составляющие, скрытые в исходном сигнале.
  • MFCC (Mel-Frequency Cepstral Coefficients): компактное представление аудиосигнала, имитирующее восприятие человеческого слуха. Широко используется в распознавании речи.
  • Спектрограммы: визуальное представление того, как частотное содержимое сигнала меняется во времени.

Компьютерное зрение

Компьютерное зрение обрабатывает изображения и видео для извлечения визуальной информации. Такие приложения, как правило, требуют больше ресурсов из-за высокой размерности данных: небольшое изображение 96×96 пикселей в оттенках серого содержит более 9 000 значений [7].

Предобработка включает изменение размера изображений, нормализацию значений пикселей и аугментацию данных. Наиболее распространённые архитектуры — свёрточные нейронные сети (CNNs), в особенности оптимизированные варианты: MobileNet и EfficientNet. Размер моделей варьируется от 50 КБ до более чем 500 КБ, типичная задержка — от десятков до сотен миллисекунд.

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

TinyML: машинное обучение на ресурсоограниченных устройствах

TinyML — это пересечение машинного обучения и ультраэффективных встраиваемых систем. Разберём фундаментальные принципы, позволяющие запускать ML-модели на микроконтроллерах с минимальными ресурсами.

Принципы и методы оптимизации

Чтобы запустить ML-модель на устройстве с килобайтами памяти и милливаттами потребляемой мощности, нужны специализированные техники оптимизации [8]. Они применяются как на этапе проектирования модели, так и после обучения.

Эффективное проектирование модели

Первый шаг в TinyML — выбор или проектирование изначально эффективных архитектур. Слой — это группа связанных информационных единиц. Неглубокие нейронные сети с 2–4 слоями достаточны для многих задач Edge AI и уменьшают как размер модели, так и время инференса.

Depthwise Separable Convolutions, применяемые в архитектурах типа MobileNet, значительно сокращают число операций в свёрточных слоях, разделяя пространственные свёртки и свёртки по каналам [9]. Дополнительно уменьшение числа каналов ограничивает количество фильтров в каждом слое, пропорционально снижая размер модели и число операций.

Прореживание (Pruning)

Pruning — удаление связей или нейронов, которые практически не влияют на выходные данные модели [10]. Есть два основных подхода: неструктурированное прореживание удаляет отдельные веса со значениями, близкими к нулю, а структурированное прореживание — целые нейроны, каналы или слои.

Эта техника позволяет уменьшить размер модели на 50–90% при минимальной потере точности — в зависимости от задачи и степени прореживания.

Дистилляция знаний (Knowledge Distillation)

Эта техника обучает маленькую модель («ученик») воспроизводить поведение большой, более точной модели («учитель») [11]. Процесс состоит из трёх шагов: сначала учитель обучается до полной мощности; затем ученик учится воспроизводить выходы учителя; наконец, ученик сохраняет ключевые знания в более компактной архитектуре.

Квантизация и сжатие модели

Квантизация снижает числовую точность весов и активаций модели. Стандартно модели машинного обучения используют 32-битные числа с плавающей точкой (FP32), но в Edge AI можно применять более компактные представления [12].

Квантизация — одна из важнейших техник уменьшения размера модели и ускорения инференса на периферийных устройствах. Её влияние настолько значительно, что практически все модели, развёртываемые на микроконтроллерах, используют ту или иную форму квантизации.

В таблице ниже — наиболее распространённые типы данных и их влияние на размер модели:

TypeBitsValue RangeSize Reduction
FP3232±3.4 × 10³⁸Base (1x)
FP1616±6.5 × 10⁴2x
INT88-128 to 1274x
INT44-8 to 78x

Виды квантизации

Существует несколько подходов к квантизации, каждый со своим балансом между простотой и точностью:

* Post-training quantization применяется после обучения модели. Наиболее простой способ реализации. Однако может приводить к большей потере точности, поскольку модель не обучалась с учётом ограничений квантованного представления.

* Quantization-Aware Training имитирует эффекты квантизации прямо во время обучения. Это позволяет модели адаптироваться к числовым ограничениям, что обеспечивает лучшую точность после квантизации.

* Dynamic quantization — гибридный подход: веса квантизируются статически, а активации — динамически во время инференса.

Влияние квантизации

Квантизация с FP32 до INT8 обычно даёт 4-кратное уменьшение размера модели, ускорение инференса в 2–4 раза, снижение энергопотребления, а потеря точности в большинстве случаев не превышает 1–2%. Именно поэтому квантизация INT8 стала де-факто стандартом для развёртывания на микроконтроллерах.

Фреймворки и инструменты

Экосистема инструментов TinyML заметно повзрослела, что существенно упрощает разработку Edge AI-приложений даже без глубокой экспертизы в оптимизации моделей.

TensorFlow™ Lite Micro

TensorFlow Lite Micro — версия TensorFlow, специально разработанная для микроконтроллеров [13]. Это эталонный фреймворк для TinyML: оптимизированный интерпретатор для устройств с килобайтами памяти, поддержка квантованных операций (INT8), независимость от операционной системы и совместимость с множеством архитектур микроконтроллеров.

Типичный рабочий процесс с TensorFlow Lite Micro:

  1. Обучить модель в TensorFlow (на компьютере или в облаке)
  2. Конвертировать модель в формат TensorFlow Lite (.tflite)
  3. Применить квантизацию при конвертации
  4. Интегрировать модель в приложение для микроконтроллера

Однако у фреймворка есть ограничения: поддерживаются не все операции TensorFlow, интеграция требует знания C/C++, а отладка может быть непростой.

Edge Impulse

Edge Impulse — комплексная платформа разработки для Edge AI, упрощающая весь жизненный цикл [14]. Именно она станет нашим основным инструментом в практической части курса.

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

Для тех, кто только начинает работу с Edge AI, Edge Impulse даёт ощутимые преимущества: не требует предварительного опыта в машинном обучении, обеспечивает нативную интеграцию с платами Arduino, предлагает библиотеку предобученных моделей и позволяет профилировать производительность ещё до развёртывания.

Рабочий процесс в Edge Impulse:

  1. Подключить устройство и собрать данные
  2. Спроектировать конвейер обработки (processing blocks)
  3. Выбрать и настроить модель обучения
  4. Обучить и оценить модель
  5. Оптимизировать под целевое железо
  6. Скачать библиотеку для Arduino

Сравнение инструментов

В таблице ниже — ключевые различия между двумя инструментами:

AspectTensorFlow Lite MicroEdge Impulse
Learning curveSteepGentle
FlexibilityHighMedium
Arduino integrationManualAutomatic
Data collectionExternalIntegrated
OptimizationManualAutomatic
CostFreeFree (basic tier)

Цикл разработки Edge AI

Успешное Edge AI-приложение требует структурированного процесса — от постановки задачи до развёртывания и поддержки системы.

Обзор полного цикла

Цикл разработки Edge AI состоит из шести основных фаз, выполняемых итеративно [15]:

  1. Постановка задачи
  2. Сбор данных
  3. Обработка данных
  4. Обучение модели
  5. Оценка и развёртывание
  6. Мониторинг и улучшение

Фаза 1: Постановка задачи

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

Фаза 2: Сбор данных

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

Фаза 3: Обработка данных

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

Фаза 4: Обучение модели

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

Фаза 5: Оценка и развёртывание

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

Фаза 6: Мониторинг и улучшение

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

Планирование Edge AI-проектов

Грамотное планирование — залог успеха Edge AI-проекта. Ниже — важные соображения по каждому аспекту.

Выбор железа

Выбор аппаратной платформы должен опираться на конкретные требования проекта:

RequirementHardware Consideration
Model sizeAvailable Flash memory
Inference speedProcessor frequency, accelerators
Sensor typeAvailable peripherals, interfaces
Battery lifePower consumption, low-power modes
ConnectivityWi-Fi, Bluetooth, LoRa, etc.
CostUnit price, production volume

Оценка ресурсов

Перед началом разработки важно оценить необходимые ресурсы. Базовый Edge AI-проект обычно требует 6–12 недель, распределённых примерно так: 1–2 недели на определение и планирование, 2–4 недели на сбор данных, 2–4 недели на разработку модели, 1–2 недели на интеграцию и тестирование.

По данным: рекомендуемые объёмы зависят от сложности задачи. Для простой классификации достаточно 100–500 примеров на класс. Сложная классификация требует 500–2 000 примеров на класс. Для детектирования аномалий рекомендуется более 1 000 примеров нормального поведения.

Типичные сложности и способы их решения

Разработка Edge AI сопряжена с уникальными трудностями [16]. Вот наиболее распространённые из них и пути решения.

Сложность 1: Недостаточно данных или дисбаланс классов

Если обучающих данных не хватает или одни классы представлены значительно лучше других, помогут: аугментация данных (повороты, масштабирование, добавление шума), балансировка классов через oversampling или undersampling, трансферное обучение с предобученными моделями, а также дополнительный сбор данных с акцентом на недопредставленные классы.

Сложность 2: Модель слишком большая

Если обученная модель не помещается в доступную память устройства, можно применить более агрессивную квантизацию (INT8 или INT4), уменьшить архитектуру (меньше слоёв, меньше нейронов), использовать pruning для удаления лишних весов или перейти на железо с большим объёмом памяти.

Сложность 3: Слишком высокая задержка

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

Сложность 4: Плохая производительность в продакшне

Если модель хорошо работает в лабораторных условиях, но даёт сбои в реальных, нужно собрать данные в более разнообразных и реалистичных условиях; включить в обучение вариации среды, шума и освещения; реализовать надёжную предобработку (например, фильтрацию, адаптивную нормализацию); и тщательно тестировать в условиях реального развёртывания.

Сложность 5: Высокое энергопотребление

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

Итоги

В этом модуле мы детально разобрали основы машинного обучения для периферийных устройств.

Алгоритмы для Edge AI должны быть эффективны по памяти, вычислениям и энергопотреблению. Основные типы задач — классификация, регрессия и детектирование аномалий — у каждой свои метрики оценки и сферы применения.

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

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

TensorFlow Lite Micro и Edge Impulse — два ключевых инструмента экосистемы. TensorFlow Lite Micro даёт максимальную гибкость, но требует глубоких технических знаний. Edge Impulse значительно упрощает процесс и станет нашим основным инструментом в практической части курса.

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

В следующем модуле мы подробно рассмотрим рабочий процесс создания Edge AI-приложений и подготовимся к практической реализации с платой Arduino UNO R4 WiFi.

Список литературы

[1] P. Warden and D. Situnayake, TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers. Sebastopol, CA, USA: O'Reilly Media, 2019.

[2] V. J. Reddi et al., "Widening access to applied machine learning with TinyML," Harvard Data Science Review, vol. 4, no. 1, 2022, doi: 10.1162/99608f92.a31e8c72.

[3] I. Goodfellow, Y. Bengio, and A. Courville, "Machine learning basics," in Deep Learning. Cambridge, MA, USA: MIT Press, 2016, ch. 5. [Online]. Available: https://www.deeplearningbook.org/contents/ml.html

[4] V. Chandola, A. Banerjee, and V. Kumar, "Anomaly detection: A survey," ACM Comput. Surv., vol. 41, no. 3, pp. 1–58, Jul. 2009, doi: 10.1145/1541880.1541882.

[5] R. Girshick, J. Donahue, T. Darrell, and J. Malik, "Rich feature hierarchies for accurate object detection and semantic segmentation," in Proc. IEEE Conf. Comput. Vis. Pattern Recognit. (CVPR), Columbus, OH, USA, 2014, pp. 580–587, doi: 10.1109/CVPR.2014.81.

[6] J. Lin, L. Zhu, W.-M. Chen, W.-C. Wang, and S. Han, "Tiny machine learning: Progress and futures," IEEE Circuits Syst. Mag., vol. 23, no. 3, pp. 8–34, 2023, doi: 10.1109/MCAS.2023.3302182.

[7] A. G. Howard et al., "MobileNets: Efficient convolutional neural networks for mobile vision applications," arXiv preprint arXiv:1704.04861, 2017.

[8] Y. Abadade, A. Temouden, H. Bamoumen, N. Benamar, Y. Chtouki, and A. S. Hafid, "A comprehensive survey on TinyML," IEEE Access, vol. 11, pp. 96892–96922, 2023, doi: 10.1109/ACCESS.2023.3294111.

[9] M. Sandler, A. Howard, M. Zhu, A. Zhmoginov, and L. Chen, "MobileNetV2: Inverted residuals and linear bottlenecks," in Proc. IEEE Conf. Comput. Vis. Pattern Recognit. (CVPR), Salt Lake City, UT, USA, 2018, pp. 4510–4520, doi: 10.1109/CVPR.2018.00474.

[10] S. Han, J. Pool, J. Tran, and W. J. Dally, "Learning both weights and connections for efficient neural networks," in Proc. Adv. Neural Inf. Process. Syst. (NeurIPS), Montreal, Canada, 2015, pp. 1135–1143.

[11] G. Hinton, O. Vinyals, and J. Dean, "Distilling the knowledge in a neural network," arXiv preprint arXiv:1503.02531, 2015.

[12] B. Jacob et al., "Quantization and training of neural networks for efficient integer-arithmetic-only inference," in Proc. IEEE Conf. Comput. Vis. Pattern Recognit. (CVPR), Salt Lake City, UT, USA, 2018, pp. 2704–2713, doi: 10.1109/CVPR.2018.00286.

[13] R. David et al., "TensorFlow Lite Micro: Embedded machine learning for TinyML systems," in Proc. Mach. Learn. Syst. (MLSys), 2021, pp. 800–811.

[14] Edge Impulse, "Edge Impulse Documentation," 2024. [Online]. Available: https://docs.edgeimpulse.com/

[15] A. Garcia, P. Serrano, D. Urda, J. J. Rodriguez, and C. Garcia-Osorio, "Embedded AI and TinyML: A practical analysis of workflows and libraries," in Distributed Computing and Artificial Intelligence (DCAI 2024), vol. 1259, Lecture Notes in Networks and Systems. Cham, Switzerland: Springer, 2025, pp. 1–10.

[16] R. Kallimani et al., "TinyML: Enabling of inference deep learning models on ultra-low-power IoT edge devices for AI applications," Micromachines, vol. 13, no. 6, p. 851, May 2022, doi: 10.3390/mi13060851.