Рабочий процесс создания приложений Edge AI (3/4)
В предыдущем модуле мы познакомились с циклом разработки Edge AI и его шестью фазами. Теперь мы углублённо рассмотрим четыре центральные фазы рабочего процесса: сбор данных, предобработку, обучение модели и оценку результатов. Цель — понять, как каждая фаза выполняется на практике и какие решения являются ключевыми для достижения хороших результатов.
4 фазы рабочего процесса
Фаза 1: Сбор данных
Данные — это важнейший компонент любого проекта машинного обучения. Модель может быть настолько хороша, насколько хороши данные, на которых она обучалась. В этом разделе мы рассмотрим типы данных, используемых в Edge AI, стратегии их правильного сбора, а также вопросы количества и репрезентативности.
Типы данных для различных приложений
Приложения Edge AI работают с данными от датчиков и камер. Каждый тип данных имеет собственные характеристики, которые влияют на способ их сбора, хранения и обработки.
Данные датчиков движения (IMU)
Датчики движения, такие как акселерометры и гироскопы, измеряют ускорение и вращение объекта. Трёхосевой акселерометр за одно измерение производит три числовых значения (по одному для каждой оси: X, Y и Z), формируя временно́й ряд данных [1].
Эти данные используются в таких приложениях, как распознавание жестов (например, различение круговых и линейных движений), обнаружение активности человека (ходьба, бег, сидение) и мониторинг вибрации промышленного оборудования.
Аудиоданные
Микрофоны захватывают аудиосигналы и представляют изменения звукового давления во времени. Для приложений Edge AI, таких как распознавание голосовых команд («вкл», «выкл») или классификация звуков окружающей среды (сигналы тревоги, звук разбитого стекла), используются короткие записи, как правило продолжительностью от 1 до 3 секунд [2].
Аудиоданные представляют особые трудности: фоновый шум варьируется в зависимости от окружающей среды, а расстояние между источником звука и микрофоном влияет на качество сигнала.
Данные изображений
Изображения для Edge AI обрабатываются при уменьшенном разрешении (например, 96×96 пикселей), чтобы соответствовать ограничениям памяти микроконтроллеров. Они могут быть в градациях серого или цветными, что напрямую влияет на объём данных, которые модель должна обработать [3].
Приложения включают классификацию объектов (например, различение видов фруктов), обнаружение людей и визуальный контроль качества на производственных линиях.
Данные окружающей среды
Датчики окружающей среды измеряют такие переменные, как температура, влажность, атмосферное давление и качество воздуха. В отличие от аудио- или графических данных, эти значения изменяются медленно и собираются с более длинными интервалами (например, раз в секунду или в минуту) [4].
Они используются в приложениях экологического мониторинга и прогнозирования, например для обнаружения аномальных условий в теплице или прогнозирования потребления энергии зданием.
Стратегии сбора качественных данных
Качество данных во многом определяет производительность финальной модели. Плохой сбор может дать модели, которые хорошо работают в лаборатории, но отказывают в реальных условиях [5].
Определение протокола сбора
Перед началом сбора необходимо разработать чёткий план, определяющий экспериментальные условия. Этот протокол должен указывать, какой датчик будет использоваться и с какой частотой, как долго длится каждый образец, при каких условиях захватываются данные, сколько повторений необходимо и как будет помечен каждый образец.
Например, в проекте распознавания жестов с акселерометром протокол может предусматривать, что каждый участник повторяет каждый жест 50 раз, максимальная продолжительность жеста — две секунды, а датчик должен быть расположен на правом запястье.
Разнообразие в данных
Распространённая ошибка — сбор данных в чрезмерно контролируемых условиях. Чтобы модель работала в реальном мире, данные должны отражать естественную изменчивость задачи.
В случае аудиоданных это означает запись в различных помещениях (офисы, улица, шумные среды), с разными дикторами и на различных расстояниях от микрофона. Для данных изображений разнообразие включает вариации освещения (естественное, искусственное и тени), углы съёмки и фоны.
Правильная разметка
Разметка присваивает каждому образцу правильную категорию (например, «круговой жест» или «линейный жест»). Неправильная разметка вводит модель в заблуждение во время обучения и может значительно ухудшить её производительность.
К лучшим практикам относятся: определение однозначных категорий, документирование критериев разметки, проверка меток перекрёстным ревью там, где это возможно, и регистрация сомнительных случаев для последующего пересмотра.
Сбор данных с помощью Edge Impulse
Edge Impulse упрощает сбор данных, позволяя захватывать образцы непосредственно с платы Arduino. Процесс состоит из подключения платы к компьютеру, выбора используемого датчика (акселерометр, микрофон, камера и т. д.), определения продолжительности каждого образца, захвата данных и назначения меток в режиме реального времени [6].
Эта прямая интеграция с оборудованием гарантирует, что данные захватываются в тех же условиях, в которых модель будет работать во время инференса.
Соображения о количестве и репрезентативности
Определение необходимого объёма данных зависит от сложности задачи и количества категорий, которые модель должна различать.
Минимальный объём данных
В качестве общего ориентира рекомендуемые количества по типам задач следующие:
Тип задачи |
Минимум образцов на класс |
Рекомендуемо образцов на класс |
|---|---|---|
Простая классификация (2–3 класса) |
50 |
100–500 |
Сложная классификация (4+ класса) |
100 |
500–2000 |
Обнаружение аномалий |
500 (только нормальный класс) |
1000+ (только нормальный класс) |
Распознавание голоса |
100 на команду |
500+ на команду |
Классификация изображений |
100 |
500–1000 |
Важно
Приведённые цифры являются ориентировочными. В целом, чем более похожи классы друг на друга (например, различение двух похожих жестов), тем больше данных модели необходимо для изучения различий между ними.
Баланс между классами
Несбалансированный набор данных, в котором одни классы имеют значительно больше образцов, чем другие, может склонить модель к классам с большим числом примеров. Например, если есть 500 образцов «ходьбы», но только 50 образцов «бега», модель будет склонна классифицировать всё как «ходьбу», поскольку в большинстве случаев это будет правильным ответом [7].
Рекомендуется поддерживать одинаковое количество образцов в каждом классе. Когда дисбаланс неизбежен (например, при обнаружении аномалий, когда аномальные события редки), можно использовать компенсационные методы, которые будут рассмотрены в разделе о предобработке.
Разделение набора данных
Собранные данные необходимо разделить на три набора с различными целями:
Обучающий набор (60–80%): набор данных, на котором модель обучается. Модель корректирует свои внутренние параметры для распознавания паттернов, присутствующих в этих данных.
Валидационный набор (10–20%): используется во время обучения для проверки того, что модель не просто запоминает данные.
Тестовый набор (10–20%): используется только один раз в конце процесса для получения реальной оценки производительности модели на полностью новых данных.
Предупреждение
Тестовые данные никогда не должны использоваться во время обучения. Если модель уже «видела» эти данные, оценка не будет отражать её реальную производительность на новых данных.
Фаза 2: Предобработка данных
Данные, захваченные датчиками, редко готовы к подаче в модель машинного обучения. Предобработка преобразует необработанные данные в форму, пригодную для обучения, улучшая качество и эффективность процесса.
Очистка и нормализация
Очистка данных
Очистка выявляет и исправляет дефектные данные, которые могут негативно повлиять на обучение. Наиболее распространённые проблемы включают ошибочные показания, вызванные неисправностью датчика, отсутствующие данные из-за потери соединения, шум, наложенный на полезный сигнал, и неправильно размеченные образцы.
Методы очистки зависят от типа данных. Для сигналов датчиков фильтры могут сглаживать сигнал, устраняя резкие вариации, не соответствующие измеряемому явлению. Для изображений очистка может включать удаление размытых, засвеченных или иначе неинформативных фотографий.
Нормализация
Нормализация корректирует масштаб данных для обеспечения единообразного диапазона. Это важно, поскольку модели машинного обучения работают лучше, когда входные значения находятся в ограниченном и сопоставимом диапазоне [8].
Например, акселерометр может производить значения от −4 до +4, а датчик температуры — от 0 до 100. Без нормализации модель может придать большее значение температуре просто потому, что её значения больше, а не потому, что она более важна.
Наиболее распространённый метод в Edge AI — нормализация по минимуму и максимуму (min-max), которая масштабирует все значения в диапазон [0, 1]. Она вычисляется путём деления каждого значения минус минимум на полный диапазон датчика. Таким образом, наименьшее значение становится 0, а наибольшее — 1, при этом сохраняется пропорция между всеми промежуточными значениями.
Извлечение признаков
Извлечение признаков преобразует необработанные данные в более компактные представления, фиксирующие релевантную для модели информацию. Вместо прямой подачи тысяч показаний датчиков вычисляются сводные значения, описывающие важные паттерны в сигнале [9].
Признаки временно́го домена
Эти признаки вычисляются непосредственно на исходном сигнале и описывают его общие свойства. Например, среднее значение указывает центральную величину сигнала, стандартное отклонение измеряет, насколько значения отклоняются от среднего, а максимальные и минимальные значения ограничивают диапазон сигнала.
Общая иллюстрация стандартного отклонения
Чтобы продемонстрировать их полезность: при различении «ходьбы» и «бега» с помощью акселерометра стандартное отклонение является очень информативным признаком. При беге вариации ускорения значительно больше, чем при ходьбе, поэтому стандартное отклонение будет существенно выше.
Признаки частотного домена
Некоторые сигналы содержат повторяющиеся паттерны, которые не очевидны при непосредственном наблюдении данных, но выявляются при анализе их частотных составляющих. Быстрое преобразование Фурье (БПФ) разлагает сигнал на составляющие частоты, подобно тому, как призма разлагает белый свет на отдельные цвета.
Эти признаки особенно полезны в аудиоприложениях, где различные звуки имеют характерные частоты, и при мониторинге вибрации, где изменения доминирующих частот двигателя могут указывать на механический износ.
Блоки обработки в Edge Impulse
Edge Impulse организует извлечение признаков в настраиваемые блоки обработки, упрощая эту задачу. Наиболее релевантные блоки для приложений Arduino следующие:
Spectral Analysis (Спектральный анализ): вычисляет частотные признаки из сигналов датчиков, таких как акселерометры и гироскопы.
MFCC: извлекает аудиопризнаки, оптимизированные для распознавания голоса, имитируя то, как человеческое ухо воспринимает звук.
Spectrogram (Спектрограмма): генерирует представление, показывающее, как частоты аудиосигнала меняются со временем.
Image (Изображение): изменяет размер и нормализует изображения для визуальной классификации, позволяя настраивать разрешение и цветовой режим.
Каждый блок преобразует необработанные данные в набор числовых значений, которые модель использует для обучения. Выбор подходящего блока зависит от типа датчика и приложения.
Методы аугментации данных
Аугментация данных генерирует новые образцы из существующих посредством контролируемых преобразований. Она особенно ценна, когда объём собранных данных ограничен, поскольку позволяет расширить набор данных без необходимости захвата дополнительных образцов [10].
Аугментация данных для сигналов датчиков
Аудиосигналы могут подвергаться специфическим преобразованиям, таким как добавление фонового шума, записанного в среде развёртывания, незначительная корректировка скорости записи и смешивание сигнала с другими фоновыми звуками.
Для распознавания голосовых команд добавление фонового шума особенно важно, поскольку оно имитирует реальные условия, в которых будет работать модель.
Аугментация данных для аудио
Аудиосигналы могут подвергаться специфическим преобразованиям, таким как добавление фонового шума, записанного в среде развёртывания, незначительная корректировка скорости записи и смешивание сигнала с другими фоновыми звуками.
Для распознавания голосовых команд добавление фонового шума особенно важно, поскольку оно имитирует реальные условия, в которых будет работать модель.
Аугментация данных для изображений
Изображения предоставляют широкий спектр возможных преобразований. Наиболее часто используемые в Edge AI включают незначительное вращение (как правило, ±15°), корректировку яркости и контраста, случайные обрезки и горизонтальное отражение (когда это имеет смысл для приложения).
Преобразования должны быть реалистичными. Например, не имело бы смысла поворачивать классификатор продуктов на полке на 180°, поскольку продукты всегда ориентированы вверх.
Ограничения аугментации данных
Примечание
Аугментация данных не заменяет реальный сбор данных. Сгенерированные образцы могут улучшить способность модели к обобщению, но не могут ввести подлинно новую информацию. Если исходный набор данных не содержит примеров для конкретного условия (например, работы под дождём), никакое преобразование не может компенсировать этот недостаток.
Фаза 3: Обучение модели
Когда данные собраны, очищены и предобработаны, следующий шаг — обучение модели машинного обучения. На этой фазе выбирается тип модели, настраиваются параметры её обучения и проверяется, что она работает в рамках ограничений граничного устройства.
Выбор подходящих архитектур
Выбор типа модели зависит прежде всего от типа данных и сложности задачи [11].
Модели для данных датчиков и аудио
Для данных датчиков движения и аудио двумя наиболее распространёнными вариантами являются простые нейронные сети и свёрточные сети.
Простые нейронные сети (полносвязные) — наиболее базовый вариант. Они хорошо работают для простых задач, где данные уже сведены к набору признаков (например, классификация активности человека по среднему значению и стандартному отклонению ускорения). Их главное преимущество — малый размер и высокая скорость работы.
Свёрточные сети (CNN) более мощные. Они могут обучаться паттернам непосредственно из данных без ручного извлечения признаков. Они предпочтительнее, когда сигнал имеет сложные временны́е паттерны, однако требуют больше памяти и вычислительных ресурсов.
Модели для изображений
Для классификации изображений на граничных устройствах наиболее часто используемые архитектуры — оптимизированные версии, специально разработанные для работы с ограниченными ресурсами [12]:
MobileNet: наиболее популярная архитектура для компьютерного зрения на встроенных устройствах. Использует специальные методы для резкого сокращения числа операций без значительной потери точности. Существуют две основные версии (V1 и V2), причём V2 более эффективна.
Пользовательская CNN: для простых задач (например, различения только двух категорий) небольшая свёрточная сеть, разработанная специально под задачу, может быть эффективнее MobileNet. Как правило, она состоит из 2–3 слоёв.
Как выбрать?
Выбор модели можно направлять следующими критериями:
Тип данных |
Простая задача |
Сложная задача |
|---|---|---|
Датчики (акселерометр, гироскоп) |
Простая нейронная сеть |
Свёрточная сеть (1D-CNN) |
Аудио |
Простая нейронная сеть с MFCC |
Свёрточная сеть со спектрограммой |
Изображения |
Небольшая пользовательская CNN |
MobileNet |
Совет
На практике Edge Impulse автоматически предлагает подходящую архитектуру на основе типа данных и выбранного оборудования, что упрощает это решение для тех, кто только начинает работу с Edge AI.
Настройка параметров обучения
Параметры обучения управляют тем, как модель обучается. Их правильная настройка важна для получения хороших результатов [14].
Скорость обучения
Скорость обучения определяет, насколько модель корректирует свои внутренние веса на каждом шаге обучения. Это наиболее важный параметр.
Его можно представить как регулировку крана горячей воды в душе. Если повернуть его сразу слишком сильно (высокая скорость), то вода будет переходить от холодной к обжигающей и обратно, так и не находя нужной температуры. Если поворачивать слишком мало (низкая скорость), ждёте слишком долго и можете остановиться на температуре, которая не является идеальной. Типичное начальное значение — 0,005.
Количество эпох
Эпоха — это один полный проход по всем обучающим данным. Количество эпох определяет, сколько раз модель просматривает весь набор данных.
При малом числе эпох модель недостаточно видела данные для изучения паттернов. При слишком большом числе эпох модель может запомнить обучающие данные вместо того, чтобы обучиться общим паттернам. Это известно как переобучение и является одной из наиболее распространённых проблем в машинном обучении.
Подсказка
Edge Impulse включает метод ранней остановки, который отслеживает производительность модели во время обучения. Он автоматически останавливает процесс обучения, когда модель перестаёт улучшаться, что предотвращает переобучение.
Размер батча
Размер батча определяет, сколько образцов модель обрабатывает перед корректировкой весов. Типичные значения для проектов Edge AI — от 16 до 32. В целом этот параметр оказывает меньшее влияние, чем скорость обучения и количество эпох, а значения по умолчанию в Edge Impulse обычно подходят для большинства проектов.
Оптимизация для устройства
Обучение выполняется на компьютере или в облаке, но результирующая модель должна работать на микроконтроллере с очень ограниченными ресурсами. Оптимизация уменьшает размер модели, чтобы она поместилась на устройстве без слишком большой потери точности [15].
Практические соображения
При обучении модели для Edge AI важно помнить, что микроконтроллеры имеют значительно меньше памяти, чем компьютер. Поэтому рекомендуется начинать с небольшой простой модели и увеличивать сложность только при недостаточной производительности. Также предпочтительно снижать разрешение входных данных там, где это возможно: для изображений переход с 160×160 до 96×96 пикселей значительно снижает требования к памяти, а для сигналов датчиков аналогичный эффект даёт сокращение длительности окна анализа.
Квантизация, которую мы изучали в модуле 1.2, является фундаментальным шагом на этой фазе. Преобразование значений модели с 32-битного до 8-битного формата уменьшает размер примерно в 4 раза при минимальной потере точности.
Оптимизация с помощью Edge Impulse
Edge Impulse автоматизирует большую часть оптимизации. При выборе целевого оборудования (например, Arduino UNO R4 WiFi) платформа автоматически вычисляет, сколько памяти займёт модель, сколько времени займёт каждый инференс и поместится ли модель на устройстве [6]. Если модель слишком велика, платформа предлагает конкретные корректировки, такие как уменьшение числа слоёв или разрешения входных данных.
Фаза 4: Оценка модели
Оценка определяет, соответствует ли модель требованиям проекта перед её развёртыванием на реальном устройстве. Строгая оценка предотвращает проблемы в производстве.
Ключевые метрики по типу задачи
В модуле 1.2 мы представили метрики оценки для каждого типа задачи. Теперь мы рассмотрим, как их интерпретировать в практическом контексте Edge AI.
Матрица ошибок
Матрица ошибок — наиболее полезный инструмент для понимания поведения классификатора. Это таблица, которая показывает для каждой реальной категории, сколько образцов было классифицировано правильно и сколько — неправильно.
Например, в классификаторе трёх жестов (влево, вправо, вверх), оцениваемом на 150 тестовых образцах:
Предсказано: Влево |
Предсказано: Вправо |
Предсказано: Вверх |
|
|---|---|---|---|
Фактически: Влево |
45 |
3 |
2 |
Фактически: Вправо |
4 |
42 |
4 |
Фактически: Вверх |
1 |
5 |
44 |
Значения по диагонали (45, 42, 44) — правильные предсказания. Значения вне диагонали — ошибки. Эта матрица говорит нам, что модель правильна в 87,3% случаев (131 из 150). Тем не менее она также раскрывает более конкретную информацию: жест «вправо» часто путается с «вверх» (4 случая), что предполагает схожесть двух жестов. Необходимо больше данных для их различения.
Выбор правильной метрики
Выбор метрики для приоритизации зависит от последствий каждого типа ошибки в конкретном приложении.
В системе безопасности пропуск реального вторжения (ложноотрицательный результат) гораздо серьёзнее, чем ненужное оповещение (ложноположительный результат). В этом случае чувствительность (полнота) является приоритетной метрикой: мы хотим, чтобы модель обнаруживала как можно больше реальных событий, даже если иногда генерирует ложные тревоги.
В системе классификации продуктов, где каждый ложноположительный результат влечёт потери (например, выбраковку хорошего продукта), точность важнее: мы хотим, чтобы модель была права, когда сообщает о дефектном продукте.
Метрики устройства
В дополнение к точности модели Edge AI оценивает специфические аппаратные аспекты:
Задержка инференса: сколько времени модель затрачивает на обработку входных данных и генерацию предсказания. Должна быть достаточно быстрой для приложения (например, менее 500 мс для распознавания голоса).
Использование памяти: сколько места модель занимает на устройстве. Должна оставлять достаточно места для остальной части программы.
Потребление энергии: сколько энергии расходует каждый инференс. Актуально для устройств с батарейным питанием.
Валидация и тестирование
Процесс валидации и тестирования гарантирует, что модель правильно работает с данными, которые она не видела во время обучения.
Обнаружение переобучения и недообучения
Во время обучения производительность отслеживается как на обучающих, так и на валидационных данных. Соотношение двух показателей выявляет потенциальные проблемы.
Переобучение происходит, когда модель показывает очень хорошие результаты на обучающих данных, но плохие — на новых. Это похоже на студента, который заучивает ответы на конкретный экзамен, но не может решить похожие задачи с другой формулировкой. Решения включают сбор большего количества данных, применение аугментации данных или использование более простой модели.
Недообучение происходит, когда модель плохо работает как на обучающих, так и на новых данных. Это указывает на то, что модель слишком проста для задачи. Решения включают использование более сложной модели, обучение в течение большего числа эпох или улучшение извлечения признаков.
Тестирование на реальном устройстве
Важно
Финальная оценка должна выполняться на самом граничном устройстве, а не только на компьютере. Производительность может различаться между двумя средами, поскольку квантизация может незначительно влиять на точность, реальные условия (шум, освещение) могут отличаться от лабораторных, а ограничения памяти и скорости микроконтроллера могут влиять на поведение модели.
Интерпретация результатов
Правильная интерпретация результатов не менее важна, чем их получение. Ниже перечислены некоторые ключевые аспекты для рассмотрения.
Репрезентативность тестовых данных
Результаты оценки надёжны только в том случае, если тестовые данные представляют реальные условия использования. Модель распознавания голоса, обученная и оцениваемая исключительно на голосах молодых взрослых в тихой среде, может показывать точность 95%, но давать сбои при развёртывании в шумной среде с пользователями разных возрастов.
Анализ ошибок
Помимо глобальных метрик, изучение отдельных ошибок модели предоставляет ценную информацию для её улучшения. Сюда входит выявление наиболее часто путаемых классов с помощью матрицы ошибок, изучение случаев, когда модель совершает ошибки с высокой уверенностью (неверные, но уверенные предсказания), и поиск паттернов в ошибках, например специфических условий, вызывающих систематические сбои.
Этот анализ направляет решения о том, какие аспекты нужно улучшить: нужно ли больше данных для определённых классов? Достаточно ли разнообразны условия сбора? Подходит ли тип модели для задачи?
Резюме
В этом модуле мы углублённо рассмотрели четыре центральные фазы рабочего процесса Edge AI.
Сбор данных — это основа каждого проекта. Качество и разнообразие данных важнее, чем их абсолютное количество. Чётко определённый протокол сбора, данные, репрезентативные для реальной среды, и правильная разметка являются основополагающими для успеха модели.
Предобработка преобразует необработанные данные в представления, пригодные для обучения. Очистка удаляет дефектные данные, нормализация унифицирует масштабы, извлечение признаков захватывает релевантную информацию, а аугментация данных помогает компенсировать ограниченные наборы данных.
Обучение модели требует выбора подходящего типа модели для задачи и имеющегося оборудования: параметры обучения, особенно скорость обучения и количество эпох, существенно влияют на производительность. Оптимизация для граничных устройств, включая квантизацию, является обязательным шагом.
Оценка выходит за рамки получения высокого числа точности. Она требует понимания матрицы ошибок, выбора подходящих метрик на основе последствий каждого типа ошибки, проверки правильности обобщения модели и тестирования на реальном устройстве в репрезентативных условиях.
В следующем модуле мы интегрируем все эти концепции в переходное занятие к практической реализации с платой Arduino UNO R4 WiFi и платформой Edge Impulse.
Список литературы
[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] Y. Zhang, N. Suda, and L. Lai, «Hello Edge: Keyword spotting on microcontrollers,» arXiv preprint arXiv:1711.07128, 2017.
[3] A. G. Howard et al., «MobileNets: Efficient convolutional neural networks for mobile vision applications,» arXiv preprint arXiv:1704.04861, 2017.
[4] 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.
[5] A. Garcia, J. Tardos, J. L. Ferrando, D. Aguinaga, D. Perez, and L. Estanga, «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.
[6] Edge Impulse, «Edge Impulse Documentation,» 2024. [Online]. Available: https://docs.edgeimpulse.com/
[7] 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
[8] S. Ioffe and C. Szegedy, «Batch normalization: Accelerating deep network training by reducing internal covariate shift,» in Proc. Int. Conf. Mach. Learn. (ICML), Lille, France, 2015, pp. 448–456.
[9] 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.
[10] C. Shorten and T. M. Khoshgoftaar, «A survey on image data augmentation for deep learning,» J. Big Data, vol. 6, no. 1, p. 60, Jul. 2019, doi: 10.1186/s40537-019-0197-0.
[11] 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.
[12] 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.
[13] 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.
[14] 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.
[15] R. David et al., «TensorFlow Lite Micro: Embedded machine learning for TinyML systems,» in Proc. Mach. Learn. Syst. (MLSys), 2021, pp. 800–811.