TinyML, искусственный интеллект и микроконтроллеры На фотографии изображен микроконтроллер нового поколения с аппаратным обеспечением искусственного интеллекта Eta Compute.
ИИ
Если вы зададите вопрос «Что такое искусственный интеллектЭ» дилетант и инженер-строитель, то вы получите два совершенно разных, непохожих ответа.В этом вся сложность с ИИ.
На любителя будет история-антиутопия, где роботы вот-вот отнимут у людей все рабочие места.
Но этот ответ неверен, поскольку у ИИ нет такого человеческого качества, как воображение.
Инженер-строитель, в свою очередь, скорее всего, ответит грубо, резко, заученной фразой своего начальника.
Ведь начальник уже уверенно рассказал ему все о том, что он сам узнал об ИИ из справочника.
Босс теперь определенно хочет внедрить ИИ в свой продукт. Где вы вообще ищете правильный ответ? С точки зрения электротехники, современная концепция ИИ — это работа математического алгоритма распознавания изображений, в основе которого лежит нейронная сеть, работающая по принципам функционирования человеческого мозга.
Таким образом, нейронная сеть ИНС обычно работает на обычных многоядерных процессорах.
Но если сделать это еще лучше, то можно реализовать в устройстве нейронную сеть с использованием искусственных нейронов, которые как бы общаются друг с другом с помощью периодических электрических импульсов или «Шипов».
Отсюда и термин SNN. При создании нейронной сети есть три неотъемлемые задачи: создание модели, обучение сети и вывод (интерпретация) результатов модели.
Модель
Есть такая нейронная сеть со специальной архитектурой Convolutional Neural Network (CNN) и она состоит из связанных между собой перцептронов (картинка ниже).Это стандартный пример, он показывает 4 слоя, 2 средних или «скрытых» слоя и 2 внешних.
Приступая к построению модели, как определить необходимое количество входов, выходов, слоев?
Итак, с входами все довольно просто.
Например: нам необходимо получить автоматическое распознавание/классификацию объекта в трехцветном режиме RGB с помощью цифровой камеры, изображение 320х200 пикселей.
Перемножим: 320*200*3 = 192к входов! Выходной слой отобразит количество объектов, которые система будет обучена распознавать.
Предположим, у нас есть 11 выходов для 10 объектов, включая один «ничего не распознано».
Скрытые слои будут содержать минимум 192 тыс.
узлов, и интересный вопрос: сколько слоев понадобится? В модели, в которой каждый узел так тесно связан со следующим узлом другого уровня, необходимо выполнить большой объем низкоуровневой обработки данных.
Для каждый узлам из скрытых слоев потребуются умножения на следующий слой в размере 192к.
В любом случае процессору для обработки потребуется модуль с плавающей запятой (FPU).
Теперь представьте себе вычислительную мощность, необходимую для управления сетью, обученной распознавать сотни различных объектов в HD-видео, при этом кадры меняются со скоростью 30 кадров в секунду.
Каждый кадр содержит десятки объектов.
Если вам нужна автономная система наблюдения в дроне, она имеет такие вычислительные характеристики.
Только на этапе обучения модели вам придется приобрести очень дорогую многопроцессорную систему, которая будет работать на скоростях во многие петафлопс.
Ну-ну, возьмем Д1 в количестве 120 штук будем стремиться к эксафлопсам.
Это был MegaML, а как насчет TinyML?
В мире, возможно, никогда не будет систем видеонаблюдения на CNN, пригодных для использования в дронах.Что можно сделать с одним-единственным несчастным SBC на одном микропроцессоре? На самом деле их много, просто важно при ответе на такие вопросы не сдаваться сразу, где вдруг может появиться TinyML, любимец мира IoT… Итак, когда-то идея подключения миллионов устройств к Облаку через Интернет всем казалась прекрасной.
Но были проблемы с передачей данных, задержки с их отправкой – это было просто недопустимо для корректной работы некоторых систем.
То есть нужно было сделать возможность как-то обойти эти потребности, сделав запрос в облако.
Появился «Эдж» — более продвинутый с точки зрения безопасности данных метод обработки данных.
Пример искусственного интеллекта на Edge
Автоматизированные заводы – это часть того, что нас всех ждет 4-я промышленная революция .Машины на заводах будут контролироваться датчиками, которыми будут управлять компьютеры.
Вместо логики If-Then-Else на ИИ взята гораздо более крутая, которая использует информацию, полученную от датчиков, для последующего обучения CNN. Не только будут исправлены все существующие ошибки, но и те ранее незаметные некорректные закономерности в работе системы будут указаны как дополнительные входы.
Кстати, если ввод выдает «ложноположительный» или «ложноотрицательный» результат, это будет указывать на необходимость добавления дополнительного датчика.
В целом, TinyML интуитивно понятно по названию: он предназначен для небольших систем, с небольшим количеством входов, выходов и количеством распознаваемых визуальных объектов.
Это позволяет сделать встроенные «Вещи» — полностью IoT-умными, при этом снизив нагрузку на Интернет и линии связи сервера.
Аппаратное обеспечение для реализации ИИ
SBC Платы микроконтроллеров ARM Cortex-M, Raspberry Pi 4, BeagleBone AI, Sony SPRESENSE, Arduino Nano 33 Sense и даже Raspberry Pi Pico. Самые простые программы искусственного интеллекта можно выполнять на 32-битных компьютерах с 16 КБ памяти — именно такими слабыми характеристиками обладает Raspberry Pi Pico.Модельное обучение
Используется всеми разработчиками для обучения — ТензорФлоу .Изначально платформа создавалась для проектов, где были необходимы суперкомпьютеры.
Сегодня существует упрощенная версия под названием ТензорФлоу Лайт .
Ну и для самых базовых проектов, с объёмом памяти 16КБ и с/без FPU - TensorFlow Lite для микроконтроллеров .
Обучение CNN — простая задача, но только если вы делаете это только для того, чтобы заставить нейронную сеть работать.
Если вы все же хотите избежать фатальных для системы ошибок в работе, то да, обучение модели — это сложно.
Это тяжело и неэффективно.
Как давно у дронов не было правильно функционирующего распознавания объектов нейронной сетью? В последние годы много смертей произошло в результате неправильной интерпретации визуальных данных CNN во время путешествий.
К счастью, сети TinyML гораздо проще обучать, чем более крупные сети ML (которые называются MegaML).
Крупные сети в TinyML используются вместе с инструментами на основе облачных технологий из-за необходимости подключения к мощным компьютерам.
Однако некоторые инструменты запускаются на локальном компьютере.
Сам процесс обучения невероятно прост:
- сбор данных с каждого датчика с учетом машин, к которым они подключены
- активация моделируемой сети TinyML
- программа предоставляет нейронной сети CNN данные для дальнейшей обработки с их окончательным выпуском на выходе.
До тех пор, пока не будут получены необходимые математически правильные результаты от самой CNN, данные снова и снова будут подвергаться одной и той же окончательной обработке в выходные данные.
Процесс такое, если такое случилось, это называется метод обратного распространения .
Это чрезвычайно важно для обучения нейронной сети.
Да и человеку часто приходится вмешиваться в 3-этапный процесс обучения, чтобы значения, которые выдает сеть, полностью правильный.
Часть данных, находящихся на входах, начинает обрабатываться сетью сразу в процессе моделирования.
То есть часть данных с начала обучения нейросети специально переносится в переднюю часть 3-шагового круга.
Возвращаясь к дронам, в лаборатории при обучении системы автоматического анализа визуальных данных результат уровня корректной работы составил 90%.
На дороге они по-прежнему получают только 50%.
Как будто данные для обучения модели никогда не будут доступны в достаточном количестве.
Вывод результата
После окончания обучения система переходит в режим «мышления».Система тратит некоторое время на поиск закономерностей для своей дальнейшей работы, сравнивая данные в режиме реального времени с полученными в результате ее обучения.
Результаты точно «предполагаются»; они не рассчитываются системой, как может показаться на первый взгляд интуитивно, как на калькуляторе.
Если все прошло успешно, то сеть загружает данные во Flash-память встроенного микроконтроллера, и вся система переходит в режим реального времени.
Обман, перемещение и глубина
CNN, хотя в своем поведении они ориентируются на человеческий мозг, их действия могут показаться вам странно скучными и нервирующими.Во-первых, они врут «как хулиган перед учителем в школе», давая «правильный» ответ по неверным причинам.
Это происходит, когда во время обучения модели данных было слишком мало.
Непонятно?) Пример: складского робота можно научить распознавать зеленые картонные коробки.
Итак, в комплект входит изображение всех форм и размеров зеленой коробки.
Впервые робот схватил человека на складе.
Почему? Потому что мужчина был одет в зеленый комбинезон.
В ходе обучения сеть пришла к выводу, что все, что окрашено в зеленый цвет, должно быть коробкой, красивой, но потенциально смертельной.
Во-вторых, по тем же причинам машина может выдавать необъективные результаты.
Помните ту машину, которая, работая с базами данных судимостей, решала сажать людей в тюрьму по цвету их кожи? Непристойное количество чернокожих людей находится за решеткой.
В-третьих, закончим, наконец, выяснением положительного свойства.
CNN лучше, чем когда-либо, умеют искать глубоко скрытые от человека вредные закономерности для их последующей коррекции.
Пример: тончайшие привычки человеческого поведения, по которым теперь можно уверенно идентифицировать серийных убийц среди огромной базы данных личностей.
Финал
Мощные нейронные сети на суперкомпьютерах побеждают людей в шахматы и шашки.Гораздо меньше TinyML Возможно, он не так хорошо работает в упомянутых играх, в науке, в медицине, но TinyML уже спас одну жизнь, просто выдав свои просто рассчитанные результаты.
Теги: #микроконтроллеры #нейронные сети #TensorFlow #микроконтроллер
-
Общий Взгляд На Разработку Игр
19 Oct, 24 -
Бредовые Клиенты
19 Oct, 24