Основы машинного обучения для периферийных устройств (2/4)
Этот модуль охватывает наиболее подходящие алгоритмы, методы оптимизации и полный жизненный цикл приложений Edge AI.
Автор: José Bagur
Последняя редакция: 16.03.2026
В предыдущем модуле мы изучили, что такое Edge AI и почему это направление актуально для встраиваемых приложений и периферийных устройств. В этом модуле мы углубимся в основы машинного обучения для устройств с ограниченными ресурсами, рассмотрим наиболее подходящие алгоритмы, методы оптимизации и полный жизненный цикл приложений Edge AI.
Типы алгоритмов для Edge AI
Не все алгоритмы машинного обучения подходят для запуска на периферийных устройствах. Здесь мы рассмотрим характеристики, делающие Edge AI эффективным в условиях ограниченных ресурсов, а также основные типы задач, которые можно решать с помощью Edge AI.
Эффективные алгоритмы для устройств с ограниченными ресурсами
Периферийные устройства, такие как микроконтроллеры, имеют значительные ограничения по памяти, вычислительной мощности и энергопотреблению. Поэтому алгоритмы Edge AI должны быть высокоэффективными [1].
Первый критерий — низкое потребление памяти. Модели должны быть достаточно небольшими, чтобы помещаться во Flash-память микроконтроллера (для хранения) и в SRAM (для выполнения инференса). Типичная модель TinyML занимает от 10 КБ до 250 КБ в зависимости от аппаратного обеспечения [2].
Второй критерий — низкая вычислительная сложность, означающая минимизацию количества математических операций, необходимых для генерации прогноза. Обычно это измеряется в FLOPS (операциях с плавающей точкой в секунду) или MAC (операциях умножения с накоплением).
Кроме того, приложения реального времени требуют предсказуемой задержки для своевременного отклика. Задержка — это интервал между двумя действиями; когда она предсказуема, это означает, что её значение более или менее постоянно во времени. Наконец, для устройств с батарейным питанием критически важна энергоэффективность.
В следующей таблице представлены наиболее распространённые типы моделей в Edge AI:
Тип модели |
Характеристики |
Типичные сценарии использования |
|---|---|---|
Деревья решений |
Низкое потребление памяти, быстрый инференс |
Простая классификация, обнаружение аномалий |
Малые нейронные сети |
Баланс между точностью и эффективностью |
Классификация сигналов, распознавание образов |
Оптимизированные CNN |
Эффективны для пространственных данных |
Компьютерное зрение, классификация изображений |
Модели обнаружения аномалий |
Низкое потребление ресурсов |
Прогнозное обслуживание, мониторинг датчиков |
Классификация vs. Регрессия vs. Детекция
Алгоритмы машинного обучения можно классифицировать по типу задачи, которую они решают. Понимание этих различий принципиально для выбора подходящего подхода в каждом приложении [3].
Классификация
Классификация — это задача обучения с учителем, в которой модель присваивает категориальную метку заданному входу. Во время обучения модель учится различать предопределённые классы.
Выходом модели является категория, например «нормальный» или «аномальный». Задача может быть бинарной (два класса) или многоклассовой (более двух вариантов). Во время инференса модель присваивает каждому классу вероятность, включая прогноз и его доверие.
В Edge AI классификация используется для распознавания голосовых команд, классификации жестов, обнаруженных акселерометрами, идентификации звуков окружающей среды и обнаружения активности человека, такой как ходьба или бег.
Производительность классификатора оценивается по следующим метрикам:
Accuracy (точность): доля правильных прогнозов относительно общего числа прогнозов.
Precision (точность): доля корректно предсказанных положительных результатов.
Recall (полнота, чувствительность): доля фактических положительных результатов, которые были корректно обнаружены.
F1-Score: гармоническое среднее между precision и recall. В отличие от простого среднего, оно штрафует несбалансированные значения, поэтому высокий F1-Score достигается только тогда, когда обе метрики разумно хороши.
Регрессия
Регрессия — это задача обучения с учителем, в которой модель прогнозирует непрерывное числовое значение, изучая математическую связь между входными переменными и выходной переменной.
В отличие от классификации, выход — это число, которое может принимать любое значение в пределах диапазона. Модель учится аппроксимировать функцию, которая отображает входы в выходы, что полезно для количественных прогнозов.
Применения регрессии в Edge AI включают прогнозирование будущей температуры или влажности по показаниям датчиков, оценку оставшегося уровня заряда батареи, прогнозирование энергопотребления и оценку расстояния или положения.
Метрики оценки регрессии отличаются от тех, что используются в классификации:
Mean Squared Error (MSE): среднее квадратов ошибок. Из-за возведения в квадрат значительные ошибки оказывают непропорциональное влияние, что делает эту метрику чувствительной к выбросам.
Mean Absolute Error (MAE): среднее абсолютных значений ошибок. Эта метрика более интуитивна, чем MSE, поскольку выражена в тех же единицах, что и прогнозируемая переменная, и менее чувствительна к выбросам.
Коэффициент детерминации (R²): доля дисперсии, объяснённой моделью. Значение 1.0 означает идеальное соответствие, а 0.0 — что модель объясняет данные не лучше, чем простое использование среднего значения.
Обнаружение аномалий
Обнаружение аномалий — это задача идентификации паттернов, значительно отклоняющихся от нормального поведения. В отличие от традиционной классификации, этот подход обычно обучается только на «нормальных» данных [4].
Модель учится тому, что представляет собой нормальное поведение. Во время инференса она выявляет отклонения от этого паттерна. Эта особенность ценна, поскольку не требует примеров каждой аномалии, что идеально, когда аномалии редки, непредсказуемы или неизвестны.
В промышленных средах обнаружение аномалий позволяет идентифицировать необычные вибрации в моторах, аномальные звуки в машинах и нерегулярные паттерны электропотребления. Также применяется в безопасности для обнаружения вторжений или подозрительного поведения.
Оценка этих моделей сосредоточена на следующих метриках:
True Positive Rate (чувствительность): доля фактических аномалий, которые модель правильно обнаруживает.
False Positive Rate: доля типичных случаев, которые модель ошибочно классифицирует как аномалии. Высокое значение генерирует ненужные оповещения.
Площадь под ROC-кривой (AUC-ROC): ROC-кривая (Receiver Operating Characteristic) — это график, показывающий компромисс между чувствительностью и долей ложноположительных при различных порогах принятия решения. AUC измеряет площадь под этой кривой; значение 1.0 указывает на идеальное разделение между классами, а 0.5 — на случайную классификацию.
Детекция объектов
Детекция объектов сочетает классификацию и локализацию. Она идентифицирует объекты на изображении и их местоположение. Это более сложная задача, требующая больше вычислительных ресурсов, чем простая классификация [5].
Модель не только классифицирует всё изображение целиком. Она также идентифицирует несколько объектов, показывает их местоположение с помощью bounding box (ограничивающих рамок) и присваивает каждому объекту класс. Это требует более сложных архитектур сетей, таких как YOLO (You Only Look Once) или SSD (Single Shot Detector), специально разработанных для обнаружения нескольких объектов за один проход по изображению.
В Edge AI детекция объектов применяется для подсчёта людей в коммерческих помещениях, обнаружения товаров на полках, выявления дефектов на производственных линиях и мониторинга диких животных.
Обработка сигналов vs. Компьютерное зрение
Приложения Edge AI можно разделить на две большие категории по типу обрабатываемых данных: обработка сигналов и компьютерное зрение. Каждая категория обладает уникальными характеристиками, методами и требованиями к ресурсам.
Обработка сигналов
Обработка сигналов сосредоточена на последовательных данных, захватываемых датчиками, такими как акселерометры, микрофоны или датчики окружающей среды. Эти данные обычно являются одномерными или низкоразмерными, что делает их более удобными для устройств с ограниченными ресурсами [6].
Входные данные состоят из временных рядов, аудиосигналов или показаний датчиков. Перед подачей этих данных на модель применяются методы предобработки, такие как фильтрация, нормализация и извлечение признаков. Полученные модели обычно занимают менее 50 КБ и обеспечивают задержки порядка миллисекунд.
Наиболее распространённые преобразования для конвертации сигналов в полезные признаки для модели:
FFT (быстрое преобразование Фурье): преобразует сигналы из временной области в частотную, выявляя частотные компоненты, скрытые в исходном сигнале.
MFCC (мел-частотные кепстральные коэффициенты): обеспечивают компактное представление аудиосигналов, имитирующее слуховое восприятие человека, и широко используются в распознавании речи.
Спектрограммы: визуальное представление того, как частотное содержимое сигнала меняется во времени.
Компьютерное зрение
Компьютерное зрение обрабатывает изображения и видео для извлечения визуальной информации. Эти приложения обычно требуют больше вычислительных ресурсов из-за высокой размерности данных: небольшое изображение 96×96 пикселей в градациях серого содержит более 9 000 значений [7].
Предобработка включает изменение размера изображений, нормализацию значений пикселей и методы аугментации данных. Наиболее широко используемые архитектуры — свёрточные нейронные сети (CNN), особенно оптимизированные версии, такие как MobileNet и EfficientNet. Размеры моделей могут варьироваться от 50 КБ до более чем 500 КБ при типичных задержках от десятков до сотен миллисекунд.
При реализации компьютерного зрения на периферийных устройствах следует учитывать несколько факторов. Снижение разрешения изображения значительно уменьшает вычислительные требования. Изображения в градациях серого требуют в 1/3 меньше памяти, чем цветные. Кроме того, такие архитектуры, как MobileNet и EfficientNet, специально разработаны для мобильных устройств и встраиваемых систем, обеспечивая хороший баланс между точностью и эффективностью.
TinyML: ML на устройствах с ограниченными ресурсами
TinyML представляет собой пересечение машинного обучения и сверхэффективных встраиваемых систем. В этом разделе мы рассмотрим фундаментальные принципы, позволяющие запускать модели ML на микроконтроллерах с минимальными ресурсами.
Принципы и методы оптимизации
Чтобы запускать модели машинного обучения на устройствах с килобайтами памяти и милливаттным энергопотреблением, требуются специализированные методы оптимизации [8]. Эти методы применяются как при проектировании модели, так и после её обучения.
Эффективное проектирование моделей
Первый шаг в TinyML — спроектировать или выбрать изначально эффективные архитектуры моделей. Слой — это группа связанных единиц информации. Неглубоких нейронных сетей с 2–4 слоями достаточно для многих задач Edge AI, что снижает как размер модели, так и время инференса.
Depthwise Separable Convolutions (раздельные по каналам свёртки), используемые в архитектурах, таких как MobileNet, значительно сокращают количество операций в свёрточных слоях, разделяя пространственные свёртки и свёртки по каналам [9]. В дополнение, сокращение каналов (channel reduction) ограничивает количество фильтров на слой, тем самым пропорционально уменьшая размер модели и требуемые операции.
Прунинг (Pruning)
Прунинг заключается в удалении соединений или нейронов, которые не вносят значительного вклада в выход модели [10]. Существуют два основных подхода: неструктурированный прунинг удаляет отдельные веса со значениями, близкими к нулю, а структурированный прунинг удаляет целые нейроны, каналы или слои.
Этот метод может уменьшить размер модели на 50–90 % с минимальной потерей точности, в зависимости от задачи и уровня прунинга.
Дистилляция знаний (Knowledge Distillation)
Этот метод обучает малую модель (студента) имитировать поведение более крупной и точной модели (учителя) [11]. Процесс состоит из трёх шагов: сначала модель-учитель обучается до полной мощности; затем модель-студент учится воспроизводить выходы учителя; наконец, студент захватывает существенные знания в более компактной архитектуре.
Квантование и сжатие моделей
Квантование снижает числовую точность весов и активаций модели. Модели машинного обучения обычно используют 32-битные числа с плавающей точкой (FP32), но в Edge AI мы можем использовать более компактные представления [12].
Квантование — один из важнейших методов уменьшения размера модели и ускорения инференса на периферийных устройствах. Его влияние настолько значительно, что практически все модели, развёрнутые на микроконтроллерах, используют ту или иную форму квантования.
В следующей таблице показаны наиболее распространённые типы данных и их влияние на размер модели:
Тип |
Биты |
Диапазон значений |
Уменьшение размера |
|---|---|---|---|
|
32 |
±3.4 × 10³⁸ |
Базовый (1x) |
|
16 |
±6.5 × 10⁴ |
2x |
|
8 |
от -128 до 127 |
4x |
|
4 |
от -8 до 7 |
8x |
Типы квантования
Существует несколько подходов к применению квантования, каждый со своими компромиссами между простотой и точностью:
Квантование после обучения (Post-training quantization) применяется после того, как модель уже обучена. Это самый простой в реализации метод. Однако он может приводить к большей потере точности, поскольку модель не была обучена с учётом ограничений квантованного представления.
Quantization-Aware Training имитирует эффекты квантования во время обучения. Это позволяет модели адаптироваться к числовым ограничениям, обеспечивая лучшую точность после квантования.
Динамическое квантование предлагает гибридный подход, при котором веса квантуются статически, а активации — динамически во время инференса.
Влияние квантования
Квантование из FP32 в INT8 обычно приводит к 4-кратному уменьшению размера модели, ускорению инференса в 2–4 раза, снижению энергопотребления и потере точности в 1–2 % или меньше в большинстве случаев. Эти преимущества делают квантование INT8 де-факто стандартом для развёртывания на микроконтроллерах.
Фреймворки и инструменты
Экосистема инструментов TinyML значительно созрела, упрощая разработку приложений Edge AI без необходимости глубокой экспертизы в оптимизации моделей.
TensorFlow™ Lite Micro
TensorFlow Lite Micro — это версия TensorFlow, разработанная специально для микроконтроллеров [13]. Это эталонный фреймворк для TinyML, предоставляющий интерпретатор, оптимизированный для устройств с килобайтами памяти, поддержку квантованных операций (INT8), независимость от операционной системы и совместимость с несколькими архитектурами микроконтроллеров.
Типичный рабочий процесс с TensorFlow Lite Micro состоит из следующих шагов:
Обучить модель в TensorFlow (на компьютере или в облаке)
Преобразовать модель в формат TensorFlow Lite (.tflite)
Применить квантование во время преобразования
Интегрировать модель в приложение микроконтроллера
Однако этот фреймворк имеет ряд ограничений. Поддерживаются не все операции TensorFlow; интеграция требует знаний C/C++, а отладка может быть сложной.
Edge Impulse
Edge Impulse — это комплексная платформа разработки для Edge AI, упрощающая весь жизненный цикл [14]. Эта платформа будет нашим основным инструментом в практической части курса.
Платформа предлагает интуитивно понятный веб-интерфейс для всего рабочего процесса, сбор данных непосредственно с устройств, автоматическую предобработку сигналов и изображений, обучение моделей, оптимизированных для периферийных устройств, автоматическое квантование и оптимизацию, а также развёртывание в один клик для Arduino и других микроконтроллеров.
Для разработчиков, начинающих работу с Edge AI, Edge Impulse предлагает значительные преимущества: не требует предварительного опыта в машинном обучении, обеспечивает нативную интеграцию с платами Arduino, предоставляет библиотеку предобученных моделей и позволяет профилировать производительность перед развёртыванием.
Рабочий процесс в Edge Impulse следует таким шагам:
Подключить устройство и собрать данные
Спроектировать конвейер обработки (processing blocks)
Выбрать и сконфигурировать модель обучения
Обучить и оценить модель
Оптимизировать для целевого аппаратного обеспечения
Скачать библиотеку для Arduino
Сравнение инструментов
В следующей таблице приведены основные различия между двумя инструментами:
Аспект |
TensorFlow Lite Micro |
Edge Impulse |
|---|---|---|
Кривая обучения |
Крутая |
Пологая |
Гибкость |
Высокая |
Средняя |
Интеграция с Arduino |
Ручная |
Автоматическая |
Сбор данных |
Внешний |
Встроенный |
Оптимизация |
Ручная |
Автоматическая |
Стоимость |
Бесплатно |
Бесплатно (базовый тариф) |
Цикл разработки Edge AI
Разработка успешного приложения Edge AI требует следования структурированному процессу, охватывающему всё — от определения задачи до развёртывания и обслуживания системы.
Обзор полного цикла
Цикл разработки Edge AI состоит из шести основных фаз, выполняемых итеративно [15]:
Определение задачи
Сбор данных
Обработка данных
Обучение модели
Оценка и развёртывание
Мониторинг и улучшение
Фаза 1: Определение задачи
Прежде чем приступать к какой-либо технической разработке, необходимо чётко определить решаемую задачу. На этой фазе нужно ответить на ключевые вопросы: какое решение или действие должна принимать система? Какова минимально допустимая точность? Каковы требования к задержке? Какие имеются ограничения по аппаратному обеспечению? Как будет измеряться успех проекта?
Фаза 2: Сбор данных
Данные — топливо машинного обучения. Эта фаза включает определение данных, необходимых для обучения модели, проектирование процесса захвата данных, сбор репрезентативных данных по всем классам или сценариям, корректную разметку данных, а также проверку их качества и разнообразия.
Фаза 3: Обработка данных
Сырые данные редко готовы к обучению. Обработка включает очистку данных (удаление шумов и выбросов), нормализацию и стандартизацию, извлечение признаков, аугментацию данных для улучшения обобщения, а также разбиение на обучающую, валидационную и тестовую выборки.
Фаза 4: Обучение модели
Когда данные подготовлены, выполняется обучение модели. Эта фаза охватывает выбор архитектуры, настройку гиперпараметров, итеративное обучение с мониторингом метрик, валидацию во избежание переобучения и тонкую настройку по результатам.
Фаза 5: Оценка и развёртывание
Перед развёртыванием модель необходимо оценить и оптимизировать. Это включает оценку на тестовой выборке (невидимых данных), квантование и оптимизацию под целевое аппаратное обеспечение, проверку соответствия модели ограничениям памяти и задержки, интеграцию с кодом приложения и тестирование на реальном устройстве.
Фаза 6: Мониторинг и улучшение
После развёртывания система требует постоянного мониторинга. Активности включают сбор метрик производительности в продакшене, выявление случаев, в которых модель ошибается, периодическое переобучение на новых данных и обновление модели на устройствах.
Планирование проектов Edge AI
Эффективное планирование является ключом к успеху проектов Edge AI. Ниже приведены важные соображения для каждого аспекта проекта.
Выбор аппаратного обеспечения
Выбор аппаратного обеспечения должен основываться на конкретных требованиях проекта:
Требование |
Аппаратное соображение |
|---|---|
Размер модели |
Доступная Flash-память |
Скорость инференса |
Частота процессора, ускорители |
Тип датчика |
Доступная периферия, интерфейсы |
Время автономной работы |
Энергопотребление, режимы низкого энергопотребления |
Подключение |
Wi-Fi, Bluetooth, LoRa и т. д. |
Стоимость |
Цена за единицу, объём производства |
Оценка ресурсов
Перед началом разработки необходимо оценить требуемые ресурсы. Базовый проект 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, transfer learning с предобученными моделями или дополнительный сбор, ориентированный на меньшинственные классы.
Проблема 2: Слишком большая модель
Если обученная модель превышает доступную память устройства, решения включают применение более агрессивного квантования (INT8 или INT4), уменьшение размера архитектуры (меньше слоёв, меньше нейронов), прунинг для удаления лишних весов или использование аппаратного обеспечения с большим объёмом памяти.
Проблема 3: Чрезмерная задержка
Когда время инференса слишком велико для приложения, можно уменьшить сложность модели, оптимизировать предобработку данных, использовать квантованные операции (быстрее, чем с плавающей точкой) или снизить разрешение или частоту дискретизации входных данных.
Проблема 4: Низкая производительность в продакшене
Если модель хорошо работает в лаборатории, но даёт сбои в реальных условиях, необходимо собирать данные в более разнообразных, реалистичных условиях, включая вариации окружающей среды, шума и освещения во время обучения; реализовать надёжную предобработку (например, фильтрацию, адаптивную нормализацию); и тщательно тестировать в среде развёртывания.
Проблема 5: Высокое энергопотребление
Когда устройство слишком быстро разряжает батарею, стратегии включают активацию режимов низкого энергопотребления при отсутствии активности, снижение частоты инференса при возможности, использование детекции активности перед запуском полной модели и оптимизацию кода для минимизации циклов CPU.
Резюме
В этом модуле мы углубились в основы машинного обучения для периферийных устройств.
Алгоритмы для 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.