Краткое описание SqueezeNet/SqueezeNext | Облегченная сеть

глубокое обучение

Серия SqueezeNet представляет собой относительно раннюю и классическую легковесную сеть.SqueezeNet использует модуль Fire для сжатия параметров, а SqueezeNext добавляет отдельные свертки на этой основе для улучшения. Хотя серия SqueezeNet не так широко используется, как MobieNet, ее архитектурные идеи и экспериментальные выводы все же можно использовать для справки.  
Источник: Заметки по разработке алгоритмов Xiaofei Public Account.

SqueezeNet


Бумага: SqueezeNet: точность уровня AlexNet с в 50 раз меньшим количеством параметров и размером модели

Introduction

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

SqueezeNet: Preserving Accuracy with Few Parameters

  • Architectural Design Strategies

  Облегченный сетевой дизайн статьи в основном включает следующие стратегии:

  1. заменять3\times 3свернутый как1\times 1свертка, так как1\times 1Коэффициент свертки3\times 3Convolution имеет 9-кратное уменьшение параметра.
  2. уменьшать3\times 3входное измерение свертки,3\times 3Общее количество параметров свертки равно (количество входных каналов)(number of filters)(3 * 3), использование сжимающих слоев для уменьшения входного размера может уменьшить общий объем вычислений.
  3. Операция понижения дискретизации должна быть организована на более позднем этапе сети, насколько это возможно, чтобы сверточный слой мог иметь большую карту признаков и сохранять больше информации, тем самым повышая точность.

  Стратегия 1 и Стратегия 2 в основном предназначены для уменьшения параметров сети, но сохранения точности, а Стратегия 3 заключается в максимизации точности при ограниченных параметрах.

  • The Fire Module

  Основным модулем SqueezeNet является модуль Fire.Структура показана на рисунке 1. Входной слой сначала проходит через слой свертки сжатия (1\times 1свертка) для сжатия размеров, а затем через слой расширения свертки (1\times 1свертка и3\times 3Convolution Mixing) для расширения размерности. Модуль Fire содержит 3 параметра, которые являются параметрами слоя сжатия.1\times 1Количество ядер сверткиs_{1x1}, развернуть слой1\times 1Количество ядер сверткиe_{1x1}и расширенный слой3\times 3Количество ядер сверткиe_{3x3},в целомs_{1x1}<(e_{1x1}+e_{3x3})

  • The SqueezeNet Architecture

  Структура SqueezeNet показана в Таблице 1. После conv1, fire4, fire8 и conv10 добавляется слой пула для операции пула, и размер вывода в сети постепенно увеличивается. Вывод каждого слоя сжатия и расширения активируется ReLU, а за модулем fire9 следует 50% отсев.

Evaluation of SqueezeNet

  По сравнению с AlexNet, при той же точности SqueezeNet требуется только 1/50 параметров, а после квантования его можно уменьшить максимум до 1/510 параметров.

CNN Microarchitecture Design Space Exploration

  В статье проводятся исследовательские эксперименты с настройками модуля Fire, в основном сравнивая коэффициент сжатия сжимающего слоя и коэффициент сжатия расширяющего слоя.3\times 3Коэффициент свертки.

CNN Macroarchitecture Design Space Exploration

  В статье проводятся исследовательские эксперименты по микроархитектуре сети, в основном для изучения влияния коротких замыканий на сеть.Сравнительная структура сети показана на рисунке 2.

Conclusion

  SqueezeNet — это ранняя легкая исследовательская работа в сети.Хотя уровень точности сравнивается с AlexNet, его коэффициент сжатия сети весьма впечатляет, а конструкция модуля Fire также очень нова.

SqueezeNext


Диссертация: SqueezeNext: аппаратно-ориентированный дизайн нейронной сети

Introduction

  SqueezeNext — это обновление актуальной версии SqueezeNet, которое напрямую сравнивает производительность с MobileNet. Все SqueezeNext используют стандартные свертки для анализа фактической скорости вывода, а методы оптимизации фокусируются на оптимизации общей структуры сети.

SqueezeNext Design

  Дизайн SqueezeNext следует остаточной структуре.Вместо использования популярной в то время свертки глубины, он напрямую использует свертку разделения.Дизайн в основном основан на следующих стратегиях:

  • Фильтры низкого ранга   Основная идея низкоранговой декомпозиции состоит в том, чтобы разложить большую матрицу на несколько маленьких матриц.Здесь CP-разложение (каноническая полиадическая декомпозиция) используется для разложенияK\times KСвертка разбивается наK\times 1и1\times KРазделительная свертка , количество параметров может быть изменено отK^2сокращено до2K.

  • Модуль узкого места   Количество параметров связано с входными и выходными измерениями.Хотя глубинная свертка может использоваться для уменьшения объема вычислений, вычисление глубинной свертки в конечной системе неэффективно. Поэтому слой сжатия SqueezeNet используется для сжатия входного измерения.В начале каждого блока используются два последовательных слоя сжатия, и каждый слой уменьшает размерность на 1/2.

  • Полностью связанные слои   В AlexNet параметры полносвязного слоя составляют 96% всей модели.SqueezeNext использует слой узкого места для уменьшения входного размера полносвязного слоя, тем самым уменьшая количество сетевых параметров.

  Базовая структура 1.0-SqNxt-23 показана на рисунке 3. Средние блоки — это все блоки SqueezeNext, первый блок — нормальная свертка, а последние два блока — модуль узкого места и полносвязный слой.

Result

  В документе сравниваются разные сети и разные версии SqueezeNext, включая сети разной длины и добавляющие разные структуры. 1.0 в таблице представляет базовую настройку размера слоя, G представляет собой размер группы свертки, установленный на 2, а следующее число представляет собой общее количество слоев IDA представляет использование итеративного глубокого агрегирования для объединения нескольких слоев для вывода.

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

  Структура v5 показана на рис. 9. Экспериментальные результаты моделирования производительности оборудования показывают, что чем меньше размерность, тем менее эффективна вычислительная производительность, поэтому больше операций уровня сосредоточено в блоках с более высокими размерностями.

Conclusion

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

CONCLUSION


  Серия SqueezeNet представляет собой относительно раннюю и классическую легковесную сеть.SqueezeNet использует модуль Fire для сжатия параметров, а SqueezeNext добавляет отдельные свертки на этой основе для улучшения. Хотя серия SqueezeNet не так широко используется, как MobieNet, ее архитектурные идеи и экспериментальные выводы все же можно использовать для справки.



Если эта статья была вам полезна, ставьте лайк или смотрите~
Для получения дополнительной информации, пожалуйста, обратите внимание на общедоступную учетную запись WeChat [Примечания по разработке алгоритмов Xiaofei].

work-life balance.