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

Этап обучения:

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

Этап конверсии:

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

Этап вывода:

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

На этом завершается весь рабочий процесс разработки приложения TinyML.