Серия SqueezeNet представляет собой относительно раннюю и классическую легковесную сеть.SqueezeNet использует модуль Fire для сжатия параметров, а SqueezeNext добавляет отдельные свертки на этой основе для улучшения. Хотя серия SqueezeNet не так широко используется, как MobieNet, ее архитектурные идеи и экспериментальные выводы все же можно использовать для справки.
Источник: Заметки по разработке алгоритмов Xiaofei Public Account.
SqueezeNet
Бумага: SqueezeNet: точность уровня AlexNet с в 50 раз меньшим количеством параметров и размером модели
- Адрес бумаги:АР Вест V.org/PDF/1602.07…
- Код диссертации:GitHub.com/Forrest i/sq…
Introduction
Когда появилось глубокое обучение, многие исследования были сосредоточены на том, как повысить точность сети, и SqueezeNet был одним из первых исследований, посвященных облегченным сетям. Первоначальная цель статьи состоит в том, чтобы значительно уменьшить параметры модели за счет оптимизации структуры сети, в то время как точность текущей популярной сети не сильно отличается.
SqueezeNet: Preserving Accuracy with Few Parameters
-
Architectural Design Strategies
Облегченный сетевой дизайн статьи в основном включает следующие стратегии:
- заменять
свернутый как
свертка, так как
Коэффициент свертки
Convolution имеет 9-кратное уменьшение параметра.
- уменьшать
входное измерение свертки,
Общее количество параметров свертки равно (количество входных каналов)(number of filters)(3 * 3), использование сжимающих слоев для уменьшения входного размера может уменьшить общий объем вычислений.
- Операция понижения дискретизации должна быть организована на более позднем этапе сети, насколько это возможно, чтобы сверточный слой мог иметь большую карту признаков и сохранять больше информации, тем самым повышая точность.
Стратегия 1 и Стратегия 2 в основном предназначены для уменьшения параметров сети, но сохранения точности, а Стратегия 3 заключается в максимизации точности при ограниченных параметрах.
-
The Fire Module
Основным модулем SqueezeNet является модуль Fire.Структура показана на рисунке 1. Входной слой сначала проходит через слой свертки сжатия (свертка) для сжатия размеров, а затем через слой расширения свертки (
свертка и
Convolution Mixing) для расширения размерности. Модуль Fire содержит 3 параметра, которые являются параметрами слоя сжатия.
Количество ядер свертки
, развернуть слой
Количество ядер свертки
и расширенный слой
Количество ядер свертки
,в целом
-
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, в основном сравнивая коэффициент сжатия сжимающего слоя и коэффициент сжатия расширяющего слоя.Коэффициент свертки.
CNN Macroarchitecture Design Space Exploration
В статье проводятся исследовательские эксперименты по микроархитектуре сети, в основном для изучения влияния коротких замыканий на сеть.Сравнительная структура сети показана на рисунке 2.
Conclusion
SqueezeNet — это ранняя легкая исследовательская работа в сети.Хотя уровень точности сравнивается с AlexNet, его коэффициент сжатия сети весьма впечатляет, а конструкция модуля Fire также очень нова.
SqueezeNext
Диссертация: SqueezeNext: аппаратно-ориентированный дизайн нейронной сети
- Адрес бумаги:АР Вест V.org/PDF/1803.10…
Introduction
SqueezeNext — это обновление актуальной версии SqueezeNet, которое напрямую сравнивает производительность с MobileNet. Все SqueezeNext используют стандартные свертки для анализа фактической скорости вывода, а методы оптимизации фокусируются на оптимизации общей структуры сети.
SqueezeNext Design
Дизайн SqueezeNext следует остаточной структуре.Вместо использования популярной в то время свертки глубины, он напрямую использует свертку разделения.Дизайн в основном основан на следующих стратегиях:
-
Фильтры низкого ранга Основная идея низкоранговой декомпозиции состоит в том, чтобы разложить большую матрицу на несколько маленьких матриц.Здесь CP-разложение (каноническая полиадическая декомпозиция) используется для разложения
Свертка разбивается на
и
Разделительная свертка , количество параметров может быть изменено от
сокращено до
.
-
Модуль узкого места Количество параметров связано с входными и выходными измерениями.Хотя глубинная свертка может использоваться для уменьшения объема вычислений, вычисление глубинной свертки в конечной системе неэффективно. Поэтому слой сжатия 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].