Подход к запуску моделей CNN на микроконтроллерах 2 КБ

Да, вы все правильно прочитали, вы можете запустить модель CNN на своем простом процессоре ARM. Недавно вышла статья Игоря Федорова из ARM ML Research под названием Поиск разреженных архитектур для CNN на микроконтроллерах с ограниченными ресурсами. Этот пост в блоге посвящен моему пониманию того, что SpArSe отличается от предыдущих методов, представленных в этой области.

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

Было предложено множество подходов к решению этих проблем. Несмотря на то, что их много, позвольте мне ограничиться двумя основными идеями для простоты этого сообщения в блоге, начиная с мобильной сети, а затем Neural Architectural Search (NAS). Сначала давайте поймем, почему сложно использовать современные модели машинного обучения для устройств реального времени, таких как смартфоны и устройства Интернета вещей. Чтобы понять это, нам нужно количественно оценить производительность машинного обучения на устройствах. В основном существует два типа параметров, используемых для проверки производительности моделей машинного обучения.

  1. Задержка : время, необходимое модели для создания входных данных выходной формы.
  2. Точность : процент верных прогнозов модели.

Теперь одним из первоначальных стремлений к повышению производительности является подход мобильной сети, который в основном основан на идее сокращения количества операций, выполняемых моделью, с использованием точечных сверток вместо стандартных глубинных сверток. Если вы чувствуете отчуждение от этих терминов, то посмотрите это видео. Таким образом, вводя точечную свертку, мы можем улучшить задержку, что помогает реализовать большие современные модели, такие как resnet и т. Д., На мобильных устройствах, но не очень полезно на таких устройствах, как мини-встраиваемые устройства Raspberry Pi. (Если вы хотите узнать, как реализовать простую модель классификации изображений на rpi, посмотрите мое руководство).

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

Таким образом, архитектура, созданная с использованием NAS, ограничена пространством поиска RNN. Сейчас предложены разные варианты использования NAS с вариациями в пространстве поиска, вы можете ознакомиться с ними здесь. Еще одна вещь, которую следует отметить в отношении NAS, заключается в том, что он в основном рассматривает точность как показатель оптимизации. Сгенерированная архитектура оптимальна как побочный эффект в погоне за этой метрикой оптимизации. Как можно превзойти NAS в погоне за моделью CNN с малым объемом вычислений и малой памятью. Это та часть, где SpArSe входит в нашу историю.

Теперь область, в которой подход SpArSe превосходен, находится в двух основных областях:

  1. Он предлагает дизайн CNN как многоцелевую оптимизационную задачу.
  2. Он вводит рабочую память и размер модели в качестве показателей оптимизации.

Причина, по которой 1-й пункт важен, потому что большинство предыдущих подходов, которые мы обсуждали, направлены на достижение одной основной цели, такой как уменьшение количества параметров (мобильная сеть), хорошая точность проверки (nas). Но SpArSe использует многоцелевой подход, учитывающий как точность, размер сети, так и рабочую память. Теперь все предыдущие подходы были сосредоточены на уменьшении параметров модели CNN, но одна из основных проблем с ними в реальном времени заключается в том, что они очень медленные, поскольку доступной рабочей памяти меньше, а операции, выполняемые этими моделями, огромны. Введя рабочую память в качестве ограничения, SpArSe действительно преуспела в использовании в процессорах с ограниченными ресурсами.

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

Сноски:

  1. https://arxiv.org/pdf/1905.12107.pdf - статья SpArSe
  2. https://arxiv.org/pdf/1611.01578.pdf, https://arxiv.org/pdf/1904.07392.pdf - документ НАН
  3. https://arxiv.org/pdf/1704.04861.pdf — документ MobileNet