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

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

Необходимые условия:

  • Доступ к Интернету
  • Первичный импульсный аккаунт
  • Скачать набор данных
  • GitHub
  • Некоторые знания Python

Прежде чем мы углубимся в руководство, нам нужно понять, что такое Edge Impulse и как он работает.

Пограничный импульс:

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

С помощью Edge Impulse разработчики могут создавать модели машинного обучения, которые могут работать на небольших устройствах с низким энергопотреблением, что позволяет добавлять интеллектуальные возможности для широкого спектра Интернета вещей (IoT) и других подключенных устройств. Платформа поддерживает различные аппаратные платформы, в том числе микроконтроллеры Arm Cortex-M, и предоставляет ряд готовых блоков обработки сигналов и машинного обучения, упрощающих начало работы.

Мы видим, что Edge Impulse может стать отличным инструментом для людей, которые хотят добавить некоторые интеллектуальные возможности к своим IoT и другим встроенным устройствам.

Итак, теперь давайте перейдем к практике!!

1. Создайте учетную запись:

Чтобы создать учетную запись, нажмите на эту ссылку: https://studio.edgeimpulse.com/signup. Вы должны попасть на эту страницу: (поместите сюда изображение)

Убедитесь, что вы правильно заполнили форму.

2. Создайте свой проект:

После того, как вы закончите создание своей учетной записи, вам нужно будет создать проект, нажав «Создать новый проект».

После этого появится окно ниже. Выберите «изображения» и нажмите «начало работы».

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

Примечание. В вашем проекте может быть до трех соавторов.

3. Загрузите набор данных с GitHub:

Каждый проект машинного обучения начинается с данных. Данные — самый важный компонент машинного обучения и искусственного интеллекта. Это относится к информации, которая была преобразована в форму, более эффективную для обработки и передачи. Набор данных, который мы будем использовать, содержит (количество изображений) изображения фруктов и овощей, классифицированных в разных папках, помеченных их именами. Набор данных находится на github: https://github.com/Mamadou2727/fruit-classification-dataset. Вы можете либо клонировать его, либо скачать zip-файл, решать вам.
Примечание. В этом уроке мы построим модель, которая сможет различать девять разных фруктов — мы использовали Apple Braeburn, Apple Granny, Avocado, Banana, Lemon, Mango, Orange, Pineapple, Помидор.

4. Импорт данных в наш проект:

Нажмите «lсоберем данные» и нажмите «перейти к загрузчику».

Выберите параметр автоматического разделения и введите имя метки в соответствии с используемой подпапкой набора данных. Например, если вы загружаете данные для папки набора данных под названием «Apple Braeburn», имя вашей метки также должно быть Apple Braeburn.

Edge Impulse автоматически разделит ваши данные на 80 % обучающих наборов и 20 % тестовых наборов. Вы можете найти информацию о перераспределении ваших данных. Если все правильно, должно получиться так:

5. Создание импульса:

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

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

Добавьте Transfer Learning в свой учебный блок, как показано на изображении ниже, и сохраните импульс.

5.1 Настройка блока обработки

После сохранения вашего импульса вы заметите небольшое изменение в навигации: вы увидите «Изображение» и «Перенос обучения» в разделе «Создать импульс». Теперь вам нужно будет нажать «Изображение», чтобы настроить правила/параметры для ваших изображений. Убедитесь, что он такой же, как на изображении ниже.

Нажмите Создать объекты, чтобы начать процесс.

После этого загрузится «Обозреватель функций». Это график всех данных в вашем наборе данных. Поскольку изображения имеют много размеров (здесь: 96x96x3 = 27 648 объектов), мы запускаем процесс, называемый «уменьшение размерности» в наборе данных, прежде чем визуализировать его. Здесь 27 648 функций сжаты до 3, а затем сгруппированы на основе сходства.

5.2 Настройка модели трансферного обучения

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

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

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

Установить:

  • Количество тренировочных циклов до 20.
  • Скорость обучения до 0,0005.

После обучения нашей модели мы получим точность 83,3%, что хорошо для имеющихся у нас данных.

6. Проверка вашей модели

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

Чтобы проверить свою модель, перейдите в раздел Тестирование модели и нажмите Классифицировать все, чтобы классифицировать все данные нашего тестирования. Здесь мы достигаем 100% точности, что превосходно.
Примечание: вы не всегда будете получать 100% точность. Вы должны убедиться, что ваша точность достаточно хороша (я рекомендую 75% или более), чтобы выполнить свою задачу.

7. Запуск модели на вашем устройстве

Импульс разработан, обучен и проверен, и вы можете развернуть эту модель обратно на свое устройство. Это позволяет модели работать без подключения к Интернету, сводит к минимуму задержку и работает с минимальным энергопотреблением. Edge Impulse может упаковать весь импульс, включая этапы предварительной обработки, веса нейронной сети и код классификации, в единую библиотеку C++, которую вы можете включить в свое встроенное программное обеспечение.

В этом уроке мы запустим нашу модель на смартфоне. Для этого нажмите «Развертывание», прокрутите вниз, выберите «Мобильный телефон» и выполните сборку. Отсканируйте QR-код, который будет сгенерирован, и начните использовать свою модель.

Поздравляем! Вы только что создали свою первую модель классификации фруктов. Это было легко, верно?

Если вас интересуют дополнительные руководства по Edge Impulse, посетите веб-сайт проектов сообщества Edge Impulse.

Не стесняйтесь писать мне, если у вас есть какие-либо вопросы об искусственном интеллекте, машинном обучении, глубоком обучении и т. д.