TinyML Применение, ограничения и его использование в устройствах IoT и Edge

TinyML применение, ограничения и его использование в IoT и Edge-устройствах

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

Однако, с учетом прогресса в технологии встраиваемых систем и существенного развития в отрасли интернета вещей (IoT), желательно интегрировать использование техник и концепций МО в ресурсоограниченные встроенные системы для всеобщего использования интеллекта. Желание использовать концепции МО во встроенных и IoT-системах является основным мотивирующим фактором разработки TinyML – встроенной техники МО, которая позволяет использовать модели и приложения МО на нескольких ресурсоограниченных, энергоэффективных и доступных устройствах.

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

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

Введение в TinyML: почему миру нужен TinyML

Устройства интернета вещей (IoT) стремятся использовать вычисления на краю, парадигму вычислений, которая относится к различным устройствам и сетям, близким к пользователю, для обеспечения беспрерывной и мгновенной обработки данных от миллионов датчиков и устройств, соединенных между собой. Одним из основных преимуществ устройств IoT является их низкое потребление вычислительных ресурсов и мощности, так как они могут быть развернуты на краю сети, и у них низкий объем памяти.

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

Реализация вычислений на краю в устройствах IoT обеспечивает:

  1. Эффективную безопасность, конфиденциальность и надежность для конечных пользователей.
  2. Меньшую задержку.
  3. Более высокую доступность и пропускную способность для приложений и сервисов.

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

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

Более того, современная технология вычислений на краю сегодня недостаточно эффективна в передаче данных и энергосбережении, что приводит к гетерогенным системам, что является основной причиной необходимости гармоничной и всесторонней инфраструктуры, в основном для обновления, обучения и развертывания моделей МО. Архитектура, разработанная для встроенных устройств, представляет собой еще одну проблему, так как эти архитектуры зависят от требований аппаратного и программного обеспечения, которые различаются от устройства к устройству. Именно поэтому сложно создать стандартную архитектуру МО для сетей IoT.

Кроме того, в текущей ситуации данные, генерируемые различными устройствами, отправляются на облачные платформы для обработки из-за вычислительно интенсивной природы сетевых реализаций. Более того, модели МО часто зависят от глубокого обучения, глубоких нейронных сетей, прикладных интегральных схем (ASIC) и графических процессоров (GPU) для обработки данных, и они часто требуют большего количества энергии и памяти. Развертывание полноценных моделей МО на устройствах IoT не является целесообразным решением из-за явного недостатка вычислительной мощности и ограниченных решений хранения.

Потребность в миниатюризации встроенных устройств с низким энергопотреблением в сочетании с оптимизацией моделей МО для повышения энергоэффективности и эффективности использования памяти привела к появлению TinyML, которая стремится реализовать модели и практики МО на краевых устройствах и фреймворке IoT. TinyML позволяет выполнять обработку сигналов на устройствах IoT и обеспечивает встроенный интеллект, тем самым устраняя необходимость передачи данных на облачные платформы для обработки. Успешная реализация TinyML на устройствах IoT может в конечном итоге привести к повышению конфиденциальности и эффективности при снижении операционных расходов. Кроме того, то, что делает TinyML более привлекательным, заключается в том, что в случае недостаточной связи он может обеспечивать аналитику на месте.

TinyML: Введение и обзор

TinyML – это инструмент машинного обучения, который способен выполнять аналитику на устройстве для различных модальностей восприятия, таких как звук, видение и речь. Модели ML, созданные с помощью инструмента TinyML, имеют низкое энергопотребление, требования к памяти и вычислительной мощности, что делает их подходящими для встраиваемых сетей и устройств, работающих от батарейного питания. Кроме того, низкие требования TinyML позволяют развертывать модели ML в рамках Интернета вещей (IoT).

В настоящей ситуации облачные системы машинного обучения сталкиваются с несколькими проблемами, включая вопросы безопасности и конфиденциальности, высокое энергопотребление, надежность и проблемы задержки, поэтому модели на аппаратно-программных платформах предустановлены. Датчики собирают данные, имитирующие физический мир, а затем обрабатываются с помощью ЦПУ или МПУ (микропроцессорной установки). МПУ обеспечивает потребности в поддержке аналитики ML, возможной благодаря архитектуре и алгоритмам ML-сетей, осознаваемым краевыми устройствами. Краевая архитектура ML обменивается данными с облачными системами ML, и внедрение TinyML может значительно продвинуть технологии.

Можно сказать, что TinyML – это совмещение программного обеспечения, аппаратного обеспечения и алгоритмов, которые работают в синхронизации друг с другом для достижения желаемой производительности. Аналоговые или памятные вычисления могут потребоваться для обеспечения лучшего и эффективного обучения аппаратных и IoT-устройств, не поддерживающих аппаратные ускорители. Что касается программного обеспечения, приложения, созданные с использованием TinyML, могут быть развернуты и реализованы на платформах, таких как Linux или встроенный Linux, а также на облачном программном обеспечении. Наконец, приложения и системы, построенные на алгоритме TinyML, должны иметь поддержку новых алгоритмов, требующих моделей малого размера для избежания высокого потребления памяти.

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

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

Сказанное выше, TinyML-приложения имеют два основных требования:

  1. Способность масштабировать миллиарды дешевых встраиваемых систем.
  2. Хранение кода на ОЗУ устройства с объемом нескольких килобайт.

Применение TinyML с использованием передовых технологий

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

Приложения на основе речи

Речевые коммуникации

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

Некоторые из самых популярных приложений в индустрии речевых коммуникаций сегодня – это обнаружение речи, распознавание речи, онлайн-обучение, онлайн-обучение и целенаправленная коммуникация. Эти приложения обычно имеют более высокое энергопотребление и высокие требования к данным на устройстве. Для преодоления этих требований была разработана новая библиотека TinySpeech, которая позволяет разработчикам создавать низкоресурсную архитектуру с использованием глубоких сверточных сетей.

Для использования TinyML для улучшения речи разработчики сначала решали проблему размера модели улучшения речи из-за ограничений и ограничений аппаратного обеспечения. Для решения этой проблемы было использовано структурированное обрезание и целочисленная квантизация для модели улучшения речи с использованием рекуррентных нейронных сетей (RNN). Результаты показали, что размер модели удалось уменьшить почти в 12 раз, а операции – почти в 3 раза. Кроме того, важно эффективно использовать ресурсы, особенно при работе с ограниченными по ресурсам приложениями, выполняющими приложения распознавания речи.

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

Кроме того, в последние время было предложено использование телефонного трансдьюсера для систем распознавания речи, и предложение нацелено на замену предсказателей LSTM слоем Conv1D для снижения вычислительных требований на периферийных устройствах. При реализации предложение показало положительные результаты, поскольку SVD или сингулярное разложение значений успешно сжало модель, в то время как использование декодирования на основе WFST или взвешенных конечных состояний привело к большей гибкости при улучшении модели.

Многие известные приложения распознавания речи, такие как виртуальные или голосовые помощники, живые подписи и голосовые команды, используют методы машинного обучения для работы. Популярные голосовые помощники, такие как Siri и Google Assistant, в настоящее время отправляют запросы на облачную платформу каждый раз, когда получают данные, и это вызывает значительные опасения в отношении конфиденциальности и безопасности данных. TinyML является решением для этой проблемы, поскольку он направлен на выполнение распознавания речи на устройствах и устранение необходимости переносить данные на облачные платформы. Одним из способов достижения распознавания речи на устройстве является использование Tiny Transducer, модели распознавания речи, которая использует слой DFSMN или блок глубокой последовательной памяти прямого распространения вместо слоев LSTM для снижения требований к вычислениям и параметрам сети.

Слуховые аппараты

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

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

Приложения на основе зрения

TinyML имеет потенциал сыграть важную роль в обработке наборов данных, основанных на компьютерном зрении, потому что для более быстрого вывода эти наборы данных должны быть обработаны на самой платформе. Для достижения этого модель TinyML сталкивается с практическими проблемами, возникающими при обучении модели с использованием микроконтроллера OpenMV H7. Разработчики также предложили архитектуру для распознавания американского жестового языка с помощью микроконтроллера ARM Cortex M7, который работает только с 496 КБ оперативной памяти фреймбуфера.

Реализация TinyML для приложений на основе компьютерного зрения на периферийных платформах потребовала от разработчиков преодолеть основную проблему сверточных нейронных сетей (CNN) с высокой обобщающей ошибкой и высокой точностью обучения и тестирования. Однако реализация неэффективно обобщалась для изображений в новых случаях использования, а также для фона с шумом. Когда разработчики использовали метод интерполяционного увеличения, модель показала точность более 98% на тестовых данных и около 75% при обобщении.

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

Кроме того, дополнительные исследования по CNN показали, что возможно развернуть и достичь желаемых результатов с архитектурой CNN на устройствах с ограниченными ресурсами. Недавно разработчики смогли создать фреймворк для обнаружения медицинских масок на микроконтроллере ARM Cortex M7 с ограниченными ресурсами, используя TensorFlow Lite с минимальными затратами памяти. Размер модели после квантования составлял около 138 КБ, а скорость вывода на целевой плате составляла около 30 кадров в секунду.

Еще одним применением TinyML для приложений на основе компьютерного зрения является создание устройства распознавания жестов, которое можно прикрепить к трости, чтобы помочь людям с ограниченными возможностями зрения легче ориентироваться в повседневной жизни. Для его разработки разработчики использовали набор данных жестов и использовали его для обучения модели ProtoNN с алгоритмом классификации. Результаты, полученные из настройки, были точными, дизайн был недорогим и давал удовлетворительные результаты.

Еще одним значительным применением TinyML является отрасль самоуправляемых и автономных автомобилей из-за ограниченных ресурсов и вычислительной мощности на борту. Для решения этой проблемы разработчики предложили метод обучения в замкнутом цикле на основе модели TinyCNN, который предлагает модель предиктора в реальном времени, захватывающую изображение во время выполнения. Основной проблемой, с которой столкнулись разработчики при внедрении TinyML для автономного вождения, была то, что модель принятия решений, обученная работать с оффлайн данными, может не работать одинаково хорошо с онлайн данными. Чтобы полностью раскрыть возможности автономных и самоуправляемых автомобилей, модель в идеале должна быть способна адаптироваться к данным в режиме реального времени.

Классификация и сжатие данных с использованием шаблонов

Одной из самых больших проблем текущей системы TinyML является ее адаптация к тренировочным данным в режиме онлайн. Для решения этой проблемы разработчики предложили метод, известный как TinyOL или TinyML Online Learning, который позволяет проводить инкрементное онлайн-обучение на микроконтроллерах, позволяя модели обновляться на устройствах IoT. Реализация была осуществлена с использованием языка программирования C++, и к архитектуре TinyOL был добавлен дополнительный слой.

Кроме того, разработчики также провели авто-кодирование платы датчика Arduino Nano 33 BLE, и обученная модель смогла классифицировать новые шаблоны данных. Кроме того, в рамках работы были разработаны более эффективные и оптимизированные алгоритмы для нейронных сетей, поддерживающие обучение устройств в режиме онлайн.

Исследования в области TinyOL и TinyML показали, что количество слоев активации является основной проблемой для устройств IoT с ограниченными ресурсами. Для решения этой проблемы разработчики представили новую модель TinyTL или Tiny Transfer Learning, чтобы сделать использование памяти на устройствах IoT более эффективным и избежать использования промежуточных слоев для активации. Кроме того, разработчики также представили новый модуль смещения, известный как “lite-residual module”, для максимизации возможностей адаптации и обнаружения остаточных карт признаков.

По сравнению с полной настройкой сети, результаты в пользу архитектуры TinyTL показали, что она позволяет сократить избыточную память примерно в 6.5 раз с умеренной потерей точности. Когда последний слой был настроен, TinyML повысила точность на 34% при умеренной потере точности.

Кроме того, исследования в области сжатия данных показали, что алгоритмы сжатия данных должны управлять собранными данными на портативном устройстве. Для достижения этой цели разработчики предложили алгоритм TAC или Tiny Anomaly Compressor. Алгоритм TAC показал лучшие результаты по сравнению с алгоритмами SDT или Swing Door Trending и DCT или Discrete Cosine Transform. Более того, алгоритм TAC превзошел как SDT, так и DCT по максимальной степени сжатия, превысив 98%, и имеет лучшее соотношение сигнал-шум среди всех трех алгоритмов.

Диагностика здоровья

Глобальная пандемия Covid-19 открыла новые возможности для применения TinyML, так как стало необходимым непрерывно обнаруживать респираторные симптомы, связанные с кашлем и простудой. Для обеспечения бесперебойного мониторинга разработчики предложили модель CNN Tiny RespNet, которая работает в многомодельном режиме, и модель развертывается на FPGA Xilinx Artix-7 100t, что позволяет устройству обрабатывать информацию параллельно, иметь высокую эффективность и низкое энергопотребление. Кроме того, модель TinyResp также принимает речь пациентов, аудиозаписи и информацию о демографии в качестве входных данных для классификации симптомов, связанных с кашлем. Классификация производится с использованием трех отдельных наборов данных.

Кроме того, разработчики предложили модель TinyDL, способную выполнять вычисления глубокого обучения на устройствах в режиме реального времени. Модель TinyDL может быть развернута на устройствах вроде смарт-часов и носимых устройств для диагностики здоровья и также способна проводить анализ производительности для сокращения пропускной способности, задержки и энергопотребления. Для развертывания TinyDL на портативных устройствах была разработана и обучена модель LSTM, специально предназначенная для носимого устройства, и на вход подавались собранные данные. Модель имеет показатель точности около 75-80% и способна работать с данными, не находящимися на устройстве. Эти модели, работающие на устройствах в режиме реального времени, показали потенциал в решении текущих проблем, с которыми сталкиваются устройства IoT.

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

Edge Computing

Одно из основных применений TinyML – в области вычислений на краю сети, так как с увеличением использования устройств IoT для подключения устройств по всему миру становится необходимым настраивать краевые устройства, что поможет снизить нагрузку на облачные архитектуры. Эти краевые устройства будут иметь собственные центры обработки данных, которые позволят им выполнять высокоуровневые вычисления непосредственно на устройстве, а не полагаться на облачную архитектуру. В результате это поможет снизить зависимость от облачных ресурсов, сократить задержку, улучшить безопасность и конфиденциальность пользователя, а также уменьшить пропускную способность.

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

Кроме того, TinyML также может улучшить использование и применение Беспилотных Летательных Аппаратов или БЛА, решая текущие ограничения, с которыми сталкиваются эти машины. Использование TinyML позволяет разработчикам создавать энергоэффективные устройства с низкой задержкой и высокой вычислительной мощностью, которые могут выступать в качестве контроллера для этих БЛА.

Интерфейс мозг-компьютер или BCI

TinyML имеет значительные применения в медицинской отрасли и может оказаться чрезвычайно полезным в различных областях, включая обнаружение рака и опухолей, прогнозирование здоровья с использованием сигналов ЭКГ и ЭЭГ, а также эмоциональный интеллект. Использование TinyML позволяет адаптивной глубокой стимуляции глубокого мозга, или aDBS, успешно адаптироваться к клиническим приспособлениям. Использование TinyML также позволяет aDBS идентифицировать связанные с заболеваниями биомаркеры и их симптомы с использованием инвазивных записей сигналов мозга.

Кроме того, медицинская отрасль часто включает сбор большого объема данных пациента, и эти данные затем должны быть обработаны для нахождения конкретных решений для лечения пациента на ранних стадиях заболевания. В результате важно создать систему, которая не только высокоэффективна, но и обладает высокой степенью безопасности. Когда мы объединяем применение интернета вещей с моделью TinyML, возникает новое направление под названием H-IoT или “Интернет вещей в области здравоохранения”, а основные применения H-IoT – это диагностика, мониторинг, логистика, контроль распространения и системы поддержки. Если мы хотим разработать устройства, способные удаленно обнаруживать и анализировать состояние здоровья пациента, необходимо разработать систему с глобальной доступностью и низкой задержкой.

Автономные транспортные средства

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

На данный момент автономные транспортные средства и автономное вождение являются довольно сложной задачей, особенно при разработке миниатюрных или малогабаритных транспортных средств. Недавние разработки показали потенциал для улучшения применения автономного вождения для мини-транспортных средств с использованием архитектуры CNN и развертывания модели на GAP8 MCI.

Трудности

TinyML – это относительно новая концепция в индустрии искусственного интеллекта и машинного обучения, и несмотря на прогресс, она все еще не настолько эффективна, как нам нужно для массового внедрения на устройствах края и интернета вещей.

Самая большая проблема, с которой сейчас сталкиваются устройства TinyML, – это энергопотребление этих устройств. В идеале, встроенные устройства края и интернета вещей должны иметь срок службы батареи более 10 лет. Например, в идеальных условиях устройство IoT, работающее от 2-амперного аккумулятора, должно иметь срок службы батареи более 10 лет при потреблении энергии устройства около 12 мкА. Однако в данном случае, в составе архитектуры IoT с датчиком температуры, блоком МКУ и модулем WiFi, потребление тока составляет около 176,4 мА, и при таком потреблении энергии батарея прослужит всего около 11 часов вместо требуемых 10 лет срока службы батареи.

Ограничения ресурсов

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

Ограничения оборудования

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

Ограничения набора данных

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

Финальные мысли

Развитие техник машинного обучения вызвало революцию и изменение взгляда на экосистему IoT. Интеграция моделей машинного обучения в устройства IoT позволит этим устройствам на краю принимать интеллектуальные решения самостоятельно без внешнего вмешательства человека. Однако, традиционно модели машинного обучения часто имеют высокие требования к энергопотреблению, памяти и вычислительным ресурсам, что делает их непригодными для развертывания на устройствах на краю, которые часто имеют ограниченные ресурсы. 

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

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