Содержание[Скрывать][Показывать]
Модели машинного обучения сейчас повсюду. В течение дня вы, вероятно, используете эти модели гораздо чаще, чем думаете. Модели машинного обучения используются в общих задачах, таких как просмотр социальных сетей, фотографирование и проверка погоды.
Алгоритм машинного обучения мог порекомендовать вам этот блог. Мы все слышали о том, как много времени уходит на обучение этих моделей. Мы все слышали, что обучение этих моделей требует много времени.
Однако выполнение выводов по этим моделям часто требует больших вычислительных затрат.
Нам нужны компьютерные системы, которые достаточно быстры, чтобы справиться со скоростью, с которой мы используем услуги машинного обучения. В результате большинство этих моделей работают в крупных центрах обработки данных с кластерами ЦП и ГП (в некоторых случаях даже TPU).
Когда вы делаете снимок, вы хотите обучение с помощью машины мгновенно улучшить его. Вам не нужно ждать, пока изображение будет передано в центр обработки данных, обработано и возвращено вам. В этом случае модель машинного обучения должна выполняться локально.
Когда вы говорите «Привет, Siri» или «ОК, Google», вы хотите, чтобы ваши гаджеты реагировали немедленно. Ожидание передачи вашего голоса на компьютеры, где он будет оцениваться и получать данные.
Это требует времени и оказывает пагубное влияние на пользовательский опыт. В этом случае вы хотите, чтобы модель машинного обучения также работала локально. Здесь на помощь приходит TinyML.
В этом посте мы рассмотрим TinyML, как он работает, как его использовать, как начать с ним работать и многое другое.
Что такое КрошечныйML?
TinyML — это передовая дисциплина, которая применяет революционный потенциал машинного обучения к ограничениям производительности и мощности небольших устройств и встроенных систем.
Успешное развертывание в этой отрасли требует глубокого понимания приложений, алгоритмов, аппаратного и программного обеспечения. Это поджанр машинного обучения, в котором используются модели глубокого обучения и машинного обучения во встроенных системах, в которых используются микроконтроллеры, процессоры цифровых сигналов или другие специализированные процессоры со сверхнизким энергопотреблением.
Встроенные устройства с поддержкой TinyML предназначены для запуска алгоритма машинного обучения для конкретной задачи, обычно в рамках краевые вычисления.
Чтобы эти встраиваемые системы могли работать недели, месяцы или даже годы без подзарядки или замены батареи, потребляемая мощность должна быть менее 1 мВт.
Как это работает?
Единственная среда машинного обучения, которую можно использовать с микроконтроллерами и компьютерами, — это TensorFlow Lite. Это набор инструментов, которые позволяют разработчикам запускать свои модели на мобильных, встроенных и периферийных устройствах, обеспечивая машинное обучение на лету.
Интерфейс микроконтроллера используется для сбора данных с датчиков (таких как микрофоны, камеры или встроенные датчики).
Перед отправкой на микроконтроллер данные включаются в облачную модель машинного обучения. Для обучения этих моделей обычно используется пакетное обучение в автономном режиме. Данные датчика, которые будут использоваться для обучение и вывод уже определено для конкретного приложения.
Например, если модель обучается обнаруживать слово пробуждения, она уже настроена на обработку непрерывного аудиопотока с микрофона.
Все уже сделано с помощью облачной платформы, такой как Google Colab в случае TensorFlow Lite, включая выбор набора данных, нормализацию, недообучение или переоснащение модели, регуляризацию, увеличение данных, обучение, проверку и тестирование.
Полностью обученная модель в конечном итоге трансформируется и передается в микроконтроллер, микрокомпьютер или цифровой сигнальный процессор после автономного пакетного обучения. Модель не проходит дополнительное обучение после переноса на встроенное устройство. Вместо этого он использует исключительно данные в реальном времени от датчиков или устройств ввода для применения модели.
В результате модель машинного обучения TinyML должна быть исключительно надежной и способной переобучаться спустя годы или никогда не переобучаться. Все потенциальные недообучения и переоснащения модели должны быть исследованы, чтобы модель оставалась актуальной в течение длительного периода времени, в идеале на неопределенный срок.
Но зачем использовать TinyML?
TinyML начинался как попытка устранить или уменьшить зависимость Интернета вещей от облачных сервисов для базовых мелкомасштабных операций. обучение с помощью машины операции. Это потребовало использования моделей машинного обучения на самих пограничных устройствах. Он обеспечивает следующие основные преимущества:
- Низкая мощность потребление: Приложение TinyML предпочтительно должно потреблять менее 1 мВт энергии. При таком низком энергопотреблении устройство может продолжать делать выводы на основе данных датчиков в течение месяцев или лет, даже если оно питается от батарейки-таблетки.
- Более низкая стоимость: Он предназначен для работы на недорогих 32-битных микроконтроллерах или DSP. Эти микроконтроллеры обычно стоят несколько центов каждый, а общая встраиваемая система, разработанная с их помощью, составляет менее 50 долларов. Это очень экономичный вариант для запуска небольших программ машинного обучения в больших масштабах, и он особенно полезен в приложениях IoT, где необходимо применять машинное обучение.
- Нижняя задержка: его приложения имеют низкую задержку, поскольку им не нужно передавать или обмениваться данными по сети. Все данные датчиков записываются локально, а выводы делаются с использованием уже обученной модели. Результаты выводов могут быть отправлены на сервер или в облако для регистрации или дополнительной обработки, хотя это не обязательно для работы устройства. Это сводит к минимуму задержку в сети и устраняет необходимость выполнения операций машинного обучения в облаке или на сервере.
- Политика: Это серьезная проблема в Интернете и Интернете вещей. Работа по машинному обучению в приложениях TinyML выполняется локально, без сохранения или отправки данных датчика/пользователя на сервер/в облако. В результате, даже будучи подключенными к сети, эти приложения безопасны в использовании и не представляют угрозы конфиденциальности.
Приложения
- Сельское хозяйство – когда фермеры фотографируют растение, приложение TensorFlow Lite обнаруживает на нем болезни. Он работает на любом устройстве и не требует подключения к интернету. Эта процедура защищает интересы сельского хозяйства и является жизненно необходимой для сельских фермеров.
- Техническое обслуживание механики – TinyML при использовании на маломощных устройствах может постоянно выявлять недостатки в машине. Это влечет за собой техническое обслуживание на основе прогнозов. Австралийский стартап Ping Services представил гаджет IoT, который контролирует ветряные турбины, прикрепляясь к внешней стороне турбины. Он уведомляет власти всякий раз, когда обнаруживает любую возможную проблему или неисправность.
- Больницы – Solar Scare — это проект. Mosquito использует TinyML, чтобы остановить распространение таких болезней, как лихорадка денге и малярия. Он питается от солнечной энергии и определяет условия размножения комаров, прежде чем подавать сигнал воде, чтобы предотвратить размножение комаров.
- Наблюдение за дорожным движением — Автор применяя TinyML к датчикам, которые собирают данные о трафике в режиме реального времени, мы можем использовать их для более эффективного управления движением и сокращения времени реагирования для машин экстренных служб. Swim.AI, например, использует эту технологию для потоковой передачи данных, чтобы повысить безопасность пассажиров, а также уменьшить заторы и выбросы за счет интеллектуальной маршрутизации.
- закон: TinyML может использоваться в правоохранительных органах для выявления незаконных действий, таких как массовые беспорядки и кражи, с помощью машинного обучения и распознавания жестов. Аналогичная программа также может быть использована для защиты банковских банкоматов. Наблюдая за поведением пользователя, модель TinyML может предсказать, является ли пользователь реальным потребителем, завершающим транзакцию, или злоумышленником, пытающимся взломать или уничтожить банкомат.
Как начать работу с TinyML?
Чтобы начать работу с TinyML в TensorFlow Lite, вам понадобится совместимая плата микроконтроллера. TensorFlow Lite для микроконтроллеров поддерживает перечисленные ниже микроконтроллеры.
- Терминал Wio: ATSAMD51
- Плата для разработки конечных точек Himax WE-I Plus EVB с искусственным интеллектом
- Комплект обнаружения STM32F746
- Adafruit EdgeЗначок
- Платформа разработки программного обеспечения Synopsys DesignWare ARC EM
- Сони Спресенс
- Arduino Nano 33 BLE Sense
- SparkFun Край
- Комплект Adafruit TensorFlow Lite для микроконтроллеров
- Игровая площадка Adafruit Circuit Bluefruit
- Эспрессиф ESP32-DevKitC
- Эспрессиф ESP-EYE
Это 32-битные микроконтроллеры, имеющие достаточно флэш-памяти, оперативной памяти и тактовой частоты для выполнения модели машинного обучения. Платы также имеют ряд встроенных датчиков, способных запускать любую встроенную программу и применять модели машинного обучения к целевому приложению. К построить модель машинного обучения, помимо аппаратной платформы вам понадобится ноутбук или компьютер.
Каждая аппаратная платформа имеет свои собственные инструменты программирования для построения, обучения и переноса моделей машинного обучения, которые используют пакет TensorFlow Lite для микроконтроллеров. TensorFlow Lite можно использовать и модифицировать бесплатно, потому что он с открытым исходным кодом.
Чтобы начать работу с TinyML и TensorFlow Lite, все, что вам нужно, — это одна из упомянутых выше встраиваемых аппаратных платформ, компьютер/ноутбук, USB-кабель, преобразователь USB-to-Serial и желание практиковать машинное обучение со встроенными системами. .
Вызовы
Несмотря на то, что прогресс TinyML дал много положительных результатов, индустрия машинного обучения по-прежнему сталкивается со значительными препятствиями.
- Разнообразие программного обеспечения — ручное кодирование, генерация кода и интерпретаторы машинного обучения — все это варианты развертывания моделей на устройствах TinyML, и каждый из них требует разного количества времени и усилий. В результате могут возникать различные представления.
- Аппаратное разнообразие – есть доступны несколько аппаратных опций. Платформы TinyML могут быть чем угодно: от микроконтроллеров общего назначения до передовых нейронных процессоров. Это вызывает проблемы с развертыванием модели в разных архитектурах.
- Устранение неполадок/отладка – когда модель машинного обучения плохо работает в облаке, просто посмотреть на данные и понять, что идет не так. Когда модель распределена по тысячам устройств TinyML, а поток данных не возвращается в облако, отладка усложняется и может потребоваться другой метод.
- Ограничения памяти — традиционные платформам, таким как смартфоны и ноутбуки, требуются гигабайты оперативной памяти, тогда как устройства TinyML используют килобайты или мегабайты. В результате размер модели, которую можно развернуть, ограничен.
- Обучение модели – Хотя Развертывание моделей машинного обучения на устройствах TinyML имеет несколько преимуществ, основная часть моделей машинного обучения по-прежнему обучается в облаке для повторения и постоянного повышения точности моделей.
Будущее
TinyML, с его небольшими размерами, низким энергопотреблением и отсутствием или ограниченной зависимостью от подключения к Интернету, имеет огромный потенциал в будущем, поскольку большинство узких искусственный интеллект будут реализованы на периферийных устройствах или независимых встроенных гаджетах.
Это сделает приложения IoT более конфиденциальными и безопасными за счет их использования. Хотя TensorFlow Lite в настоящее время является единственной платформой машинного обучения для микроконтроллеров и микрокомпьютеров, другие сопоставимые платформы, такие как датчик и CMSIS-NN ARM, находятся в разработке.
Хотя TensorFlow Lite — это незавершенный проект с открытым исходным кодом, который отлично стартовал с командой Google, ему по-прежнему требуется поддержка сообщества, чтобы стать массовым.
Заключение
TinyML — это новый подход, сочетающий встроенные системы с машинным обучением. По мере того, как узкий ИИ достигает своего пика во многих вертикалях и областях, эта технология может стать заметной областью машинного обучения и искусственного интеллекта.
Он обеспечивает решение многочисленных проблем, с которыми сейчас сталкиваются сектор IoT и специалисты, применяющие машинное обучение во многих предметных областях.
Концепция использования машинного обучения в периферийные устройства с небольшими вычислительными занимаемая площадь и энергопотребление могут существенно изменить способ создания встраиваемых систем и робототехники.
Оставьте комментарий