Вывод DNN на встроенных платформах

Глубокие нейронные сети (ГНС) успешно справляются со многими задачами компьютерного зрения. Очевидный хуй! Однако самые точные DNN требуют миллионов параметров и операций, что требует больших затрат энергии, вычислений и памяти. [ГОЭЛ]

VGG-16 требуется 15 миллиардов операций для выполнения классификации изображений на одном изображении.

YOLOv3 выполняет 39 миллиардов операций для обработки одного изображения.

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

Как и в случае с соревнованием по сети изображений, сейчас многие работают над определением лучших решений для машинного зрения, которые могут одновременно обеспечить высокую точность компьютерного зрения и энергоэффективность. [ЛПИРК-ВЕБ]

Соревнование

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

  1. Во-первых, необходимо построить и обучить модель нейронной сети для идентификации и классификации изображений.
  2. Затем модель должна работать максимально точно и быстро.
  3. Большинство нейронных сетей обучаются на моделях с плавающей запятой и обычно должны быть преобразованы в модели с фиксированной точкой для эффективной работы на периферийных устройствах.
  4. Держите энергопотребление под контролем

Удивительно, но уже так много делается для того, чтобы мы могли иметь модели ИИ, работающие в вашей микроволновке, а что нет. Современные решения для развертывания моделей машинного обучения в средах с ограниченными ресурсами можно разделить на следующие широкие категории [GOEL]

  1. Квантование и сокращение параметров. Снижает затраты памяти и вычислений за счет уменьшения числа битов, используемых для хранения параметров моделей DNN.
  2. Сжатые сверточные фильтры и матричная факторизация: разбивает большие слои DNN на более мелкие, чтобы уменьшить требования к памяти и количество избыточных матричных операций.
  3. Поиск сетевой архитектуры: автоматически строит DNN с различными комбинациями уровней, чтобы найти архитектуру DNN, обеспечивающую желаемую производительность.
  4. Дистилляция знаний: обучает компактную DNN, которая имитирует выходные данные, функции и активации более ресурсоемкой DNN.

Давайте углубимся в каждый из этих

Квантование и сокращение параметров

Возьмем, к примеру, модель ResNet-50 с 50 сверточными слоями, которая требует более 95 МБ памяти для хранения и более 3,8 миллиардов умножений с плавающей точкой при обработке изображения. Но после отбрасывания некоторых избыточных весов сеть по-прежнему работает как обычно, но экономит более 75% параметров и 50% времени вычислений. Методы, используемые для этого, варьируются от применения скалярного квантования k-средних к значениям параметров до разделения весов и последующего применения кодирования Хаффмана к квантованным весам, а также к кодовой книге [YUCHENG]

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

ЭТО БИНАРНЫЙ С Б.

Есть несколько работ, которые напрямую обучают CNN с двоичными весами, например, BinaryConnect [Courbariaux], BinaryNet и XNOR [Rastegari].

Двоичные веса, т. е. веса, которые ограничены только двумя возможными значениями (например, -1 или 1), принесут большие преимущества специализированному оборудованию глубокого обучения, заменив многие операции умножения-накопления простыми накоплениями, поскольку множители требуют больше всего места и энергии. компоненты цифровой реализации нейронных сетей. Как и в других схемах исключения, авторы показывают, что BinaryConnect действует как регуляризатор, и они получают почти самые современные результаты с BinaryConnect на инвариантных перестановках MNIST, CIFAR-10 и SVHN.

Сжатые сверточные фильтры

Эти подходы основаны на ключевом наблюдении, что веса обученных сверточных фильтров обычно являются гладкими и низкочастотными. Сначала мы преобразуем веса фильтра в частотную область с помощью дискретного косинусного преобразования (DCT) и используем недорогую хеш-функцию для случайного сгруппировать частотные параметры в хеш-ковши. Все параметры, назначенные одному и тому же хэш-сегменту, имеют одно значение, полученное с помощью стандартного обратного распространения.

Поиск сетевой архитектуры

Что ж, первое, что вы бы сделали, опробовав любую среду глубокого обучения, такую ​​как Keras или Torch, — это определение сетевой архитектуры. И вы согласитесь, что это в основном произвольно, по крайней мере, так кажется. Как насчет того, чтобы автоматизировать и это? Конечно, мы потеряем работу, но разве это не интересно?

Таким образом, поиск нейронной архитектуры (NAS), процесс автоматизации проектирования архитектуры, является логическим следующим шагом в автоматизации машинного обучения. Методы NAS уже превзошли разработанные вручную архитектуры в некоторых задачах, таких как классификация изображений (Zoph et al., 2018; Real et al., 2019), обнаружение объектов (Zoph et al., 2018) или семантическая сегментация (Chen et al. др., 2018). NAS можно рассматривать как подполе AutoML (Hutter et al., 2019) и в значительной степени пересекается с оптимизацией гиперпараметров (Feurer and Hutter, 2019) и метаобучением (Vanschoren, 2019). [ЭЛЬСКЕН]

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

Люди испробовали множество различных методов, от обучения с подкреплением до эволюционных алгоритмов, для создания этих решений NAS. [Пэнчжэнь Рен]

Наверняка вы слышали об Auto-Pytorch? Нет! ПОЙДИТЕ, проверьте это, позже, очевидно.

Дистилляция знаний

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

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

Мягкие цели как регуляризаторы

Очевидный способ передать обобщающую способность модели учителя модели ученика — использовать вероятности класса, созданные моделью учителя, в качестве «мягких целей» для обучения малой модели. Для этого этапа переноса мы могли бы использовать тот же обучающий набор или отдельный «переносной» набор. Когда модель учителя представляет собой большой набор более простых моделей, мы можем использовать среднее арифметическое или геометрическое их отдельных прогностических распределений в качестве мягких целей. Когда мягкие цели имеют высокую энтропию, они предоставляют гораздо больше информации для каждого обучающего примера, чем жесткие цели, и гораздо меньшую дисперсию в градиенте между обучающими вариантами, поэтому модель ученика часто можно обучить на гораздо меньшем количестве данных, чем исходная громоздкая модель, и с использованием гораздо более высокая скорость обучения. [ХИНТОН]

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

Вывод

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

Дайте мне знать, что вы думаете об этом здесь

ИСТОЧНИКИ

[ГОЭЛ](https://arxiv.org/pdf/2003.11066.pdf)

[Алямкин] (Алямкин С., Арди М., Брайтон А., Берг А.С., Чен Б., Чен Ю., … Чжо С. (2019). Компьютерное зрение с низким энергопотреблением: статус, Вызовы, возможности. Журнал IEEE по новым и избранным темам в схемах и системах, 1–1. doi: 10.1109/jetcas.2019.2911899)

[LPIRC-WEB](https://rebootingcomputing.ieee.org/lpirc/2019)

[ЮЧЭН](https://arxiv.org/pdf/1710.09282.pdf)

[Курбарио](https://arxiv.org/pdf/1511.00363.pdf)

[Растегари†](https://arxiv.org/pdf/1603.05279.pdf)

[ЭЛСКЕН](https://arxiv.org/pdf/1808.05377.pdf)

[Пэнчжэнь Жэнь] (https://arxiv.org/pdf/2006.02903.pdf)

[ПОДСКАЗКА](https://arxiv.org/pdf/1503.02531.pdf)